| draft-ietf-teas-yang-te-topo-00.txt | | draft-ietf-teas-yang-te-topo-01.txt | |
| | | | |
|
| TEAS Working Group X. Liu | | TEAS Working Group Xufeng Liu | |
| Internet-Draft Ericsson | | Internet Draft Ericsson | |
| Intended status: Standards Track I. Bryskin | | Intended status: Standards Track Igor Bryskin | |
| Expires: November 08, 2015 ADVA Optical Networking | | ADVA Optical Networking | |
| V. Beeram | | Vishnu Pavan Beeram | |
| Juniper Networks | | Juniper Networks | |
|
| T. Saad | | Tarek Saad | |
| Cisco Systems Inc. | | Cisco Systems Inc | |
| H. Shah | | Himanshu Shah | |
| Ciena | | Ciena | |
|
| May 08, 2015 | | Oscar Gonzalez De Dios | |
| | | Telefonica | |
| | | | |
|
| YANG Data Model for TE Topologies | | Expires: January 6, 2016 July 6, 2015 | |
| draft-ietf-teas-yang-te-topo-00 | | | |
| | | | |
|
| Abstract | | YANG Data Model for TE Topologies | |
| | | draft-ietf-teas-yang-te-topo-01 | |
| | | | |
|
| This document defines a YANG data model for representing and | | Status of this Memo | |
| manipulating TE Topologies. | | | |
| | | | |
|
| Status of This Memo | | This Internet-Draft is submitted in full conformance with the | |
| | | provisions of BCP 78 and BCP 79. | |
| | | | |
|
| This Internet-Draft is submitted in full conformance with the | | Internet-Drafts are working documents of the Internet Engineering | |
| provisions of BCP 78 and BCP 79. | | Task Force (IETF), its areas, and its working groups. Note that | |
| | | other groups may also distribute working documents as Internet- | |
| | | Drafts. | |
| | | | |
|
| Internet-Drafts are working documents of the Internet Engineering | | Internet-Drafts are draft documents valid for a maximum of six | |
| Task Force (IETF). Note that other groups may also distribute | | months and may be updated, replaced, or obsoleted by other documents | |
| working documents as Internet-Drafts. The list of current Internet- | | at any time. It is inappropriate to use Internet-Drafts as | |
| Drafts is at http://datatracker.ietf.org/drafts/current/. | | reference material or to cite them other than as "work in progress." | |
| | | | |
|
| Internet-Drafts are draft documents valid for a maximum of six months | | The list of current Internet-Drafts can be accessed at | |
| and may be updated, replaced, or obsoleted by other documents at any | | http://www.ietf.org/ietf/1id-abstracts.txt | |
| time. It is inappropriate to use Internet-Drafts as reference | | | |
| material or to cite them other than as "work in progress." | | | |
| | | | |
|
| This Internet-Draft will expire on November 08, 2015. | | The list of Internet-Draft Shadow Directories can be accessed at | |
| | | http://www.ietf.org/shadow.html | |
| | | | |
|
| Copyright Notice | | This Internet-Draft will expire on January 6, 2016. | |
| | | | |
|
| Copyright (c) 2015 IETF Trust and the persons identified as the | | Copyright Notice | |
| document authors. All rights reserved. | | | |
| | | | |
|
| This document is subject to BCP 78 and the IETF Trust's Legal | | Copyright (c) 2015 IETF Trust and the persons identified as the | |
| Provisions Relating to IETF Documents | | document authors. All rights reserved. | |
| (http://trustee.ietf.org/license-info) in effect on the date of | | | |
| publication of this document. Please review these documents | | | |
| carefully, as they describe your rights and restrictions with respect | | | |
| to this document. Code Components extracted from this document must | | | |
| include Simplified BSD License text as described in Section 4.e of | | | |
| the Trust Legal Provisions and are provided without warranty as | | | |
| described in the Simplified BSD License. | | | |
| | | | |
|
| Table of Contents | | 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 | |
| | | carefully, as they describe your rights and restrictions with | |
| | | respect to this document. Code Components extracted from this | |
| | | document must include Simplified BSD License text as described in | |
| | | Section 4.e of the Trust Legal Provisions and are provided without | |
| | | warranty as described in the Simplified BSD License. | |
| | | | |
|
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | | Abstract | |
| 1.1. Tree Structure - Legend . . . . . . . . . . . . . . . . . 2 | | | |
| 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 | | | |
| 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | | | |
| 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 4 | | | |
| 2.1. Generic extensible Model . . . . . . . . . . . . . . . . 4 | | | |
| 2.1.1. Generic TE Link Attributes . . . . . . . . . . . . . 4 | | | |
| 2.1.2. Generic TE Node Attributes . . . . . . . . . . . . . 4 | | | |
| 2.1.3. TED Information Sources . . . . . . . . . . . . . . . 4 | | | |
| 2.2. Overlay/Underlay Relationship . . . . . . . . . . . . . . 5 | | | |
| 2.3. Scheduling Parameters . . . . . . . . . . . . . . . . . . 5 | | | |
| 2.4. Abstract TE Topologies . . . . . . . . . . . . . . . . . 5 | | | |
| 2.5. Open Items . . . . . . . . . . . . . . . . . . . . . . . 6 | | | |
| 3. Tree Structure . . . . . . . . . . . . . . . . . . . . . . . 6 | | | |
| 3.1. TE Topology Yang Module . . . . . . . . . . . . . . . . . 29 | | | |
| 4. Normative References . . . . . . . . . . . . . . . . . . . . 49 | | | |
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | | | |
| | | | |
|
| 1. Introduction | | This document defines a YANG data model for representing, retrieving | |
| | | and manipulating TE Topologies. The model serves as a base model | |
| | | that other technology specific TE Topology models can augment. | |
| | | | |
|
| YANG [RFC6020] a data definition language that was introduced to | | Conventions used in this document | |
| define the contents of a conceptual data store that allows networked | | | |
| devices to be managed using NETCONF [RFC6241]. YANG is proving | | | |
| relevant beyond its initial confines, as bindings to other interfaces | | | |
| (e.g. ReST) and encoding other than XML (e.g. JSON) are being | | | |
| defined. Furthermore, YANG data models can be used as the basis of | | | |
| implementation for other interface, such as CLI and programmatic | | | |
| APIs. This document defines a YANG data model for representing and | | | |
| manipulating TE Topologies. This model contains technology agnostic | | | |
| TE Topology building blocks that can be augmented and used by other | | | |
| technology-specific TE Topology models. | | | |
| | | | |
|
| 1.1. Tree Structure - Legend | | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |
| | | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |
| | | document are to be interpreted as described in RFC-2119 [RFC2119]. | |
| | | | |
|
| A simplified graphical representation of the data model is presented | | Table of Contents | |
| in Section 3 of this document. The following notations are used for | | | |
| the YANG model data tree representation. | | | |
| | | | |
|
| <status> <flags> <name> <opts> <type> | | 1. Introduction...................................................3 | |
| | | 1.1. Terminology...............................................3 | |
| | | 1.2. Tree Structure - Legend...................................4 | |
| | | 1.3. Prefixes in Data Node Names...............................4 | |
| | | 2. Characterizing TE Topologies...................................5 | |
| | | 3. Model Applicability............................................6 | |
| | | 3.1. Native TE Topologies......................................6 | |
| | | 3.2. Customized TE Topologies..................................8 | |
| | | 4. Modeling Considerations.......................................10 | |
| | | 4.1. Generic extensible Model.................................10 | |
| | | 4.2. Model Structure..........................................10 | |
| | | 4.3. Topology Identifiers.....................................11 | |
| | | 4.4. Generic TE Link Attributes...............................12 | |
| | | 4.5. Generic TE Node Attributes...............................12 | |
| | | 4.6. TED Information Sources..................................13 | |
| | | 4.7. Overlay/Underlay Relationship............................14 | |
| | | 4.8. Scheduling Parameters....................................15 | |
| | | 4.9. Templates................................................15 | |
| | | 4.10. Notifications...........................................16 | |
| | | 4.11. Open Items..............................................17 | |
| | | 5. Tree Structure................................................17 | |
| | | 6. TE Topology Yang Module.......................................42 | |
| | | 7. Security Considerations.......................................78 | |
| | | 8. IANA Considerations...........................................78 | |
| | | 9. References....................................................78 | |
| | | 9.1. Normative References.....................................78 | |
| | | 9.2. Informative References...................................79 | |
| | | 10. Acknowledgments..............................................79 | |
| | | | |
|
| <status> is one of: | | 1. Introduction | |
| + for current | | | |
| x for deprecated | | | |
| o for obsolete | | | |
| | | | |
|
| <flags> is one of: | | The Traffic Engineering Database (TED) is an essential component of | |
| rw for read-write configuration data | | Traffic Engineered (TE) systems that are based on MPLS-TE [RFC2702] | |
| ro for read-only non-configuration data | | and GMPLS [RFC3945]. The TED is a collection of all TE information | |
| -x for execution rpcs | | about all TE nodes and TE links in the network. The TE Topology is a | |
| -n for notifications | | 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 | |
| | | path computational algorithms are run to compute Traffic Engineered | |
| | | Paths (TE Paths). | |
| | | | |
|
| <name> is the name of the node | | This document defines a YANG [RFC6020] data model for representing | |
| | | and manipulating TE Topologies. This model contains technology | |
| | | agnostic TE Topology building blocks that can be augmented and used | |
| | | by other technology-specific TE Topology models. | |
| | | | |
|
| If the node is augmented into the tree from another module, its name | | 1.1. Terminology | |
| is printed as <prefix>:<name> | | | |
| | | | |
|
| <opts> is one of: | | TED: The Traffic Engineering Database is a collection of all TE | |
| ? for an optional leaf or node | | information about all TE nodes and TE links in a given network. | |
| ! for a presence container | | | |
| * for a leaf-list or list | | | |
| Brackets [<keys>] for a list's keys | | | |
| Curly braces {<condition>} for optional feature that make node | | | |
| conditional | | | |
| Colon : for marking case nodes | | | |
| Ellipses ("...") subtree contents not shown | | | |
| | | | |
|
| Parentheses enclose choice and case nodes, and case nodes are | | TE-Topology: The TE Topology is a schematic arrangement of TE nodes | |
| also marked with a colon (":"). | | and TE links in a given TED. It forms the basis for a graph suitable | |
| | | for TE path computations. | |
| | | | |
|
| <type> is the name of the type for leafs and leaf-lists. | | Native TE Topology: Native TE Topology is a topology that is native | |
| | | to a given provider network. This is the topology on which path | |
| | | computational algorithms are run to compute TE Paths. | |
| | | | |
|
| 1.2. Prefixes in Data Node Names | | Customized TE Topology: Customized TE Topology is a custom topology | |
| | | that is produced by a provider for a given Client. This topology | |
| | | typically augments the Client's Native TE Topology. Path | |
| | | computational algorithms aren't typically run on the Customized TE | |
| | | Topology; they are run on the Client's augmented Native TE Topology. | |
| | | | |
|
| In this document, names of data nodes and other data model objects | | 1.2. Tree Structure - Legend | |
| are prefixed using the standard prefix associated with the | | | |
| corresponding YANG imported modules, as shown in Table 1. | | | |
| | | | |
|
| +--------+-----------------+-----------+ | | A simplified graphical representation of the data model is presented | |
| | Prefix | YANG module | Reference | | | in Section 5 of this document. The following notations are used for | |
| +--------+-----------------+-----------+ | | the YANG model data tree representation. | |
| | yang | ietf-yang-types | [RFC6991] | | | | |
| | inet | ietf-inet-types | [RFC6991] | | | | |
| +--------+-----------------+-----------+ | | | |
| | | | |
|
| Table 1: Prefixes and corresponding YANG modules | | <status> <flags> <name> <opts> <type> | |
| | | | |
|
| 1.3. Terminology | | <status> is one of: | |
| | | + for current | |
| | | x for deprecated | |
| | | o for obsolete | |
| | | | |
|
| In this document, the key words "MUST", "MUST NOT", "REQUIRED", | | <flags> is one of: | |
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | | rw for read-write configuration data | |
| and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 | | ro for read-only non-configuration data | |
| [RFC2119]. | | -x for execution rpcs | |
| | | -n for notifications | |
| | | | |
|
| 2. Design Considerations | | <name> is the name of the node | |
| | | | |
|
| 2.1. Generic extensible Model | | If the node is augmented into the tree from another module, | |
| | | its name is printed as <prefix>:<name> | |
| | | | |
|
| The TE Topology model proposed in this document is meant to be | | <opts> is one of: | |
| technology agnostic. Other technology specific TE Topology models | | ? for an optional leaf or node | |
| can augment and use the building blocks provided by the proposed | | ! for a presence container | |
| model. | | * for a leaf-list or list | |
| | | Brackets [<keys>] for a list's keys | |
| | | Curly braces {<condition>} for optional feature that make | |
| | | node conditional | |
| | | | |
|
| 2.1.1. Generic TE Link Attributes | | Colon : for marking case nodes | |
| | | Ellipses ("...") subtree contents not shown | |
| | | | |
|
| The model covers the definitions for generic TE Link attributes - | | Parentheses enclose choice and case nodes, and case nodes are | |
| bandwidth, admin groups, SRLGs, switching capabilities, TE metric | | also marked with a colon (":"). | |
| extensions etc. | | | |
| | | | |
|
| 2.1.2. Generic TE Node Attributes | | <type> is the name of the type for leafs and leaf-lists. | |
| | | | |
|
| The model covers the definitions for generic TE Node attributes like | | 1.3. Prefixes in Data Node Names | |
| connectivity matrix. | | | |
| | | | |
|
| +--rw connectivity-matrix* [id] | | In this document, names of data nodes and other data model objects | |
| +--rw id uint32 | | are prefixed using the standard prefix associated with the | |
| +--rw from-link | | corresponding YANG imported modules, as shown in Table 1. | |
| +--rw topo-ref? leafref | | | |
| +--rw node-ref? leafref | | | |
| +--rw link-end-ref? leafref | | | |
| +--rw to-link | | | |
| +--rw topo-ref? leafref | | | |
| +--rw node-ref? leafref | | | |
| +--rw link-end-ref? leafref | | | |
| +--rw is-allowed? Boolean | | | |
| | | | |
|
| 2.1.3. TED Information Sources | | +--------+-----------------+-----------+ | |
| | | | Prefix | YANG module | Reference | | |
| | | +--------+-----------------+-----------+ | |
| | | | yang | ietf-yang-types | [RFC6991] | | |
| | | | inet | ietf-inet-types | [RFC6991] | | |
| | | +--------+-----------------+-----------+ | |
| | | | |
|
| The model allows each TE topological element to have multiple TE | | Table 1: Prefixes and corresponding YANG modules | |
| information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, | | | |
| Other). Each information source is associated with a credibility | | | |
| preference to indicate precedence. | | | |
| | | | |
|
| The model captures overlay and underlay relationship for TE nodes/ | | 2. Characterizing TE Topologies | |
| 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. | | | |
| | | | |
|
| 2.2. Overlay/Underlay Relationship | | The data model proposed by this document takes the following | |
| | | characteristics of TE Topologies into account: | |
| | | | |
|
| +--rw node* [te-node-id] | | - TE Topology is an abstract control-plane representation of the | |
| : | | data-plane topology. Hence attributes specific to the data-plane | |
| +--rw te-node-attributes | | must make their way into the corresponding TE Topology modeling. | |
| : | | The TE Topology comprises of dynamic auto-discovered data (data | |
| +--rw underlay-topology? leafref {te-topology-hierarchy}? | | that may change frequently - example: unreserved bandwidth | |
| | | available on data-plane links) as well as fairly static data (data | |
| | | that rarely changes- examples: layer network identification, | |
| | | switching and adaptation capabilities and limitations, fate | |
| | | sharing, administrative colors) associated with data-plane nodes | |
| | | and links. It is possible for a single TE Topology to encompass TE | |
| | | information at multiple switching layers. | |
| | | | |
|
| +--rw link* [source-te-node-id source-te-link-id dest-te-node-id | | - TE Topologies are protocol independent. Information about | |
| dest-te-link-id] | | topological elements may be learnt via link-state protocols, but | |
| : | | the topology can exist without being dependent on any particular | |
| +--rw te-link-attributes | | protocol. | |
| +--rw underlay! {te-topology-hierarchy}? | | | |
| +--rw underlay-path | | | |
| : | | | |
| +--rw underlay-backup-path | | | |
| : | | | |
| +--rw underlay-protection-type? uint16 | | | |
| +--rw underlay-trail-src | | | |
| : | | | |
| +--rw underlay-trail-des | | | |
| : | | | |
| | | | |
|
| 2.3. Scheduling Parameters | | - TE Topology may not be congruent to the routing topology (topology | |
| | | constructed based on routing adjacencies) in a given TE System. | |
| | | There isn't always a one-to-one association between a TE-link and | |
| | | a routing adjacency. For example, the presence of a TE link | |
| | | between a pair of nodes doesn't necessarily imply the existence of | |
| | | a routing-adjacency between these nodes. | |
| | | | |
|
| The model allows time scheduling parameters to be specified for each | | - Each TE Topological element has an information source associated | |
| topological element. These parameters allow the provider to present | | with it. In some scenarios, there could be more than one | |
| different topological views to the client at different time slots. | | information source associated with each topological element. | |
| | | | |
|
| +--rw schedules* [schedule-id] | | - TE Topologies can be hierarchical. Each node and link of a given | |
| | +--rw schedule-id uint32 | | TE Topology can be associated with respective underlay topology. | |
| | +--rw start? yang:date-and-time | | This means that each node and link of a given TE Topology can be | |
| | +--rw schedule-duration? string | | associated with an independent stack of supporting TE Topologies. | |
| | +--rw repeat-interval? string | | | |
| | | | |
|
| 2.4. Abstract TE Topologies | | - TE Topologies can be customized. TE topologies of a given network | |
| | | presented by the network provider to its client could be | |
| | | customized on per-client request basis. This customization could | |
| | | be performed by provider, by client or by provider/client | |
| | | negotiation. The relationship between a customized topology (as | |
| | | presented to the client) and provider's native topology (as known | |
| | | in its entirety to the provider itself) could be captured as | |
| | | hierarchical (overlay-underlay), but otherwise the two topologies | |
| | | are decoupled from each other. | |
| | | | |
|
| The model allows the provider to present the network in abstract | | 3. Model Applicability | |
| terms on per client basis and facilitates the notion of "TE Topology | | | |
| as a service". These topologies are typically decoupled from the | | | |
| actual network topology and are supposed to be fully comprehensible | | | |
| by the clients and contain sufficient information for the client path | | | |
| computers to select service paths according to the client policies. | | | |
| The model also allows the client to request changes to the abstract | | | |
| TE Topology that is presented to it and thus manipulate it. | | | |
| | | | |
|
| 2.5. Open Items | | 3.1. Native TE Topologies | |
| | | | |
|
| o Relationship with "generic network topology" model: The generic | | The model discussed in this draft can be used to represent and | |
| network topology building blocks are discussed in [YANG-NET-TOPO]. | | retrieve native TE topologies on a given TE system. | |
| This version of the document does not use any of those building | | | |
| blocks. The authors would like to explore the possibility of | | | |
| doing that in future revisions of this document. | | | |
| | | | |
|
| o Incremental notifications: The model proposed in this version does | | +---+ +---+ +---+ +---+ +---+ | |
| not cover incremental notifications. The authors intend to add | | | R1|-------| R2|--------| R3|---------| R4|---------| R5| | |
| this in future revisions of the document. | | +---+ +---+ +---+ +---+ +---+ | |
| | | | / \ / \ / | |
| | | | / \ / \ / | |
| | | | / \ / \ / | |
| | | | / \ / \ / | |
| | | | / \ / \ / | |
| | | +---+ +---+ +---+ +---+ | |
| | | | R6|-------------| R7| | R8|---------| R9| | |
| | | +---+ +---+ +---+ +---+ | |
| | | | |
|
| 3. Tree Structure | | Figure 1a: Example Network Topology | |
| | | | |
|
| module: ietf-te-topology | | --------------- | |
| +--rw te-topologies | | | Native | | [ ] TE Node | |
| | +--rw topology* [te-topology-id] | | | TE-Topology | | +++ TE Link | |
| | | +--rw te-topology-id te-topology-id | | --------------- o-------------- | |
| | | +--rw topology-types | | __________________ | |
| | | | +--rw te-topology! | | [R1] ++++ [R2] ++++ [R3] ++++ [R4] ++++ [R5] | |
| | | +--rw node* [te-node-id] | | + + + + + + | |
| | | | +--rw te-node-id te-node-id | | + + + + + + | |
| | | | +--rw te-node-template? leafref | | + + ++ ++ | |
| | | | +--rw te-node-attributes | | [R6] +++++++++ [R7] [R8] ++++ [R9] | |
| | | | +--rw schedules* [schedule-id] | | | |
| | | | | +--rw schedule-id uint32 | | | |
| | | | | +--rw start? yang:date-and-time | | | |
| | | | | +--rw schedule-duration? string | | | |
| | | | | +--rw repeat-interval? string | | | |
| | | | +--rw name? inet:domain-name | | | |
| | | | +--rw signaling-address* inet:ip-address | | | |
| | | | +--rw flag* flag-type | | | |
| | | | +--rw is-abstract? boolean | | | |
| | | | +--rw underlay-topology? leafref | | | |
| {te-topology-hierarchy}? | | | |
| | | | +--rw te-link* [te-link-id] | | | |
| | | | | +--rw te-link-id te-link-id | | | |
| | | | | +--rw (stack-level)? | | | |
| | | | | +--:(bundle) | | | |
| | | | | | +--rw bundled-links | | | |
| | | | | | +--rw bundled-link* [sequence] | | | |
| | | | | | +--rw sequence uint32 | | | |
| | | | | | +--rw te-link-ref? leafref | | | |
| | | | | +--:(component) | | | |
| | | | | +--rw component-links | | | |
| | | | | +--rw component-link* [sequence] | | | |
| | | | | +--rw sequence uint32 | | | |
| | | | | +--rw component-link-ref? leafref | | | |
| | | | +--rw connectivity-matrix* [id] | | | |
| | | | | +--rw id uint32 | | | |
| | | | | +--rw from-link | | | |
| | | | | | +--rw topo-ref? leafref | | | |
| | | | | | +--rw node-ref? leafref | | | |
| | | | | | +--rw link-end-ref? leafref | | | |
| | | | | +--rw to-link | | | |
| | | | | | +--rw topo-ref? leafref | | | |
| | | | | | +--rw node-ref? leafref | | | |
| | | | | | +--rw link-end-ref? leafref | | | |
| | | | | +--rw is-allowed? boolean | | | |
| | | | +--rw ted | | | |
| | | | +--rw te-router-id-ipv4? inet:ipv4-address | | | |
| | | | +--rw te-router-id-ipv6? inet:ipv6-address | | | |
| | | | +--rw ipv4-local-address* [ipv4-prefix] | | | |
| | | | | +--rw ipv4-prefix inet:ipv4-prefix | | | |
| | | | +--rw ipv6-local-address* [ipv6-prefix] | | | |
| | | | | +--rw ipv6-prefix inet:ipv6-prefix | | | |
| | | | | +--rw prefix-option? uint8 | | | |
| | | | +--rw pcc-capabilities? pcc-capabilities | | | |
| | | +--rw link* [source-te-node-id source-te-link-id | | | |
| dest-te-node-id dest-te-link-id] | | | |
| | | +--rw source-te-node-id leafref | | | |
| | | +--rw source-te-link-id leafref | | | |
| | | +--rw dest-te-node-id leafref | | | |
| | | +--rw dest-te-link-id leafref | | | |
| | | +--rw te-link-template? leafref | | | |
| | | +--rw te-link-attributes | | | |
| | | +--rw schedules* [schedule-id] | | | |
| | | | +--rw schedule-id uint32 | | | |
| | | | +--rw start? yang:date-and-time | | | |
| | | | +--rw schedule-duration? string | | | |
| | | | +--rw repeat-interval? string | | | |
| | | +--rw name? string | | | |
| | | +--rw flag* flag-type | | | |
| | | +--rw is-abstract? boolean | | | |
| | | +--rw underlay! {te-topology-hierarchy}? | | | |
| | | | +--rw underlay-path | | | |
| | | | | +--rw topology-id? leafref | | | |
| | | | | +--rw path-element* [path-element-id] | | | |
| | | | | +--rw path-element-id uint32 | | | |
| | | | | +--rw loose? boolean | | | |
| | | | | +--rw (element-type)? | | | |
| | | | | +--:(numbered-link) | | | |
| | | | | | +--rw link-ip-address? inet:ip-address | | | |
| | | | | +--:(unnumbered-link) | | | |
| | | | | | +--rw link-node-id? uint32 | | | |
| | | | | | +--rw te-link-id? uint32 | | | |
| | | | | +--:(node) | | | |
| | | | | | +--rw te-node-id? uint32 | | | |
| | | | | +--:(label) | | | |
| | | | | +--rw label? uint32 | | | |
| | | | +--rw underlay-backup-path | | | |
| | | | | +--rw topology-id? leafref | | | |
| | | | | +--rw path-element* [path-element-id] | | | |
| | | | | +--rw path-element-id uint32 | | | |
| | | | | +--rw loose? boolean | | | |
| | | | | +--rw (element-type)? | | | |
| | | | | +--:(numbered-link) | | | |
| | | | | | +--rw link-ip-address? inet:ip-address | | | |
| | | | | +--:(unnumbered-link) | | | |
| | | | | | +--rw link-node-id? uint32 | | | |
| | | | | | +--rw te-link-id? uint32 | | | |
| | | | | +--:(node) | | | |
| | | | | | +--rw te-node-id? uint32 | | | |
| | | | | +--:(label) | | | |
| | | | | +--rw label? uint32 | | | |
| | | | +--rw underlay-protection-type? uint16 | | | |
| | | | +--rw underlay-trail-src | | | |
| | | | | +--rw topo-ref? leafref | | | |
| | | | | +--rw node-ref? leafref | | | |
| | | | | +--rw link-end-ref? leafref | | | |
| | | | +--rw underlay-trail-des | | | |
| | | | +--rw topo-ref? leafref | | | |
| | | | +--rw node-ref? leafref | | | |
| | | | +--rw link-end-ref? leafref | | | |
| | | +--rw ted | | | |
| | | +--rw admin-status? enumeration | | | |
| | | +--rw oper-status? enumeration | | | |
| | | +--rw area-id? binary | | | |
| | | +--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 information-source? enumeration | | | |
| | | +--rw credibility-preference? uint16 | | | |
| | | +--rw link-index? uint64 | | | |
| | | +--rw administrative-group* [sequence] | | | |
| | | | +--rw sequence uint32 | | | |
| | | | +--rw ag-element? uint32 | | | |
| | | +--rw max-link-bandwidth? decimal64 | | | |
| | | +--rw max-resv-link-bandwidth? decimal64 | | | |
| | | +--rw unreserved-bandwidth* [priority] | | | |
| | | | +--rw priority uint8 | | | |
| | | | +--rw bandwidth? decimal64 | | | |
| | | +--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? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw link-protection-type? | | | |
| enumeration | | | |
| | | +--rw interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | | +--rw switching-capability | | | |
| ted:switching-capabilities | | | |
| | | | +--rw encoding? | | | |
| ted:encoding-type | | | |
| | | | +--rw max-lsp-bandwidth* [priority] | | | |
| | | | | +--rw priority uint8 | | | |
| | | | | +--rw bandwidth? decimal64 | | | |
| | | | +--rw packet-switch-capable | | | |
| | | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | | +--rw interface-mtu? uint16 | | | |
| | | | +--rw time-division-multiplex-capable | | | |
| | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--rw indication? enumeration | | | |
| | | +--rw srlg | | | |
| | | | +--rw srlg-values* [srlg-value] | | | |
| | | | +--rw srlg-value uint32 | | | |
| | | +--rw alt-information-sources* [information-source] | | | |
| | | +--rw information-source enumeration | | | |
| | | +--rw credibility-preference? uint16 | | | |
| | | +--rw link-index? uint64 | | | |
| | | +--rw administrative-group* [sequence] | | | |
| | | | +--rw sequence uint32 | | | |
| | | | +--rw ag-element? uint32 | | | |
| | | +--rw max-link-bandwidth? decimal64 | | | |
| | | +--rw max-resv-link-bandwidth? decimal64 | | | |
| | | +--rw unreserved-bandwidth* [priority] | | | |
| | | | +--rw priority uint8 | | | |
| | | | +--rw bandwidth? decimal64 | | | |
| | | +--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? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | | +--rw unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw link-protection-type? | | | |
| | | | |
|
| enumeration | | Figure 1b: Native TE Topology as seen on Node R3 | |
| | | +--rw interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | | +--rw switching-capability | | | |
| ted:switching-capabilities | | | |
| | | | +--rw encoding? | | | |
| ted:encoding-type | | | |
| | | | +--rw max-lsp-bandwidth* [priority] | | | |
| | | | | +--rw priority uint8 | | | |
| | | | | +--rw bandwidth? decimal64 | | | |
| | | | +--rw packet-switch-capable | | | |
| | | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | | +--rw interface-mtu? uint16 | | | |
| | | | +--rw time-division-multiplex-capable | | | |
| | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--rw indication? enumeration | | | |
| | | +--rw srlg | | | |
| | | +--rw srlg-values* [srlg-value] | | | |
| | | +--rw srlg-value uint32 | | | |
| | +--rw node-template* [name] | | | |
| | | +--rw name te-template-name | | | |
| | | +--rw te-node-attributes | | | |
| | | +--rw schedules* [schedule-id] | | | |
| | | | +--rw schedule-id uint32 | | | |
| | | | +--rw start? yang:date-and-time | | | |
| | | | +--rw schedule-duration? string | | | |
| | | | +--rw repeat-interval? string | | | |
| | | +--rw name? inet:domain-name | | | |
| | | +--rw signaling-address* inet:ip-address | | | |
| | | +--rw flag* flag-type | | | |
| | | +--rw is-abstract? boolean | | | |
| | | +--rw underlay-topology? leafref | | | |
| {te-topology-hierarchy}? | | | |
| | | +--rw te-link* [te-link-id] | | | |
| | | | +--rw te-link-id te-link-id | | | |
| | | | +--rw (stack-level)? | | | |
| | | | +--:(bundle) | | | |
| | | | | +--rw bundled-links | | | |
| | | | | +--rw bundled-link* [sequence] | | | |
| | | | | +--rw sequence uint32 | | | |
| | | | | +--rw te-link-ref? leafref | | | |
| | | | +--:(component) | | | |
| | | | +--rw component-links | | | |
| | | | +--rw component-link* [sequence] | | | |
| | | | +--rw sequence uint32 | | | |
| | | | +--rw component-link-ref? leafref | | | |
| | | +--rw connectivity-matrix* [id] | | | |
| | | | +--rw id uint32 | | | |
| | | | +--rw from-link | | | |
| | | | | +--rw topo-ref? leafref | | | |
| | | | | +--rw node-ref? leafref | | | |
| | | | | +--rw link-end-ref? leafref | | | |
| | | | +--rw to-link | | | |
| | | | | +--rw topo-ref? leafref | | | |
| | | | | +--rw node-ref? leafref | | | |
| | | | | +--rw link-end-ref? leafref | | | |
| | | | +--rw is-allowed? boolean | | | |
| | | +--rw ted | | | |
| | | +--rw te-router-id-ipv4? inet:ipv4-address | | | |
| | | +--rw te-router-id-ipv6? inet:ipv6-address | | | |
| | | +--rw ipv4-local-address* [ipv4-prefix] | | | |
| | | | +--rw ipv4-prefix inet:ipv4-prefix | | | |
| | | +--rw ipv6-local-address* [ipv6-prefix] | | | |
| | | | +--rw ipv6-prefix inet:ipv6-prefix | | | |
| | | | +--rw prefix-option? uint8 | | | |
| | | +--rw pcc-capabilities? pcc-capabilities | | | |
| | +--rw link-template* [name] | | | |
| | +--rw name te-template-name | | | |
| | +--rw te-link-attributes | | | |
| | +--rw schedules* [schedule-id] | | | |
| | | +--rw schedule-id uint32 | | | |
| | | +--rw start? yang:date-and-time | | | |
| | | +--rw schedule-duration? string | | | |
| | | +--rw repeat-interval? string | | | |
| | +--rw name? string | | | |
| | +--rw flag* flag-type | | | |
| | +--rw is-abstract? boolean | | | |
| | +--rw underlay! {te-topology-hierarchy}? | | | |
| | | +--rw underlay-path | | | |
| | | | +--rw topology-id? leafref | | | |
| | | | +--rw path-element* [path-element-id] | | | |
| | | | +--rw path-element-id uint32 | | | |
| | | | +--rw loose? boolean | | | |
| | | | +--rw (element-type)? | | | |
| | | | +--:(numbered-link) | | | |
| | | | | +--rw link-ip-address? inet:ip-address | | | |
| | | | +--:(unnumbered-link) | | | |
| | | | | +--rw link-node-id? uint32 | | | |
| | | | | +--rw te-link-id? uint32 | | | |
| | | | +--:(node) | | | |
| | | | | +--rw te-node-id? uint32 | | | |
| | | | +--:(label) | | | |
| | | | +--rw label? uint32 | | | |
| | | +--rw underlay-backup-path | | | |
| | | | +--rw topology-id? leafref | | | |
| | | | +--rw path-element* [path-element-id] | | | |
| | | | +--rw path-element-id uint32 | | | |
| | | | +--rw loose? boolean | | | |
| | | | +--rw (element-type)? | | | |
| | | | +--:(numbered-link) | | | |
| | | | | +--rw link-ip-address? inet:ip-address | | | |
| | | | +--:(unnumbered-link) | | | |
| | | | | +--rw link-node-id? uint32 | | | |
| | | | | +--rw te-link-id? uint32 | | | |
| | | | +--:(node) | | | |
| | | | | +--rw te-node-id? uint32 | | | |
| | | | +--:(label) | | | |
| | | | +--rw label? uint32 | | | |
| | | +--rw underlay-protection-type? uint16 | | | |
| | | +--rw underlay-trail-src | | | |
| | | | +--rw topo-ref? leafref | | | |
| | | | +--rw node-ref? leafref | | | |
| | | | +--rw link-end-ref? leafref | | | |
| | | +--rw underlay-trail-des | | | |
| | | +--rw topo-ref? leafref | | | |
| | | +--rw node-ref? leafref | | | |
| | | +--rw link-end-ref? leafref | | | |
| | +--rw ted | | | |
| | +--rw admin-status? enumeration | | | |
| | +--rw oper-status? enumeration | | | |
| | +--rw area-id? binary | | | |
| | +--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 information-source? enumeration | | | |
| | +--rw credibility-preference? uint16 | | | |
| | +--rw link-index? uint64 | | | |
| | +--rw administrative-group* [sequence] | | | |
| | | +--rw sequence uint32 | | | |
| | | +--rw ag-element? uint32 | | | |
| | +--rw max-link-bandwidth? decimal64 | | | |
| | +--rw max-resv-link-bandwidth? decimal64 | | | |
| | +--rw unreserved-bandwidth* [priority] | | | |
| | | +--rw priority uint8 | | | |
| | | +--rw bandwidth? decimal64 | | | |
| | +--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? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-min-delay? | | | |
| | | | |
|
| performance-metric-normality | | Consider the network topology depicted in Figure 1a (R1 .. R9 are | |
| | | +--rw unidirectional-max-delay? | | nodes representing routers). An implementation MAY choose to | |
| performance-metric-normality | | construct a native TE Topology using all nodes and links present in | |
| | | +--rw unidirectional-delay-variation? | | the given TED as depicted in Figure 1b. The data model proposed in | |
| performance-metric-normality | | this document can be used to retrieve/represent this TE topology. | |
| | | +--rw unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--rw link-protection-type? enumeration | | | |
| | +--rw interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | +--rw switching-capability | | | |
| ted:switching-capabilities | | | |
| | | +--rw encoding? ted:encoding-type | | | |
| | | +--rw max-lsp-bandwidth* [priority] | | | |
| | | | +--rw priority uint8 | | | |
| | | | +--rw bandwidth? decimal64 | | | |
| | | +--rw packet-switch-capable | | | |
| | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--rw interface-mtu? uint16 | | | |
| | | +--rw time-division-multiplex-capable | | | |
| | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | +--rw indication? enumeration | | | |
| | +--rw srlg | | | |
| | | +--rw srlg-values* [srlg-value] | | | |
| | | +--rw srlg-value uint32 | | | |
| | +--rw alt-information-sources* [information-source] | | | |
| | +--rw information-source enumeration | | | |
| | +--rw credibility-preference? uint16 | | | |
| | +--rw link-index? uint64 | | | |
| | +--rw administrative-group* [sequence] | | | |
| | | +--rw sequence uint32 | | | |
| | | +--rw ag-element? uint32 | | | |
| | +--rw max-link-bandwidth? decimal64 | | | |
| | +--rw max-resv-link-bandwidth? decimal64 | | | |
| | +--rw unreserved-bandwidth* [priority] | | | |
| | | +--rw priority uint8 | | | |
| | | +--rw bandwidth? decimal64 | | | |
| | +--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? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--rw unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--rw link-protection-type? enumeration | | | |
| | +--rw interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | +--rw switching-capability | | | |
| ted:switching-capabilities | | | |
| | | +--rw encoding? ted:encoding-type | | | |
| | | +--rw max-lsp-bandwidth* [priority] | | | |
| | | | +--rw priority uint8 | | | |
| | | | +--rw bandwidth? decimal64 | | | |
| | | +--rw packet-switch-capable | | | |
| | | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--rw interface-mtu? uint16 | | | |
| | | +--rw time-division-multiplex-capable | | | |
| | | +--rw minimum-lsp-bandwidth? decimal64 | | | |
| | | +--rw indication? enumeration | | | |
| | +--rw srlg | | | |
| | +--rw srlg-values* [srlg-value] | | | |
| | +--rw srlg-value uint32 | | | |
| +--ro te-topologies-state | | | |
| +--ro topology* [te-topology-id] | | | |
| +--ro te-topology-id te-topology-id | | | |
| +--ro server-provided? boolean | | | |
| +--ro topology-types | | | |
| | +--ro te-topology! | | | |
| +--ro node* [te-node-id] | | | |
| | +--ro te-node-id te-node-id | | | |
| | +--ro te-node-template? leafref | | | |
| | +--ro te-node-attributes | | | |
| | | +--ro schedules* [schedule-id] | | | |
| | | | +--ro schedule-id uint32 | | | |
| | | | +--ro start? yang:date-and-time | | | |
| | | | +--ro schedule-duration? string | | | |
| | | | +--ro repeat-interval? string | | | |
| | | +--ro name? inet:domain-name | | | |
| | | +--ro signaling-address* inet:ip-address | | | |
| | | +--ro flag* flag-type | | | |
| | | +--ro is-abstract? boolean | | | |
| | | +--ro underlay-topology? leafref | | | |
| {te-topology-hierarchy}? | | | |
| | | +--ro te-link* [te-link-id] | | | |
| | | | +--ro te-link-id te-link-id | | | |
| | | | +--ro (stack-level)? | | | |
| | | | +--:(bundle) | | | |
| | | | | +--ro bundled-links | | | |
| | | | | +--ro bundled-link* [sequence] | | | |
| | | | | +--ro sequence uint32 | | | |
| | | | | +--ro te-link-ref? leafref | | | |
| | | | +--:(component) | | | |
| | | | +--ro component-links | | | |
| | | | +--ro component-link* [sequence] | | | |
| | | | +--ro sequence uint32 | | | |
| | | | +--ro component-link-ref? leafref | | | |
| | | +--ro connectivity-matrix* [id] | | | |
| | | | +--ro id uint32 | | | |
| | | | +--ro from-link | | | |
| | | | | +--ro topo-ref? leafref | | | |
| | | | | +--ro node-ref? leafref | | | |
| | | | | +--ro link-end-ref? leafref | | | |
| | | | +--ro to-link | | | |
| | | | | +--ro topo-ref? leafref | | | |
| | | | | +--ro node-ref? leafref | | | |
| | | | | +--ro link-end-ref? leafref | | | |
| | | | +--ro is-allowed? boolean | | | |
| | | +--ro ted | | | |
| | | +--ro te-router-id-ipv4? inet:ipv4-address | | | |
| | | +--ro te-router-id-ipv6? inet:ipv6-address | | | |
| | | +--ro ipv4-local-address* [ipv4-prefix] | | | |
| | | | +--ro ipv4-prefix inet:ipv4-prefix | | | |
| | | +--ro ipv6-local-address* [ipv6-prefix] | | | |
| | | | +--ro ipv6-prefix inet:ipv6-prefix | | | |
| | | | +--ro prefix-option? uint8 | | | |
| | | +--ro pcc-capabilities? pcc-capabilities | | | |
| | +--ro te-node-state-attributes | | | |
| | +--ro information-source? enumeration | | | |
| | +--ro credibility-preference? uint16 | | | |
| +--ro link* [source-te-node-id source-te-link-id | | | |
| dest-te-node-id dest-te-link-id] | | | |
| +--ro source-te-node-id leafref | | | |
| +--ro source-te-link-id leafref | | | |
| +--ro dest-te-node-id leafref | | | |
| +--ro dest-te-link-id leafref | | | |
| +--ro te-link-template? leafref | | | |
| +--ro te-link-attributes | | | |
| | +--ro schedules* [schedule-id] | | | |
| | | +--ro schedule-id uint32 | | | |
| | | +--ro start? yang:date-and-time | | | |
| | | +--ro schedule-duration? string | | | |
| | | +--ro repeat-interval? string | | | |
| | +--ro name? string | | | |
| | +--ro flag* flag-type | | | |
| | +--ro is-abstract? boolean | | | |
| | +--ro underlay! {te-topology-hierarchy}? | | | |
| | | +--ro underlay-path | | | |
| | | | +--ro topology-id? leafref | | | |
| | | | +--ro path-element* [path-element-id] | | | |
| | | | +--ro path-element-id uint32 | | | |
| | | | +--ro loose? boolean | | | |
| | | | +--ro (element-type)? | | | |
| | | | +--:(numbered-link) | | | |
| | | | | +--ro link-ip-address? inet:ip-address | | | |
| | | | +--:(unnumbered-link) | | | |
| | | | | +--ro link-node-id? uint32 | | | |
| | | | | +--ro te-link-id? uint32 | | | |
| | | | +--:(node) | | | |
| | | | | +--ro te-node-id? uint32 | | | |
| | | | +--:(label) | | | |
| | | | +--ro label? uint32 | | | |
| | | +--ro underlay-backup-path | | | |
| | | | +--ro topology-id? leafref | | | |
| | | | +--ro path-element* [path-element-id] | | | |
| | | | +--ro path-element-id uint32 | | | |
| | | | +--ro loose? boolean | | | |
| | | | +--ro (element-type)? | | | |
| | | | +--:(numbered-link) | | | |
| | | | | +--ro link-ip-address? inet:ip-address | | | |
| | | | +--:(unnumbered-link) | | | |
| | | | | +--ro link-node-id? uint32 | | | |
| | | | | +--ro te-link-id? uint32 | | | |
| | | | +--:(node) | | | |
| | | | | +--ro te-node-id? uint32 | | | |
| | | | +--:(label) | | | |
| | | | +--ro label? uint32 | | | |
| | | +--ro underlay-protection-type? uint16 | | | |
| | | +--ro underlay-trail-src | | | |
| | | | +--ro topo-ref? leafref | | | |
| | | | +--ro node-ref? leafref | | | |
| | | | +--ro link-end-ref? leafref | | | |
| | | +--ro underlay-trail-des | | | |
| | | | +--ro topo-ref? leafref | | | |
| | | | +--ro node-ref? leafref | | | |
| | | | +--ro link-end-ref? leafref | | | |
| | | +--ro dynamic? boolean | | | |
| | | +--ro committed? boolean | | | |
| | +--ro ted | | | |
| | +--ro admin-status? enumeration | | | |
| | +--ro oper-status? enumeration | | | |
| | +--ro area-id? binary | | | |
| | +--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 | | TE info distributed via ISIS-TE : TE info distributed via OSPF-TE | |
| | | +--ro unidirectional-delay? uint32 | | : | |
| | | +--ro unidirectional-min-delay? uint32 | | +---+ +---+ +---+ +---+ +---+ | |
| | | +--ro unidirectional-max-delay? uint32 | | | R1|-------| R2|--------| R3|---------| R4|---------| R5| | |
| | | +--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 | | | R6|-------------| R7| : | R8|---------| R9| | |
| | +--ro information-source? enumeration | | +---+ +---+ : +---+ +---+ | |
| | +--ro credibility-preference? uint16 | | : | |
| | +--ro link-index? uint64 | | | |
| | +--ro administrative-group* [sequence] | | | |
| | | +--ro sequence uint32 | | | |
| | | +--ro ag-element? uint32 | | | |
| | +--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? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-packet-loss? | | | |
| | | | |
|
| performance-metric-normality | | Figure 2a: Example Network Topology | |
| | | +--ro unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--ro link-protection-type? enumeration | | | |
| | +--ro interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | +--ro switching-capability | | | |
| ted:switching-capabilities | | | |
| | | +--ro encoding? | | | |
| ted:encoding-type | | | |
| | | +--ro max-lsp-bandwidth* [priority] | | | |
| | | | +--ro priority uint8 | | | |
| | | | +--ro bandwidth? decimal64 | | | |
| | | +--ro packet-switch-capable | | | |
| | | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--ro interface-mtu? uint16 | | | |
| | | +--ro time-division-multiplex-capable | | | |
| | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | +--ro indication? enumeration | | | |
| | +--ro srlg | | | |
| | | +--ro srlg-values* [srlg-value] | | | |
| | | +--ro srlg-value uint32 | | | |
| | +--ro alt-information-sources* [information-source] | | | |
| | +--ro information-source enumeration | | | |
| | +--ro credibility-preference? uint16 | | | |
| | +--ro link-index? uint64 | | | |
| | +--ro administrative-group* [sequence] | | | |
| | | +--ro sequence uint32 | | | |
| | | +--ro ag-element? uint32 | | | |
| | +--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? | | |Native TE Topology | : |Native TE Topology | | |
| decimal64 | | |Info-Source: ISIS-TE | : |Info-Source: OSPF-TE | | |
| | | | +--ro unidirectional-available-bandwidth? | | ----------------------- : ----------------------- | |
| decimal64 | | : | |
| | | | +--ro unidirectional-utilized-bandwidth? | | [R1] ++++ [R2] ++++ [R3] : [R3'] ++++ [R4] ++++ [R5] | |
| decimal64 | | + + : + + + + | |
| | | +--ro normality | | + + : + + + + | |
| | | +--ro unidirectional-delay? | | + + : ++ ++ | |
| performance-metric-normality | | [R6] +++++++++ [R7] : [R8] ++++ [R9] | |
| | | +--ro unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | | +--ro unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--ro link-protection-type? enumeration | | | |
| | +--ro interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | | +--ro switching-capability | | | |
| ted:switching-capabilities | | | |
| | | +--ro encoding? ted:encoding-type | | | |
| | | +--ro max-lsp-bandwidth* [priority] | | | |
| | | | +--ro priority uint8 | | | |
| | | | +--ro bandwidth? decimal64 | | | |
| | | +--ro packet-switch-capable | | | |
| | | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | | +--ro interface-mtu? uint16 | | | |
| | | +--ro time-division-multiplex-capable | | | |
| | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | +--ro indication? enumeration | | | |
| | +--ro srlg | | | |
| | +--ro srlg-values* [srlg-value] | | | |
| | +--ro srlg-value uint32 | | | |
| +--ro te-link-state-attributes | | | |
| +--ro information-source? enumeration | | | |
| +--ro credibility-preference? uint16 | | | |
| notifications: | | | |
| +---n te-node-event | | | |
| | +--ro event-type? te-topology-event-type | | | |
| | +--ro topo-ref? leafref | | | |
| | +--ro node-ref? leafref | | | |
| | +--ro te-topology! | | | |
| | +--ro te-node-attributes | | | |
| | +--ro schedules* [schedule-id] | | | |
| | | +--ro schedule-id uint32 | | | |
| | | +--ro start? yang:date-and-time | | | |
| | | +--ro schedule-duration? string | | | |
| | | +--ro repeat-interval? string | | | |
| | +--ro name? inet:domain-name | | | |
| | +--ro signaling-address* inet:ip-address | | | |
| | +--ro flag* flag-type | | | |
| | +--ro is-abstract? boolean | | | |
| | +--ro underlay-topology? leafref {te-topology-hierarchy}? | | | |
| | +--ro te-link* [te-link-id] | | | |
| | | +--ro te-link-id te-link-id | | | |
| | | +--ro (stack-level)? | | | |
| | | +--:(bundle) | | | |
| | | | +--ro bundled-links | | | |
| | | | +--ro bundled-link* [sequence] | | | |
| | | | +--ro sequence uint32 | | | |
| | | | +--ro te-link-ref? leafref | | | |
| | | +--:(component) | | | |
| | | +--ro component-links | | | |
| | | +--ro component-link* [sequence] | | | |
| | | +--ro sequence uint32 | | | |
| | | +--ro component-link-ref? leafref | | | |
| | +--ro connectivity-matrix* [id] | | | |
| | | +--ro id uint32 | | | |
| | | +--ro from-link | | | |
| | | | +--ro topo-ref? leafref | | | |
| | | | +--ro node-ref? leafref | | | |
| | | | +--ro link-end-ref? leafref | | | |
| | | +--ro to-link | | | |
| | | | +--ro topo-ref? leafref | | | |
| | | | +--ro node-ref? leafref | | | |
| | | | +--ro link-end-ref? leafref | | | |
| | | +--ro is-allowed? boolean | | | |
| | +--ro ted | | | |
| | +--ro te-router-id-ipv4? inet:ipv4-address | | | |
| | +--ro te-router-id-ipv6? inet:ipv6-address | | | |
| | +--ro ipv4-local-address* [ipv4-prefix] | | | |
| | | +--ro ipv4-prefix inet:ipv4-prefix | | | |
| | +--ro ipv6-local-address* [ipv6-prefix] | | | |
| | | +--ro ipv6-prefix inet:ipv6-prefix | | | |
| | | +--ro prefix-option? uint8 | | | |
| | +--ro pcc-capabilities? pcc-capabilities | | | |
| +---n te-link-event | | | |
| +--ro event-type? te-topology-event-type | | | |
| +--ro topo-ref? leafref | | | |
| +--ro source-te-node-id-ref? leafref | | | |
| +--ro source-te-link-id-ref? leafref | | | |
| +--ro dest-te-node-id-ref? leafref | | | |
| +--ro dest-te-link-id-ref? leafref | | | |
| +--ro te-topology! | | | |
| +--ro te-link-attributes | | | |
| +--ro schedules* [schedule-id] | | | |
| | +--ro schedule-id uint32 | | | |
| | +--ro start? yang:date-and-time | | | |
| | +--ro schedule-duration? string | | | |
| | +--ro repeat-interval? string | | | |
| +--ro name? string | | | |
| +--ro flag* flag-type | | | |
| +--ro is-abstract? boolean | | | |
| +--ro underlay! {te-topology-hierarchy}? | | | |
| | +--ro underlay-path | | | |
| | | +--ro topology-id? leafref | | | |
| | | +--ro path-element* [path-element-id] | | | |
| | | +--ro path-element-id uint32 | | | |
| | | +--ro loose? boolean | | | |
| | | +--ro (element-type)? | | | |
| | | +--:(numbered-link) | | | |
| | | | +--ro link-ip-address? inet:ip-address | | | |
| | | +--:(unnumbered-link) | | | |
| | | | +--ro link-node-id? uint32 | | | |
| | | | +--ro te-link-id? uint32 | | | |
| | | +--:(node) | | | |
| | | | +--ro te-node-id? uint32 | | | |
| | | +--:(label) | | | |
| | | +--ro label? uint32 | | | |
| | +--ro underlay-backup-path | | | |
| | | +--ro topology-id? leafref | | | |
| | | +--ro path-element* [path-element-id] | | | |
| | | +--ro path-element-id uint32 | | | |
| | | +--ro loose? boolean | | | |
| | | +--ro (element-type)? | | | |
| | | +--:(numbered-link) | | | |
| | | | +--ro link-ip-address? inet:ip-address | | | |
| | | +--:(unnumbered-link) | | | |
| | | | +--ro link-node-id? uint32 | | | |
| | | | +--ro te-link-id? uint32 | | | |
| | | +--:(node) | | | |
| | | | +--ro te-node-id? uint32 | | | |
| | | +--:(label) | | | |
| | | +--ro label? uint32 | | | |
| | +--ro underlay-protection-type? uint16 | | | |
| | +--ro underlay-trail-src | | | |
| | | +--ro topo-ref? leafref | | | |
| | | +--ro node-ref? leafref | | | |
| | | +--ro link-end-ref? leafref | | | |
| | +--ro underlay-trail-des | | | |
| | | +--ro topo-ref? leafref | | | |
| | | +--ro node-ref? leafref | | | |
| | | +--ro link-end-ref? leafref | | | |
| | +--ro dynamic? boolean | | | |
| | +--ro committed? boolean | | | |
| +--ro ted | | | |
| +--ro admin-status? enumeration | | | |
| +--ro oper-status? enumeration | | | |
| +--ro area-id? binary | | | |
| +--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 information-source? enumeration | | | |
| +--ro credibility-preference? uint16 | | | |
| +--ro link-index? uint64 | | | |
| +--ro administrative-group* [sequence] | | | |
| | +--ro sequence uint32 | | | |
| | +--ro ag-element? uint32 | | | |
| +--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? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-residual-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| +--ro link-protection-type? enumeration | | | |
| +--ro interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | +--ro switching-capability ted:switching-capabilities | | | |
| | +--ro encoding? ted:encoding-type | | | |
| | +--ro max-lsp-bandwidth* [priority] | | | |
| | | +--ro priority uint8 | | | |
| | | +--ro bandwidth? decimal64 | | | |
| | +--ro packet-switch-capable | | | |
| | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | +--ro interface-mtu? uint16 | | | |
| | +--ro time-division-multiplex-capable | | | |
| | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | +--ro indication? enumeration | | | |
| +--ro srlg | | | |
| | +--ro srlg-values* [srlg-value] | | | |
| | +--ro srlg-value uint32 | | | |
| +--ro alt-information-sources* [information-source] | | | |
| +--ro information-source enumeration | | | |
| +--ro credibility-preference? uint16 | | | |
| +--ro link-index? uint64 | | | |
| +--ro administrative-group* [sequence] | | | |
| | +--ro sequence uint32 | | | |
| | +--ro ag-element? uint32 | | | |
| +--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? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-min-delay? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-max-delay? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-delay-variation? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-packet-loss? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-residual-bandwidth? | | | |
| | | | |
|
| performance-metric-normality | | Figure 2b: Native TE Topologies as seen on Node R3 | |
| | +--ro unidirectional-available-bandwidth? | | | |
| performance-metric-normality | | | |
| | +--ro unidirectional-utilized-bandwidth? | | | |
| performance-metric-normality | | | |
| +--ro link-protection-type? enumeration | | | |
| +--ro interface-switching-capabilities* | | | |
| [switching-capability] | | | |
| | +--ro switching-capability | | | |
| ted:switching-capabilities | | | |
| | +--ro encoding? ted:encoding-type | | | |
| | +--ro max-lsp-bandwidth* [priority] | | | |
| | | +--ro priority uint8 | | | |
| | | +--ro bandwidth? decimal64 | | | |
| | +--ro packet-switch-capable | | | |
| | | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | | +--ro interface-mtu? uint16 | | | |
| | +--ro time-division-multiplex-capable | | | |
| | +--ro minimum-lsp-bandwidth? decimal64 | | | |
| | +--ro indication? enumeration | | | |
| +--ro srlg | | | |
| +--ro srlg-values* [srlg-value] | | | |
| +--ro srlg-value uint32 | | | |
| | | | |
|
| 3.1. TE Topology Yang Module | | Consider the case of the topology being split in a way that some | |
| | | nodes participate in OSPF-TE while others participate in ISIS-TE | |
| | | (Figure 2a). An implementation MAY choose to construct separate TE | |
| | | Topologies based on the information source. The native TE Topologies | |
| | | constructed using only nodes and links that were learnt via a | |
| | | specific information source are depicted in Figure 2b. The data | |
| | | model proposed in this document can be used to retrieve/represent | |
| | | these TE topologies. | |
| | | | |
|
| <CODE BEGINS> file "ietf-te-topology@2015-03-23.yang" | | Similarly, the data model can be used to represent/retrieve a TE | |
| module ietf-te-topology { | | Topology that is constructed using only nodes and links that belong | |
| yang-version 1; | | to a particular technology layer. The data model is flexible enough | |
| namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; | | to retrieve and represent many such native TE Topologies. | |
| // replace with IANA namespace when assigned | | | |
| | | | |
|
| prefix "tet"; | | 3.2. Customized TE Topologies | |
| | | | |
|
| import ietf-yang-types { | | The model discussed in this draft can be used to represent, retrieve | |
| prefix "yang"; | | and manipulate customized TE Topologies. The model allows the | |
| } | | provider to present the network in abstract TE Terms on a per client | |
| | | basis. These customized topologies contain sufficient information | |
| | | for the path computing client to select paths according to its | |
| | | policies. | |
| | | | |
|
| import ietf-inet-types { | | | +---+ /-\ | |
| prefix "inet"; | | | | | Router ( ) WDM | |
| } | | | +---+ Node \-/ node | |
| | | | | |
| | | o----------------------------_____ | |
| | | __ | |
| | | +---+ /-\ /-\ /-\ +---+ | |
| | | | R1|-------( A )--------( C )---------( E )---------| R3| | |
| | | +---+ \-/ \-/ \-/ +---+ | |
| | | / \ / \ | |
| | | / \ / \ | |
| | | / \ / \ | |
| | | / \ / \ | |
| | | / \ / \ | |
| | | +---+ /-\ /-\ /-\ +---+ | |
| | | | R2|---------( B )---------( D )---------( F )---------| R4| | |
| | | +---+ \-/ \-/ \-/ +---+ | |
| | | | |
|
| import ted { | | Figure 3: Example packet optical topology | |
| prefix "ted"; | | | |
| } | | | |
| | | | |
|
| import ietf-interfaces { | | Consider the network topology depicted in Figure 3. This is a | |
| prefix "if"; | | typical packet optical transport deployment scenario where the WDM | |
| } | | layer network domain serves as a Server Network Domain providing | |
| | | transport connectivity to the packet layer network Domain (Client | |
| | | Network Domain). Nodes R1, R2, R3 and R4 are IP routers that are | |
| | | connected to an Optical WDM transport network. A, B, C, D, E and F | |
| | | are WDM nodes that constitute the Server Network Domain. | |
| | | | |
|
| organization "TBD"; | | | ***** B-F WDM Path | |
| contact "TBD"; | | | @@@@@ B-E WDM Path | |
| description "TE topology model"; | | | $$$$$ A-E WDM Path | |
| | | o--------------------_ | |
| | | | |
|
| revision "2015-03-23" { | | +---+ /-\ $$$$$$$$ /-\ $$$$$$$$$ /-\ +---+ | |
| description "Initial revision"; | | | R1|-------( A )--------( C )---------( E )---------| R3| | |
| reference "TBD"; | | +---+ \-/ @\-/ @@@@@@@@@ \-/ +---+ | |
| } | | @/ \ / \ | |
| | | @/ \ / \ | |
| | | @/ \ / \ | |
| | | @/ \ / \ | |
| | | @/ \ / \ | |
| | | +---+ /-\ ********* /-\ ********* /-\ +---+ | |
| | | | R2|---------( B )---------( D )---------( F )---------| R4| | |
| | | +---+ \-/ \-/ \-/ +---+ | |
| | | | |
|
| /* | | Figure 4a: Paths within the provider domain | |
| * Features | | | |
| */ | | | |
| | | | |
|
| feature te-topology-hierarchy { | | ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ | |
| description | | +++++ | |
| "This feature indicates that the system allows underlay | | ++++ | |
| and/or overlay TE topology hierarchy."; | | ++++ | |
| } | | ++++ | |
| | | ++++ | |
| | | ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ | |
| | | | |
|
| /* | | Figure 4b: Customized TE Topology provided to the Client | |
| * Typedefs | | | |
| */ | | | |
| | | | |
|
| typedef te-topology-id { | | [R1] ++++++++ [A] ++++++++++++++++++++ [E] +++++++++ [R3] | |
| type string { | | +++++ | |
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; | | ++++ | |
| } | | ++++ | |
| description | | ++++ | |
| "An identifier for a topology."; | | ++++ | |
| } | | [R2] ++++++++ [B] ++++++++++++++++++++ [F] +++++++++ [R4] | |
| | | | |
|
| typedef te-template-name { | | Figure 4c: Customized TE Topology merged with the Client's Native TE | |
| type string { | | Topology | |
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; | | | |
| } | | | |
| description | | | |
| "A type for the name of a TE node template or TE link | | | |
| template."; | | | |
| } | | | |
| | | | |
|
| typedef te-node-id { | | The goal here is to augment the Client TE Topology with a customized | |
| type inet:ip-address; | | TE Topology provided by the WDM network. Given the availability of | |
| description | | the paths A-E, B-F and B-E (Figure 4a), a customized TE Topology as | |
| "An identifier for a node in a topology. | | depicted in Figure 4b is provided to the Client. This customized TE | |
| The identifier is represented as an IPv4 or IPv6 address. | | Topology is merged with the Client's Native TE Topology and the | |
| | | resulting topology is depicted in Figure 4c. | |
| | | | |
|
| The identifier SHOULD be chosen such that the same node in a | | The data model proposed in this document can be used to | |
| real network topology will always be identified through the | | retrieve/represent/manipulate the customized TE Topology depicted in | |
| same identifier, even if the model is instantiated in | | Figure 4b. | |
| separate datastores. An implementation MAY choose to capture | | | |
| semantics in the identifier, for example to indicate the type | | | |
| of node and/or the type of topology that the node is a part | | | |
| of."; | | | |
| } | | | |
| | | | |
|
| typedef te-link-id { | | 4. Modeling Considerations | |
| type union { | | | |
| type uint32; // Unnumbered | | | |
| type inet:ip-address; // IPv4 or IPv6 address | | | |
| } | | | |
| description | | | |
| "An identifier for a TE link on a node. | | | |
| The identifier may be opaque. | | | |
| The identifier SHOULD be chosen such that the same TP in a | | | |
| real network topology will always be identified through the | | | |
| same identifier, even if the model is instantiated in | | | |
| separate datastores. An implementation MAY choose to capture | | | |
| semantics in the identifier, for example to indicate the type | | | |
| of TP and/or the type of node and topology that the TP is a | | | |
| part of."; | | | |
| } | | | |
| | | | |
|
| typedef te-topology-event-type { | | 4.1. Generic extensible Model | |
| type enumeration { | | | |
| enum "add" { | | The TE Topology model proposed in this document is meant to be | |
| value 0; | | technology agnostic. Other technology specific TE Topology models | |
| description | | can augment and use the building blocks provided by the proposed | |
| "A TE node or te-link has | | model. | |
| been added"; | | | |
| } | | +-------------------+ | |
| enum "remove" { | | | Generic | | |
| value 1; | | | TE Topology Model | | |
| description | | +-------------------+ | |
| "A TE node or te-link has | | | | |
| been removed"; | | +-------------+-------------+-------------+ | |
| } | | | | | | | |
| enum "update" { | | V V V V | |
| value 2; | | +------------+ +------------+ | |
| description | | | Technology | | Technology | | |
| "A TE node or te-link has | | | Specific | ...................... | Specific | | |
| been updated"; | | | TE Topology| | TE Topology| | |
| } | | | Model 1 | | Model n | | |
| | | +------------+ +------------+ | |
| | | | |
| | | Figure 5: Extending the generic model | |
| | | | |
| | | 4.2. Model Structure | |
| | | | |
| | | The high-level model structure proposed by this document is as shown | |
| | | below: | |
| | | | |
| | | +--rw te-topologies | |
| | | | +--rw topology* [provider-id client-id te-topology-id] | |
| | | | | .......... | |
| | | | | +--rw node* [te-node-id] | |
| | | | | | .......... | |
| | | | | | +--rw te-link* [te-link-id] | |
| | | | | | .......... | |
| | | | | +--rw link* [source-te-node-id source-te-link-id dest-te- | |
| | | node-id dest-te-link-id] | |
| | | | | | .......... | |
| | | | +--rw node-template* [name] {template}? | |
| | | | | .......... | |
| | | | +--rw link-template* [name] {template}? | |
| | | | | .......... | |
| | | +--ro te-topologies-state | |
| | | +--ro topology* [provider-id client-id te-topology-id] | |
| | | | .......... | |
| | | +--ro node* [te-node-id] | |
| | | | | .......... | |
| | | | +--ro te-node-state | |
| | | | .......... | |
| | | +--ro link* [source-te-node-id source-te-link-id dest-te- | |
| | | node-id dest-te-link-id] | |
| | | | | .......... | |
| | | | +--ro te-link-state | |
| | | | .......... | |
| | | | |
| | | notifications: | |
| | | +---n te-node-event | |
| | | | .......... | |
| | | +---n te-link-event | |
| | | .......... | |
| | | | |
| | | 4.3. 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. | |
| | | | |
| | | +--rw topology* [provider-id client-id te-topology-id] | |
| | | | +--rw provider-id te-global-id | |
| | | | +--rw client-id te-global-id | |
| | | | +--rw te-topology-id te-topology-id | |
| | | | |
| | | 4.4. 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 performance-metric-throttle {te-performance-metric}? | |
| | | | | .......... | |
| | | | +--rw administrative-group? te-types:admin-groups | |
| | | | +--rw max-link-bandwidth? decimal64 | |
| | | | +--rw max-resv-link-bandwidth? decimal64 | |
| | | | +--rw unreserved-bandwidth* [priority] | |
| | | | | .......... | |
| | | | +--rw te-default-metric? uint32 | |
| | | | +--rw performance-metric {te-performance-metric}? | |
| | | | | .......... | |
| | | | +--rw link-protection-type? enumeration | |
| | | | +--rw interface-switching-capabilities* [switching-capability] | |
| | | | | .......... | |
| | | | +--rw te-srlgs | |
| | | | | .......... | |
| | | | |
| | | 4.5. 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-link | |
| | | | | +--rw provider-id-ref? leafref | |
| | | | | +--rw client-id-ref? leafref | |
| | | | | +--rw topology-id-ref? leafref | |
| | | | | +--rw node-ref? leafref | |
| | | | | +--rw link-end-ref? leafref | |
| | | | +--rw to-link | |
| | | | | +--rw provider-id-ref? leafref | |
| | | | | +--rw client-id-ref? leafref | |
| | | | | +--rw topology-id-ref? leafref | |
| | | | | +--rw node-ref? leafref | |
| | | | | +--rw link-end-ref? leafref | |
| | | | +--rw is-allowed? Boolean | |
| | | | |
| | | 4.6. 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. | |
| | | | |
| | | +--ro te-topologies-state | |
| | | +--ro topology* [provider-id client-id te-topology-id] | |
| | | | .......... | |
| | | +--ro node* [te-node-id] | |
| | | | .......... | |
| | | | +--ro te-node-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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | | |
| | | +--ro te-topologies-state | |
| | | +--ro topology* [provider-id client-id te-topology-id] | |
| | | | .......... | |
| | | +--ro link* [source-te-node-id source-te-link-id dest-te- | |
| | | node-id dest-te-link-id] | |
| | | | .......... | |
| | | | +--ro te-link-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 topology-id-ref? leafref | |
| | | | | +--ro routing-instance? string | |
| | | | +--ro alt-information-sources* [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 topology-id-ref? leafref | |
| | | | | +--ro routing-instance? string | |
| | | | | .......... | |
| | | | |
| | | 4.7. 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. | |
| | | | |
| | | This relationship is captured via the "underlay-topology" field for | |
| | | the node and via the "underlay" field for the link. The use of these | |
| | | fields is optional and this functionality is tagged as a "feature" | |
| | | ("te-topology-hierarchy"). | |
| | | | |
| | | +--rw node* [te-node-id] | |
| | | | .......... | |
| | | | +--rw te-node-attributes | |
| | | | | .......... | |
| | | | | +--rw underlay-topology {te-topology-hierarchy}? | |
| | | | | | +--rw provider-id-ref? leafref | |
| | | | | | +--rw client-id-ref? leafref | |
| | | | | | +--rw topology-id-ref? leafref | |
| | | | |
| | | +--rw link* [source-te-node-id source-te-link-id dest-te-node-id | |
| | | dest-te-link-id] | |
| | | | .......... | |
| | | | +--rw te-link-attributes | |
| | | | | ....... | |
| | | | | +--rw underlay! {te-topology-hierarchy}? | |
| | | | | | +--rw underlay-primary-path | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-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 topology-id-ref? leafref | |
| | | | | | | +--rw path-element* [path-element-id] | |
| | | | | | | .......... | |
| | | | | | +--rw underlay-protection-type? uint16 | |
| | | | | | +--rw underlay-trail-src | |
| | | | | | .......... | |
| | | | | | +--rw underlay-trail-des | |
| | | | | | .......... | |
| | | | |
| | | 4.8. 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"). [Editor's Note: The notion of | |
| | | "scheduling parameters" has wider applicability. The expectation is | |
| | | that this will eventually be discussed in a separate document.] | |
| | | | |
| | | +--rw schedules* [schedule-id] {configuration-schedule}? | |
| | | | +--rw schedule-id uint32 | |
| | | | +--rw start? yang:date-and-time | |
| | | | +--rw schedule-duration? string | |
| | | | +--rw repeat-interval? string | |
| | | | |
| | | 4.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}? | |
| | | | .......... | |
| | | | |
| | | | | |
| | | +--rw node-template* [name] {template}? | |
| | | | +--rw name te-template-name | |
| | | | +--rw priority? uint16 | |
| | | | +--rw reference-change-policy? enumeration | |
| | | | +--rw te-node-template* leafref | |
| | | | +--rw te-node-attributes | |
| | | | .......... | |
| | | +--rw link-template* [name] {template}? | |
| | | +--rw name te-template-name | |
| | | +--rw priority? uint16 | |
| | | +--rw reference-change-policy? enumeration | |
| | | +--rw te-link-template* leafref | |
| | | +--rw te-link-attributes | |
| | | .......... | |
| | | | |
| | | A template can be constructed using multiple other templates. 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 node 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.] | |
| | | | |
| | | 4.10. 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: | |
| | | | |
| | | - 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. | |
| | | | |
| | | 4.11. Open Items | |
| | | | |
| | | - Augmenting [YANG-NET-TOPO]: The generic network topology building | |
| | | blocks are discussed in [YANG-NET-TOPO]. This version of the | |
| | | document does not use any of those constructs. The next revision | |
| | | of this document should augment these constructs. | |
| | | | |
| | | - 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. | |
| | | | |
| | | 5. Tree Structure | |
| | | | |
| | | module: ietf-te-topology | |
| | | +--rw te-topologies | |
| | | | +--rw topology* [provider-id client-id te-topology-id] | |
| | | | | +--rw provider-id te-global-id | |
| | | | | +--rw client-id te-global-id | |
| | | | | +--rw te-topology-id te-topology-id | |
| | | | | +--rw schedules* [schedule-id] {configuration-schedule}? | |
| | | | | | +--rw schedule-id uint32 | |
| | | | | | +--rw start? yang:date-and-time | |
| | | | | | +--rw schedule-duration? string | |
| | | | | | +--rw repeat-interval? string | |
| | | | | +--rw topology-types | |
| | | | | | +--rw te-topology! | |
| | | | | +--rw node* [te-node-id] | |
| | | | | | +--rw te-node-id te-node-id | |
| | | | | | +--rw te-node-template? leafref {template}? | |
| | | | | | +--rw te-node-attributes | |
| | | | | | | +--rw schedules* [schedule-id] {configuration- | |
| | | schedule}? | |
| | | | | | | | +--rw schedule-id uint32 | |
| | | | | | | | +--rw start? yang:date-and-time | |
| | | | | | | | +--rw schedule-duration? string | |
| | | | | | | | +--rw repeat-interval? string | |
| | | | | | | +--rw name? inet:domain-name | |
| | | | | | | +--rw signaling-address* inet:ip-address | |
| | | | | | | +--rw flag* flag-type | |
| | | | | | | +--rw is-abstract? boolean | |
| | | | | | | +--rw underlay-topology {te-topology-hierarchy}? | |
| | | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | +--rw connectivity-matrix* [id] | |
| | | | | | | +--rw id uint32 | |
| | | | | | | +--rw from-link | |
| | | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | | +--rw node-ref? leafref | |
| | | | | | | | +--rw link-end-ref? leafref | |
| | | | | | | +--rw to-link | |
| | | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | | +--rw node-ref? leafref | |
| | | | | | | | +--rw link-end-ref? leafref | |
| | | | | | | +--rw is-allowed? boolean | |
| | | | | | +--rw te-link* [te-link-id] | |
| | | | | | +--rw te-link-id te-link-id | |
| | | | | | +--rw (stack-level)? | |
| | | | | | +--:(bundle) | |
| | | | | | | +--rw bundled-links | |
| | | | | | | +--rw bundled-link* [sequence] | |
| | | | | | | +--rw sequence uint32 | |
| | | | | | | +--rw te-link-ref? leafref | |
| | | | | | +--:(component) | |
| | | | | | +--rw component-links | |
| | | | | | +--rw component-link* [sequence] | |
| | | | | | +--rw sequence uint32 | |
| | | | | | +--rw component-link-ref? leafref | |
| | | | | +--rw link* [source-te-node-id source-te-link-id dest-te- | |
| | | node-id dest-te-link-id] | |
| | | | | +--rw source-te-node-id leafref | |
| | | | | +--rw source-te-link-id leafref | |
| | | | | +--rw dest-te-node-id leafref | |
| | | | | +--rw dest-te-link-id leafref | |
| | | | | +--rw te-link-template? leafref {template}? | |
| | | | | +--rw te-link-attributes | |
| | | | | +--rw schedules* [schedule-id] {configuration- | |
| | | schedule}? | |
| | | | | | +--rw schedule-id uint32 | |
| | | | | | +--rw start? yang:date-and-time | |
| | | | | | +--rw schedule-duration? string | |
| | | | | | +--rw repeat-interval? string | |
| | | | | +--rw name? string | |
| | | | | +--rw flag* flag-type | |
| | | | | +--rw is-abstract? boolean | |
| | | | | +--rw underlay! {te-topology-hierarchy}? | |
| | | | | | +--rw underlay-primary-path | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-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-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-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-trail-src | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | +--rw node-ref? leafref | |
| | | | | | | +--rw link-end-ref? leafref | |
| | | | | | +--rw underlay-trail-des | |
| | | | | | +--rw provider-id-ref? leafref | |
| | | | | | +--rw client-id-ref? leafref | |
| | | | | | +--rw topology-id-ref? leafref | |
| | | | | | +--rw node-ref? leafref | |
| | | | | | +--rw link-end-ref? leafref | |
| | | | | +--rw admin-status? enumeration | |
| | | | | +--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 max-link-bandwidth? decimal64 | |
| | | | | +--rw max-resv-link-bandwidth? decimal64 | |
| | | | | +--rw unreserved-bandwidth* [priority] | |
| | | | | | +--rw priority uint8 | |
| | | | | | +--rw bandwidth? decimal64 | |
| | | | | +--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? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | | | +--rw unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--rw link-protection-type? enumeration | |
| | | | | +--rw interface-switching-capabilities* [switching- | |
| | | capability] | |
| | | | | | +--rw switching-capability | |
| | | identityref | |
| | | | | | +--rw encoding? | |
| | | identityref | |
| | | | | | +--rw max-lsp-bandwidth* [priority] | |
| | | | | | | +--rw priority uint8 | |
| | | | | | | +--rw bandwidth? decimal64 | |
| | | | | | +--rw packet-switch-capable | |
| | | | | | | +--rw minimum-lsp-bandwidth? decimal64 | |
| | | | | | | +--rw interface-mtu? uint16 | |
| | | | | | +--rw time-division-multiplex-capable | |
| | | | | | +--rw minimum-lsp-bandwidth? decimal64 | |
| | | | | | +--rw indication? enumeration | |
| | | | | +--rw te-srlgs | |
| | | | | +--rw values* te-types:srlg | |
| | | | +--rw node-template* [name] {template}? | |
| | | | | +--rw name te-template-name | |
| | | | | +--rw priority? uint16 | |
| | | | | +--rw reference-change-policy? enumeration | |
| | | | | +--rw te-node-template* leafref | |
| | | | | +--rw te-node-attributes | |
| | | | | | +--rw schedules* [schedule-id] {configuration-schedule}? | |
| | | | | | | +--rw schedule-id uint32 | |
| | | | | | | +--rw start? yang:date-and-time | |
| | | | | | | +--rw schedule-duration? string | |
| | | | | | | +--rw repeat-interval? string | |
| | | | | | +--rw name? inet:domain-name | |
| | | | | | +--rw signaling-address* inet:ip-address | |
| | | | | | +--rw flag* flag-type | |
| | | | | | +--rw is-abstract? boolean | |
| | | | | | +--rw underlay-topology {te-topology-hierarchy}? | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | +--rw connectivity-matrix* [id] | |
| | | | | | +--rw id uint32 | |
| | | | | | +--rw from-link | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | +--rw node-ref? leafref | |
| | | | | | | +--rw link-end-ref? leafref | |
| | | | | | +--rw to-link | |
| | | | | | | +--rw provider-id-ref? leafref | |
| | | | | | | +--rw client-id-ref? leafref | |
| | | | | | | +--rw topology-id-ref? leafref | |
| | | | | | | +--rw node-ref? leafref | |
| | | | | | | +--rw link-end-ref? leafref | |
| | | | | | +--rw is-allowed? boolean | |
| | | | | +--rw te-link* [te-link-id] | |
| | | | | +--rw te-link-id te-link-id | |
| | | | | +--rw (stack-level)? | |
| | | | | +--:(bundle) | |
| | | | | | +--rw bundled-links | |
| | | | | | +--rw bundled-link* [sequence] | |
| | | | | | +--rw sequence uint32 | |
| | | | | | +--rw te-link-ref? leafref | |
| | | | | +--:(component) | |
| | | | | +--rw component-links | |
| | | | | +--rw component-link* [sequence] | |
| | | | | +--rw sequence uint32 | |
| | | | | +--rw component-link-ref? leafref | |
| | | | +--rw link-template* [name] {template}? | |
| | | | +--rw name te-template-name | |
| | | | +--rw priority? uint16 | |
| | | | +--rw reference-change-policy? enumeration | |
| | | | +--rw te-link-template* leafref | |
| | | | +--rw te-link-attributes | |
| | | | +--rw schedules* [schedule-id] {configuration-schedule}? | |
| | | | | +--rw schedule-id uint32 | |
| | | | | +--rw start? yang:date-and-time | |
| | | | | +--rw schedule-duration? string | |
| | | | | +--rw repeat-interval? string | |
| | | | +--rw name? string | |
| | | | +--rw flag* flag-type | |
| | | | +--rw is-abstract? boolean | |
| | | | +--rw underlay! {te-topology-hierarchy}? | |
| | | | | +--rw underlay-primary-path | |
| | | | | | +--rw provider-id-ref? leafref | |
| | | | | | +--rw client-id-ref? leafref | |
| | | | | | +--rw topology-id-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-id-ref? leafref | |
| | | | | | +--rw client-id-ref? leafref | |
| | | | | | +--rw topology-id-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-trail-src | |
| | | | | | +--rw provider-id-ref? leafref | |
| | | | | | +--rw client-id-ref? leafref | |
| | | | | | +--rw topology-id-ref? leafref | |
| | | | | | +--rw node-ref? leafref | |
| | | | | | +--rw link-end-ref? leafref | |
| | | | | +--rw underlay-trail-des | |
| | | | | +--rw provider-id-ref? leafref | |
| | | | | +--rw client-id-ref? leafref | |
| | | | | +--rw topology-id-ref? leafref | |
| | | | | +--rw node-ref? leafref | |
| | | | | +--rw link-end-ref? leafref | |
| | | | +--rw admin-status? enumeration | |
| | | | +--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 max-link-bandwidth? decimal64 | |
| | | | +--rw max-resv-link-bandwidth? decimal64 | |
| | | | +--rw unreserved-bandwidth* [priority] | |
| | | | | +--rw priority uint8 | |
| | | | | +--rw bandwidth? decimal64 | |
| | | | +--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? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--rw unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--rw link-protection-type? enumeration | |
| | | | +--rw interface-switching-capabilities* [switching- | |
| | | capability] | |
| | | | | +--rw switching-capability identityref | |
| | | | | +--rw encoding? identityref | |
| | | | | +--rw max-lsp-bandwidth* [priority] | |
| | | | | | +--rw priority uint8 | |
| | | | | | +--rw bandwidth? decimal64 | |
| | | | | +--rw packet-switch-capable | |
| | | | | | +--rw minimum-lsp-bandwidth? decimal64 | |
| | | | | | +--rw interface-mtu? uint16 | |
| | | | | +--rw time-division-multiplex-capable | |
| | | | | +--rw minimum-lsp-bandwidth? decimal64 | |
| | | | | +--rw indication? enumeration | |
| | | | +--rw te-srlgs | |
| | | | +--rw values* te-types:srlg | |
| | | +--ro te-topologies-state | |
| | | +--ro topology* [provider-id client-id te-topology-id] | |
| | | +--ro provider-id te-global-id | |
| | | +--ro client-id te-global-id | |
| | | +--ro te-topology-id te-topology-id | |
| | | +--ro server-provided? boolean | |
| | | +--ro topology-types | |
| | | | +--ro te-topology! | |
| | | +--ro node* [te-node-id] | |
| | | | +--ro te-node-id te-node-id | |
| | | | +--ro te-node-template? leafref {template}? | |
| | | | +--ro te-node-attributes | |
| | | | | +--ro schedules* [schedule-id] {configuration- | |
| | | schedule}? | |
| | | | | | +--ro schedule-id uint32 | |
| | | | | | +--ro start? yang:date-and-time | |
| | | | | | +--ro schedule-duration? string | |
| | | | | | +--ro repeat-interval? string | |
| | | | | +--ro name? inet:domain-name | |
| | | | | +--ro signaling-address* inet:ip-address | |
| | | | | +--ro flag* flag-type | |
| | | | | +--ro is-abstract? boolean | |
| | | | | +--ro underlay-topology {te-topology-hierarchy}? | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | +--ro connectivity-matrix* [id] | |
| | | | | +--ro id uint32 | |
| | | | | +--ro from-link | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro to-link | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro is-allowed? boolean | |
| | | | +--ro te-link* [te-link-id] | |
| | | | | +--ro te-link-id te-link-id | |
| | | | | +--ro (stack-level)? | |
| | | | | +--:(bundle) | |
| | | | | | +--ro bundled-links | |
| | | | | | +--ro bundled-link* [sequence] | |
| | | | | | +--ro sequence uint32 | |
| | | | | | +--ro te-link-ref? leafref | |
| | | | | +--:(component) | |
| | | | | +--ro component-links | |
| | | | | +--ro component-link* [sequence] | |
| | | | | +--ro sequence uint32 | |
| | | | | +--ro component-link-ref? leafref | |
| | | | +--ro te-node-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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +--ro link* [source-te-node-id source-te-link-id dest-te- | |
| | | node-id dest-te-link-id] | |
| | | +--ro source-te-node-id leafref | |
| | | +--ro source-te-link-id leafref | |
| | | +--ro dest-te-node-id leafref | |
| | | +--ro dest-te-link-id leafref | |
| | | +--ro te-link-template? leafref {template}? | |
| | | +--ro te-link-attributes | |
| | | | +--ro schedules* [schedule-id] {configuration- | |
| | | schedule}? | |
| | | | | +--ro schedule-id uint32 | |
| | | | | +--ro start? yang:date-and-time | |
| | | | | +--ro schedule-duration? string | |
| | | | | +--ro repeat-interval? string | |
| | | | +--ro name? string | |
| | | | +--ro flag* flag-type | |
| | | | +--ro is-abstract? boolean | |
| | | | +--ro underlay! {te-topology-hierarchy}? | |
| | | | | +--ro underlay-primary-path | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-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 topology-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 provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro underlay-trail-des | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro dynamic? boolean | |
| | | | | +--ro committed? boolean | |
| | | | +--ro admin-status? enumeration | |
| | | | +--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 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? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro link-protection-type? enumeration | |
| | | | +--ro interface-switching-capabilities* [switching- | |
| | | capability] | |
| | | | | +--ro switching-capability | |
| | | identityref | |
| | | | | +--ro encoding? | |
| | | identityref | |
| | | | | +--ro max-lsp-bandwidth* [priority] | |
| | | | | | +--ro priority uint8 | |
| | | | | | +--ro bandwidth? decimal64 | |
| | | | | +--ro packet-switch-capable | |
| | | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | | +--ro interface-mtu? uint16 | |
| | | | | +--ro time-division-multiplex-capable | |
| | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | +--ro indication? enumeration | |
| | | | +--ro te-srlgs | |
| | | | +--ro values* te-types:srlg | |
| | | +--ro te-link-state | |
| | | +--ro oper-status? enumeration | |
| | | +--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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +--ro alt-information-sources* [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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +--ro link-index? uint64 | |
| | | +--ro administrative-group? te- | |
| | | types:admin-groups | |
| | | +--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? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | +--ro link-protection-type? | |
| | | enumeration | |
| | | +--ro interface-switching-capabilities* | |
| | | [switching-capability] | |
| | | | +--ro switching-capability | |
| | | identityref | |
| | | | +--ro encoding? | |
| | | identityref | |
| | | | +--ro max-lsp-bandwidth* [priority] | |
| | | | | +--ro priority uint8 | |
| | | | | +--ro bandwidth? decimal64 | |
| | | | +--ro packet-switch-capable | |
| | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | +--ro interface-mtu? uint16 | |
| | | | +--ro time-division-multiplex-capable | |
| | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | +--ro indication? enumeration | |
| | | +--ro te-srlgs | |
| | | +--ro values* te-types:srlg | |
| | | notifications: | |
| | | +---n te-node-event | |
| | | | +--ro event-type? te-topology-event-type | |
| | | | +--ro provider-id-ref? leafref | |
| | | | +--ro client-id-ref? leafref | |
| | | | +--ro topology-id-ref? leafref | |
| | | | +--ro node-ref? leafref | |
| | | | +--ro te-topology! | |
| | | | +--ro te-node-attributes | |
| | | | | +--ro schedules* [schedule-id] {configuration-schedule}? | |
| | | | | | +--ro schedule-id uint32 | |
| | | | | | +--ro start? yang:date-and-time | |
| | | | | | +--ro schedule-duration? string | |
| | | | | | +--ro repeat-interval? string | |
| | | | | +--ro name? inet:domain-name | |
| | | | | +--ro signaling-address* inet:ip-address | |
| | | | | +--ro flag* flag-type | |
| | | | | +--ro is-abstract? boolean | |
| | | | | +--ro underlay-topology {te-topology-hierarchy}? | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | +--ro connectivity-matrix* [id] | |
| | | | | +--ro id uint32 | |
| | | | | +--ro from-link | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro to-link | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro is-allowed? boolean | |
| | | | +--ro te-link* [te-link-id] | |
| | | | | +--ro te-link-id te-link-id | |
| | | | | +--ro (stack-level)? | |
| | | | | +--:(bundle) | |
| | | | | | +--ro bundled-links | |
| | | | | | +--ro bundled-link* [sequence] | |
| | | | | | +--ro sequence uint32 | |
| | | | | | +--ro te-link-ref? leafref | |
| | | | | +--:(component) | |
| | | | | +--ro component-links | |
| | | | | +--ro component-link* [sequence] | |
| | | | | +--ro sequence uint32 | |
| | | | | +--ro component-link-ref? leafref | |
| | | | +--ro te-node-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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +---n te-link-event | |
| | | +--ro event-type? te-topology-event-type | |
| | | +--ro provider-id-ref? leafref | |
| | | +--ro client-id-ref? leafref | |
| | | +--ro topology-id-ref? leafref | |
| | | +--ro source-te-node-id-ref? leafref | |
| | | +--ro source-te-link-id-ref? leafref | |
| | | +--ro dest-te-node-id-ref? leafref | |
| | | +--ro dest-te-link-id-ref? leafref | |
| | | +--ro te-topology! | |
| | | +--ro te-link-attributes | |
| | | | +--ro schedules* [schedule-id] {configuration-schedule}? | |
| | | | | +--ro schedule-id uint32 | |
| | | | | +--ro start? yang:date-and-time | |
| | | | | +--ro schedule-duration? string | |
| | | | | +--ro repeat-interval? string | |
| | | | +--ro name? string | |
| | | | +--ro flag* flag-type | |
| | | | +--ro is-abstract? boolean | |
| | | | +--ro underlay! {te-topology-hierarchy}? | |
| | | | | +--ro underlay-primary-path | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-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 topology-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 provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro underlay-trail-des | |
| | | | | | +--ro provider-id-ref? leafref | |
| | | | | | +--ro client-id-ref? leafref | |
| | | | | | +--ro topology-id-ref? leafref | |
| | | | | | +--ro node-ref? leafref | |
| | | | | | +--ro link-end-ref? leafref | |
| | | | | +--ro dynamic? boolean | |
| | | | | +--ro committed? boolean | |
| | | | +--ro admin-status? enumeration | |
| | | | +--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 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? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | | +--ro unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro link-protection-type? enumeration | |
| | | | +--ro interface-switching-capabilities* [switching- | |
| | | capability] | |
| | | | | +--ro switching-capability identityref | |
| | | | | +--ro encoding? identityref | |
| | | | | +--ro max-lsp-bandwidth* [priority] | |
| | | | | | +--ro priority uint8 | |
| | | | | | +--ro bandwidth? decimal64 | |
| | | | | +--ro packet-switch-capable | |
| | | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | | +--ro interface-mtu? uint16 | |
| | | | | +--ro time-division-multiplex-capable | |
| | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | +--ro indication? enumeration | |
| | | | +--ro te-srlgs | |
| | | | +--ro values* te-types:srlg | |
| | | +--ro te-link-state | |
| | | +--ro oper-status? enumeration | |
| | | +--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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +--ro alt-information-sources* [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 topology-id-ref? leafref | |
| | | | +--ro routing-instance? string | |
| | | +--ro link-index? uint64 | |
| | | +--ro administrative-group? te- | |
| | | types:admin-groups | |
| | | +--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? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-min-delay? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-max-delay? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-delay-variation? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-packet-loss? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-residual-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-available-bandwidth? | |
| | | performance-metric-normality | |
| | | | +--ro unidirectional-utilized-bandwidth? | |
| | | performance-metric-normality | |
| | | +--ro link-protection-type? enumeration | |
| | | +--ro interface-switching-capabilities* [switching- | |
| | | capability] | |
| | | | +--ro switching-capability identityref | |
| | | | +--ro encoding? identityref | |
| | | | +--ro max-lsp-bandwidth* [priority] | |
| | | | | +--ro priority uint8 | |
| | | | | +--ro bandwidth? decimal64 | |
| | | | +--ro packet-switch-capable | |
| | | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | | +--ro interface-mtu? uint16 | |
| | | | +--ro time-division-multiplex-capable | |
| | | | +--ro minimum-lsp-bandwidth? decimal64 | |
| | | | +--ro indication? enumeration | |
| | | +--ro te-srlgs | |
| | | +--ro values* te-types:srlg | |
| | | | |
| | | 6. TE Topology Yang Module | |
| | | | |
| | | <CODE BEGINS> | |
| | | | |
| | | module ietf-te-topology { | |
| | | yang-version 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"; | |
| } | | } | |
|
| description "TE Event type for notifications"; | | | |
| } // te-topology-event-type | | | |
| | | | |
|
| /* | | import ietf-inet-types { | |
| * Identities | | prefix "inet"; | |
| */ | | } | |
| | | | |
|
| identity flag-identity { | | import ietf-interfaces { | |
| description "Base type for flags"; | | prefix "if"; | |
| } | | } | |
| | | import ietf-te-types { | |
| | | prefix "te-types"; | |
| | | } | |
| | | | |
|
| identity undefined-flag { | | organization "TBD"; | |
| base "flag-identity"; | | contact "TBD"; | |
| description "Undefined flag"; | | description "TE topology model"; | |
| } | | | |
| | | | |
|
| typedef flag-type { | | revision "2015-07-02" { | |
| type identityref { | | description "Initial revision"; | |
| base "flag-identity"; | | reference "TBD"; | |
| } | | } | |
|
| description "Type for flags"; | | | |
| } | | | |
| | | | |
|
| /* | | /* | |
| * Groupings | | * Features | |
| */ | | */ | |
| | | | |
|
| grouping topo-ref { | | feature te-topology-hierarchy { | |
| description | | | |
| "Grouping for an absolute reference to a topology instance."; | | | |
| leaf topo-ref { | | | |
| type leafref { | | | |
| path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | | | |
| } | | | |
| description | | description | |
|
| "An absolute reference to a topology instance."; | | "This feature indicates that the system allows underlay | |
| | | and/or overlay TE topology hierarchy."; | |
| } | | } | |
|
| } | | | |
| | | | |
| grouping link-ref { | | | |
| description | | | |
| "Grouping for an absolute reference to a link instance."; | | | |
| uses topo-ref; | | | |
| leaf source-te-node-id-ref { | | | |
| type leafref { | | | |
| path "/tet:te-topologies/tet:topology" | | | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | | |
| +"/tet:link/tet:source-te-node-id"; | | | |
| | | | |
|
| } | | feature te-performance-metric { | |
| description | | description | |
|
| "An absolute reference to a link instance."; | | "This feature indicates that the system supports | |
| | | TE performance metric defined in | |
| | | draft-ietf-ospf-te-metric-extensions."; | |
| } | | } | |
|
| leaf source-te-link-id-ref { | | | |
| type leafref { | | feature configuration-schedule { | |
| path "/tet:te-topologies/tet:topology" | | | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | | |
| +"/tet:link/tet:source-te-link-id"; | | | |
| } | | | |
| description | | description | |
|
| "An absolute reference to a link instance."; | | "This feature indicates that the system supports | |
| | | configuration scheduling."; | |
| } | | } | |
|
| leaf dest-te-node-id-ref { | | | |
| type leafref { | | feature template { | |
| path "/tet:te-topologies/tet:topology" | | | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | | |
| +"/tet:link/tet:dest-te-node-id"; | | | |
| } | | | |
| description | | description | |
|
| "An absolute reference to a link instance."; | | "This feature indicates that the system supports | |
| | | template configuration."; | |
| } | | } | |
|
| leaf dest-te-link-id-ref { | | | |
| type leafref { | | /* | |
| path "/tet:te-topologies/tet:topology" | | * Typedefs | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | */ | |
| +"/tet:link/tet:dest-te-link-id"; | | | |
| } | | typedef te-global-id { | |
| | | type uint32; | |
| description | | description | |
|
| "An absolute reference to a link instance."; | | "An identifier to uniquely identify an operator, which can be | |
| | | either a provider or a client. | |
| | | The definition of this type is taken from RFC6370 and RFC503. | |
| | | This attribute type is used solely to provide a globally | |
| | | unique context for TE topologies."; | |
| } | | } | |
|
| } | | | |
| | | | |
|
| grouping node-ref { | | typedef te-topology-id { | |
| description | | type string { | |
| "Grouping for an absolute reference to a node instance."; | | pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; | |
| uses topo-ref; | | | |
| leaf node-ref { | | | |
| type leafref { | | | |
| path "/tet:te-topologies/tet:topology" | | | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | | |
| +"/tet:node/tet:te-node-id"; | | | |
| } | | } | |
| description | | description | |
|
| "An absolute reference to a node instance."; | | "An identifier for a topology."; | |
| } | | } | |
|
| } | | | |
| grouping link-end-ref { | | typedef te-template-name { | |
| description | | type string { | |
| "Grouping for an absolute reference to a TE link end, which is | | pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; | |
| the local representation of a TE link on a node."; | | | |
| uses node-ref; | | | |
| leaf link-end-ref { | | | |
| type leafref { | | | |
| path "/tet:te-topologies/tet:topology" | | | |
| +"[tet:te-topology-id = current()/../topo-ref]" | | | |
| +"/tet:node[tet:te-node-id = current()/../node-ref]" | | | |
| +"/tet:te-node-attributes/tet:te-link/tet:te-link-id"; | | | |
| } | | } | |
| description | | description | |
|
| "Grouping for an absolute reference to a TE link end."; | | "A type for the name of a TE node template or TE link | |
| | | template."; | |
| } | | } | |
|
| } | | | |
| | | | |
|
| grouping te-topology-type { | | typedef te-node-id { | |
| description | | type inet:ip-address; | |
| "Identifies the TE topology type."; | | | |
| container te-topology { | | | |
| presence "indicates TE topology"; | | | |
| description | | description | |
|
| "Its presence identifies the TE topology type."; | | "An identifier for a node in a topology. | |
| | | The identifier is represented as an IPv4 or IPv6 address. | |
| | | The identifier SHOULD be chosen such that the same node in a | |
| | | real network topology will always be identified through the | |
| | | same identifier, even if the model is instantiated in | |
| | | separate | |
| | | datastores. An implementation MAY choose to capture semantics | |
| | | in the identifier, for example to indicate the type of node | |
| | | and/or the type of topology that the node is a part of."; | |
| } | | } | |
|
| } | | | |
| | | | |
|
| grouping te-path-element { | | typedef te-link-id { | |
| description | | type union { | |
| "A group of attributes defining an element in a TE path | | type uint32; // Unnumbered | |
| such as TE node, TE link, TE aotomic resource or label."; | | type inet:ip-address; // IPv4 or IPv6 address | |
| leaf loose { | | } | |
| type boolean; | | description | |
| description "true if the element is loose."; | | "An identifier for a TE link on a node. | |
| | | The identifier may be opaque. | |
| | | The identifier SHOULD be chosen such that the same TP in a | |
| | | real network topology will always be identified through the | |
| | | same identifier, even if the model is instantiated in | |
| | | separate | |
| | | datastores. An implementation MAY choose to capture semantics | |
| | | in the identifier, for example to indicate the type of TP | |
| | | and/or the type of node and topology that the TP is a part | |
| | | of."; | |
| } | | } | |
|
| choice element-type { | | | |
| description "Attributes for various element types."; | | typedef te-topology-event-type { | |
| case numbered-link { | | type enumeration { | |
| leaf link-ip-address { | | enum "add" { | |
| type inet:ip-address; | | value 0; | |
| description "IPv4 or IPv6 address."; | | description | |
| | | "A TE node or te-link has | |
| | | been added"; | |
| } | | } | |
|
| } | | enum "remove" { | |
| case unnumbered-link { | | value 1; | |
| leaf link-node-id { | | | |
| type uint32; | | | |
| description | | description | |
|
| "Node ID of the node where the link end point resides."; | | "A TE node or te-link has | |
| | | been removed"; | |
| } | | } | |
|
| leaf te-link-id { | | enum "update" { | |
| type uint32; | | value 2; | |
| description "Identifies the link end point."; | | description | |
| | | "A TE node or te-link has | |
| | | been updated"; | |
| } | | } | |
| } | | } | |
|
| case node { | | description "TE Event type for notifications"; | |
| leaf te-node-id { | | } // te-topology-event-type | |
| type uint32; | | | |
| description "Identifies the node."; | | typedef performance-metric-normality { | |
| | | type enumeration { | |
| | | enum "unknown" { | |
| | | value 0; | |
| | | description | |
| | | "Unknown"; | |
| } | | } | |
|
| } | | enum "normal" { | |
| case label { | | value 1; | |
| leaf label { | | description | |
| type uint32; | | "Normal"; | |
| description "Identifies atomic TE resource or label."; | | } | |
| | | enum "abnormal" { | |
| | | value 2; | |
| | | description | |
| | | "Abnormal. The anomalous bit is set."; | |
| } | | } | |
| } | | } | |
|
| | | description | |
| | | "Indicates whether a performance metric is normal, abnormal, | |
| | | or unknown."; | |
| } | | } | |
|
| } // te-path-element | | | |
| | | | |
|
| grouping config-schedule-attributes { | | /* | |
| description | | * Identities | |
| "A list of schedules defining when a particular | | */ | |
| configuration takes effect."; | | | |
| list schedules { | | | |
| key "schedule-id"; | | | |
| description "A list of schedule elements."; | | | |
| | | | |
|
| leaf schedule-id { | | identity flag-identity { | |
| type uint32; | | description "Base type for flags"; | |
| description "Identifies the schedule element."; | | } | |
| | | | |
| | | identity undefined-flag { | |
| | | base "flag-identity"; | |
| | | description "Undefined flag"; | |
| | | } | |
| | | | |
| | | typedef flag-type { | |
| | | type identityref { | |
| | | base "flag-identity"; | |
| } | | } | |
|
| leaf start { | | description "Type for flags"; | |
| type yang:date-and-time; | | } | |
| description "Start time."; | | | |
| | | /* | |
| | | * Groupings | |
| | | */ | |
| | | | |
| | | grouping topo-ref { | |
| | | description | |
| | | "Grouping for an absolute reference to a topology instance."; | |
| | | leaf provider-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:provider-id"; | |
| | | } | |
| | | description | |
| | | "An absolute reference to a provider-id."; | |
| } | | } | |
|
| leaf schedule-duration { | | leaf client-id-ref { | |
| type string { | | type leafref { | |
| pattern | | path "/tet:te-topologies/tet:topology/tet:client-id"; | |
| 'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?'; | | | |
| } | | } | |
|
| description "Schedule duration in ISO 8601 format."; | | description | |
| | | "An absolute reference to a client-id."; | |
| } | | } | |
|
| leaf repeat-interval { | | leaf topology-id-ref { | |
| type string { | | type leafref { | |
| pattern | | path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | |
| 'R\d*/P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?' | | | |
| + '(\d+S)?'; | | | |
| } | | } | |
|
| description "Repeat interval in ISO 8601 format."; | | description | |
| } | | "An absolute reference to a te-topology-id."; | |
| } | | } | |
| } | | } // topo-ref | |
| | | | |
|
| grouping information-source-attributes { | | grouping link-ref { | |
| description | | description | |
| "The attributes identifying source that has provided the | | "Grouping for an absolute reference to a link instance."; | |
| related information, and the source credibility."; | | uses topo-ref; | |
| leaf information-source { | | leaf source-te-node-id-ref { | |
| type enumeration { | | type leafref { | |
| enum "unknown" { | | path "/tet:te-topologies/tet:topology" | |
| description "The source is unknown"; | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:link/tet:source-te-node-id"; | |
| } | | } | |
|
| enum "locally-configured" { | | description | |
| description "Configured TE link"; | | "An absolute reference to a link instance."; | |
| | | } | |
| | | leaf source-te-link-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:link/tet:source-te-link-id"; | |
| } | | } | |
|
| enum "ospfv2" { | | description | |
| description "OSPFv2"; | | "An absolute reference to a link instance."; | |
| | | } | |
| | | leaf dest-te-node-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:link/tet:dest-te-node-id"; | |
| } | | } | |
|
| enum "ospfv3" { | | description | |
| description "OSPFv3"; | | "An absolute reference to a link instance."; | |
| | | } | |
| | | leaf dest-te-link-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:link/tet:dest-te-link-id"; | |
| } | | } | |
|
| enum "isis" { | | description | |
| description "ISIS"; | | "An absolute reference to a link instance."; | |
| | | } | |
| | | } // link-ref | |
| | | | |
| | | grouping node-ref { | |
| | | description | |
| | | "Grouping for an absolute reference to a node instance."; | |
| | | uses topo-ref; | |
| | | leaf node-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:node/tet:te-node-id"; | |
| } | | } | |
|
| enum "other" { | | description | |
| description "Other source"; | | "An absolute reference to a node instance."; | |
| | | } | |
| | | } // node-ref | |
| | | | |
| | | grouping link-end-ref { | |
| | | description | |
| | | "Grouping for an absolute reference to a TE link end, which is | |
| | | the local representation of a TE link on a node."; | |
| | | uses node-ref; | |
| | | leaf link-end-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"[tet:provider-id = current()/../provider-id-ref]" | |
| | | +"[tet:client-id = current()/../client-id-ref]" | |
| | | +"[tet:te-topology-id = current()/../topology-id-ref]" | |
| | | +"/tet:node[tet:te-node-id = current()/../node-ref]" | |
| | | +"/tet:te-link/tet:te-link-id"; | |
| } | | } | |
|
| | | description | |
| | | "Grouping for an absolute reference to a TE link end."; | |
| } | | } | |
|
| | | } // link-end-ref | |
| | | | |
| | | grouping te-topology-type { | |
| description | | description | |
|
| "Indicates the source of the information."; | | "Identifies the TE topology type."; | |
| } | | container te-topology { | |
| leaf credibility-preference { | | presence "indicates TE topology"; | |
| type uint16; | | description | |
| | | "Its presence identifies the TE topology type."; | |
| | | } | |
| | | } // te-topology-type | |
| | | | |
| | | grouping te-path-element { | |
| description | | description | |
|
| "The preference value to calculate the traffic | | "A group of attributes defining an element in a TE path | |
| engineering database credibility value used for | | such as TE node, TE link, TE atomic resource or label."; | |
| tie-break selection between different | | uses te-types:explicit-route-subobject; | |
| information-source values. | | } // te-path-element | |
| Higher value is more preferable."; | | | |
| } | | | |
| } | | | |
| | | | |
|
| grouping te-node-attributes { | | grouping config-schedule-attributes { | |
| description "Node attributes in a TE topology."; | | description | |
| container te-node-attributes { | | "A list of schedules defining when a particular | |
| description "Node attributes in a TE topology."; | | configuration takes effect."; | |
| uses config-schedule-attributes; | | list schedules { | |
| leaf name { | | if-feature configuration-schedule; | |
| type inet:domain-name; | | key "schedule-id"; | |
| description "Node name."; | | description "A list of schedule elements."; | |
| } | | | |
| leaf-list signaling-address { | | leaf schedule-id { | |
| type inet:ip-address; | | type uint32; | |
| description "Node signaling address."; | | description "Identifies the schedule element."; | |
| | | } | |
| | | leaf start { | |
| | | type yang:date-and-time; | |
| | | description "Start time."; | |
| | | | |
| | | } | |
| | | leaf schedule-duration { | |
| | | type string { | |
| | | pattern | |
| | | 'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?'; | |
| | | } | |
| | | description "Schedule duration in ISO 8601 format."; | |
| | | } | |
| | | leaf repeat-interval { | |
| | | type string { | |
| | | pattern | |
| | | 'R\d*/P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?' | |
| | | + '(\d+S)?'; | |
| | | } | |
| | | description "Repeat interval in ISO 8601 format."; | |
| | | } | |
| } | | } | |
|
| leaf-list flag { | | } // config-schedule-attributes | |
| type flag-type; | | | |
| description "Node operational flags."; | | grouping information-source-attributes { | |
| | | 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"; | |
| | | } | |
| | | enum "system-processed" { | |
| | | description "System processed entity."; | |
| | | } | |
| | | enum "other" { | |
| | | description "Other source"; | |
| | | } | |
| | | | |
| | | } | |
| | | description | |
| | | "Indicates the source of the information."; | |
| } | | } | |
|
| leaf is-abstract { | | container information-source-state { | |
| type boolean; | | | |
| description | | description | |
|
| "true if the node is abstract, false when the node is | | "The container contains state attributes related to | |
| actual."; | | the information source."; | |
| | | 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."; | |
| | | } | |
| | | 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."; | |
| | | leaf provider-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:provider-id"; | |
| | | } | |
| | | description | |
| | | "A reference to a provider-id."; | |
| | | } | |
| | | leaf client-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:client-id"; | |
| | | } | |
| | | description | |
| | | "A reference to a client-id."; | |
| | | } | |
| | | leaf topology-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"/tet:te-topology-id"; | |
| | | } | |
| | | description | |
| | | "A reference to a te-topology-id."; | |
| | | } | |
| | | } // topology | |
| | | leaf routing-instance { | |
| | | type string; | |
| | | description | |
| | | "When applicable, this is the name of a routing instance | |
| | | from which the information is learned."; | |
| | | } // routing-information | |
| } | | } | |
|
| leaf underlay-topology { | | } // information-source-attributes | |
| if-feature te-topology-hierarchy; | | | |
| type leafref { | | grouping te-node-attributes { | |
| path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | | description "Node attributes in a TE topology."; | |
| | | container te-node-attributes { | |
| | | description "Node attributes in a TE topology."; | |
| | | uses config-schedule-attributes; | |
| | | leaf name { | |
| | | type inet:domain-name; | |
| | | description "Node name."; | |
| | | } | |
| | | leaf-list signaling-address { | |
| | | type inet:ip-address; | |
| | | description "Node signaling address."; | |
| | | } | |
| | | leaf-list flag { | |
| | | type flag-type; | |
| | | description "Node operational flags."; | |
| | | } | |
| | | leaf is-abstract { | |
| | | type boolean; | |
| | | description | |
| | | "true if the node is abstract, false when the node is | |
| | | actual."; | |
| | | } | |
| | | container underlay-topology { | |
| | | if-feature te-topology-hierarchy; | |
| | | description | |
| | | "When an abstract node encapsulates a topology, | |
| | | the attributes in this container point to said topology."; | |
| | | leaf provider-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:provider-id"; | |
| | | } | |
| | | description | |
| | | "A reference to a provider-id."; | |
| | | } | |
| | | leaf client-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:client-id"; | |
| | | | |
| | | } | |
| | | description | |
| | | "A reference to a client-id."; | |
| | | } | |
| | | leaf topology-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology" | |
| | | +"/tet:te-topology-id"; | |
| | | } | |
| | | description | |
| | | "A reference to a te-topology-id."; | |
| | | } | |
| | | } | |
| | | | |
| | | list connectivity-matrix { | |
| | | key "id"; | |
| | | description | |
| | | "Represents node's switching limitations, i.e. limitations | |
| | | in interconnecting network TE links across the node."; | |
| | | leaf id { | |
| | | type uint32; | |
| | | description "Identifies the connectivity-matrix entry."; | |
| | | } | |
| | | container from-link { | |
| | | uses tet:link-end-ref; | |
| | | description | |
| | | "Reference to source NTP."; | |
| | | } | |
| | | container to-link { | |
| | | uses tet:link-end-ref; | |
| | | description | |
| | | "Reference to destination NTP."; | |
| | | } | |
| | | leaf is-allowed { | |
| | | type boolean; | |
| | | description | |
| | | "true - switching is allowed, | |
| | | false - switching is disallowed."; | |
| | | } | |
| } | | } | |
|
| description | | | |
| "When an abstract node encapsulates a topology, | | | |
| this reference points to said topology."; | | | |
| } | | } | |
| list te-link { | | list te-link { | |
| key "te-link-id"; | | key "te-link-id"; | |
| description | | description | |
| "The local representation of a TE link, which | | "The local representation of a TE link, which | |
|
| interconnect TE nodes."; | | interconnect TE nodes."; | |
| | | | |
| leaf te-link-id { | | leaf te-link-id { | |
| type te-link-id; | | type te-link-id; | |
| description | | description | |
| "TE link identifier."; | | "TE link identifier."; | |
| } | | } | |
| choice stack-level { | | choice stack-level { | |
| description | | description | |
| "The TE link can be partitioned into bundled | | "The TE link can be partitioned into bundled | |
|
| links, or component links."; | | links, or component links."; | |
| case bundle { | | case bundle { | |
| container bundled-links { | | container bundled-links { | |
| description | | description | |
| "A set of bundled links"; | | "A set of bundled links"; | |
|
| | | | |
| list bundled-link { | | list bundled-link { | |
| key "sequence"; | | key "sequence"; | |
| description | | description | |
|
| "Specify a bundled interfface that is | | "Specify a bundled interface that is | |
| further partitioned."; | | further partitioned."; | |
| leaf sequence { | | leaf sequence { | |
| type uint32; | | type uint32; | |
| description | | description | |
| "Identify the sequence in the bundle."; | | "Identify the sequence in the bundle."; | |
| } | | } | |
| leaf te-link-ref { | | leaf te-link-ref { | |
| type leafref { | | type leafref { | |
| path "../../../te-link-id"; | | path "../../../te-link-id"; | |
|
| require-instance "true"; | | require-instance true; | |
| } | | } | |
| description | | description | |
| "Reference to TE link on this node."; | | "Reference to TE link on this node."; | |
| } | | } | |
| } | | } | |
| } | | } | |
| } | | } | |
| case component { | | case component { | |
| container component-links { | | container component-links { | |
| description | | description | |
| "A set of component links"; | | "A set of component links"; | |
| list component-link { | | list component-link { | |
| key "sequence"; | | key "sequence"; | |
| description | | description | |
|
| "Specify a component interfface that is | | "Specify a component interface that is | |
| sufficient to unambiguously identify the | | sufficient to unambiguously identify the | |
| appropriate resources"; | | appropriate resources"; | |
| | | | |
| leaf sequence { | | leaf sequence { | |
| type uint32; | | type uint32; | |
| description | | description | |
| "Identify the sequence in the bundle."; | | "Identify the sequence in the bundle."; | |
| } | | } | |
| leaf component-link-ref { | | leaf component-link-ref { | |
| type leafref { | | type leafref { | |
| path "/if:interfaces/if:interface/if:name"; | | path "/if:interfaces/if:interface/if:name"; | |
|
| require-instance "false"; | | require-instance false; | |
| } | | } | |
| description | | description | |
| "Reference to component link on this | | "Reference to component link on this | |
|
| node."; | | node."; | |
| } | | } | |
| } | | } | |
| } | | } | |
|
| | | | |
| } | | } | |
| } | | } | |
| } | | } | |
|
| list connectivity-matrix { | | } // te-node-attributes | |
| key "id"; | | | |
| | | grouping te-node-state-attributes { | |
| | | description "Node state attributes in a TE topology."; | |
| | | container te-node-state { | |
| | | description "Node state attributes in a TE topology."; | |
| | | uses information-source-attributes; | |
| | | } | |
| | | } // te-node-state-attributes | |
| | | | |
| | | grouping te-link-underlay-attributes { | |
| | | description "Attributes for te-link underlay."; | |
| | | container underlay-primary-path { | |
| description | | description | |
|
| "Represents node's switching limitations, i.e. limitations | | "The service path on the underlay topology that | |
| in interconnecting network TE links across the node."; | | supports this link."; | |
| leaf id { | | leaf provider-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:provider-id"; | |
| | | require-instance false; | |
| | | } | |
| | | description | |
| | | "A reference to a provider-id."; | |
| | | } | |
| | | leaf client-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:client-id"; | |
| | | require-instance false; | |
| | | | |
| | | } | |
| | | description | |
| | | "A reference to a client-id."; | |
| | | } | |
| | | leaf topology-id-ref { | |
| | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | |
| | | require-instance false; | |
| | | } | |
| | | description | |
| | | "Identifies the topology where the path belongs."; | |
| | | } | |
| | | list path-element { | |
| | | key "path-element-id"; | |
| | | description | |
| | | "A list of path elements describing the service path"; | |
| | | leaf path-element-id { | |
| | | type uint32; | |
| | | description "To identify the element in a path."; | |
| | | } | |
| | | uses te-path-element; | |
| | | } | |
| | | } // underlay-primary-path | |
| | | list underlay-backup-path { | |
| | | key "index"; | |
| | | description | |
| | | "A list of backup service paths on the underlay topology | |
| | | that | |
| | | protect the underlay primary path. If the primary path is | |
| | | not protected, the list contains zero elements. If the | |
| | | primary path is protected, the list contains one or more | |
| | | elements."; | |
| | | leaf index { | |
| type uint32; | | type uint32; | |
|
| description "Identifies the connectivity-matrix entry."; | | description | |
| | | "A sequence number to identify a backup path."; | |
| } | | } | |
|
| container from-link { | | leaf provider-id-ref { | |
| uses tet:link-end-ref; | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:provider-id"; | |
| | | require-instance false; | |
| | | } | |
| description | | description | |
|
| "Reference to source NTP."; | | "A reference to a provider-id."; | |
| } | | } | |
|
| container to-link { | | leaf client-id-ref { | |
| uses tet:link-end-ref; | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:client-id"; | |
| | | require-instance false; | |
| | | } | |
| description | | description | |
|
| "Reference to destination NTP."; | | "A reference to a client-id."; | |
| } | | } | |
|
| leaf is-allowed { | | leaf topology-id-ref { | |
| type boolean; | | type leafref { | |
| | | path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | |
| | | require-instance false; | |
| | | } | |
| description | | description | |
|
| "true - switching is allowed, | | "Identifies the topology where the path belongs."; | |
| false - switching is disallowed."; | | } | |
| | | list path-element { | |
| | | key "path-element-id"; | |
| | | description | |
| | | "A list of path elements describing the backup service | |
| | | path"; | |
| | | leaf path-element-id { | |
| | | type uint32; | |
| | | description "To identify the element in a path."; | |
| | | } | |
| | | uses te-path-element; | |
| } | | } | |
|
| | | } // underlay-backup-path | |
| | | leaf underlay-protection-type { | |
| | | type uint16; | |
| | | description | |
| | | "Underlay protection type desired for this link"; | |
| } | | } | |
|
| container ted { | | container underlay-trail-src { | |
| description "Includes TE node attributes."; | | uses tet:link-end-ref; | |
| uses ted:ted-node-attributes; | | description | |
| | | "Source TE link of the underlay trail."; | |
| } | | } | |
|
| } | | container underlay-trail-des { | |
| } // te-node-attributes | | uses tet:link-end-ref; | |
| | | description | |
| | | "Destination TE link of the underlay trail."; | |
| | | } | |
| | | } // te-link-underlay-attributes | |
| | | | |
|
| grouping te-node-state-attributes { | | grouping te-link-state-underlay-attributes { | |
| description "Node state attributes in a TE topology."; | | description "State attributes for te-link underlay."; | |
| container te-node-state-attributes { | | leaf dynamic { | |
| description "Node state attributes in a TE topology."; | | type boolean; | |
| uses information-source-attributes; | | description | |
| } | | "true if the underlay is dynamically created."; | |
| } // te-node-state-attributes | | } | |
| | | leaf committed { | |
| | | type boolean; | |
| | | description | |
| | | "true if the underlay is committed."; | |
| | | } | |
| | | } // te-link-state-underlay-attributes | |
| | | | |
|
| grouping te-link-underlay-attributes { | | grouping performance-metric-attributes { | |
| description "Attributes for te-link underlay."; | | | |
| container underlay-path { | | | |
| description | | description | |
|
| "The service path on the underlay topology that | | "Link performance information in real time."; | |
| supports this link."; | | reference | |
| leaf topology-id { | | "draft-ietf-ospf-te-metric-extensions."; | |
| type leafref { | | leaf unidirectional-delay { | |
| path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | | type uint32 { | |
| require-instance false; | | range 0..16777215; | |
| } | | } | |
|
| description | | description "Delay or latency in micro seconds."; | |
| "Identifies the topology where the path belongs."; | | | |
| } | | } | |
|
| list path-element { | | leaf unidirectional-min-delay { | |
| key "path-element-id"; | | type uint32 { | |
| description | | range 0..16777215; | |
| "A list of path elements describing the service path"; | | | |
| leaf path-element-id { | | | |
| type uint32; | | | |
| description "To identify the element in a path."; | | | |
| } | | } | |
|
| uses te-path-element; | | description "Minimum delay or latency in micro seconds."; | |
| } | | } | |
|
| } // underlay-path | | leaf unidirectional-max-delay { | |
| container underlay-backup-path { | | type uint32 { | |
| description | | range 0..16777215; | |
| "The backup service path on the underlay topology that | | } | |
| supports this link."; | | description "Maximum delay or latency in micro seconds."; | |
| leaf topology-id { | | } | |
| type leafref { | | leaf unidirectional-delay-variation { | |
| path "/tet:te-topologies/tet:topology/tet:te-topology-id"; | | type uint32 { | |
| require-instance false; | | range 0..16777215; | |
| | | } | |
| | | description "Delay variation in micro seconds."; | |
| | | } | |
| | | leaf unidirectional-packet-loss { | |
| | | type decimal64 { | |
| | | fraction-digits 6; | |
| | | range "0 .. 50.331642"; | |
| } | | } | |
| description | | description | |
|
| "Identifies the topology where the path belongs."; | | "Packet loss as a percentage of the total traffic sent | |
| | | over a configurable interval. The finest precision is | |
| | | 0.000003%."; | |
| } | | } | |
|
| list path-element { | | leaf unidirectional-residual-bandwidth { | |
| key "path-element-id"; | | type decimal64 { | |
| | | fraction-digits 2; | |
| | | } | |
| description | | description | |
|
| "A list of path elements describing the backup service | | "Residual bandwidth that subtracts tunnel | |
| path"; | | reservations from Maximum Bandwidth (or link capacity) | |
| leaf path-element-id { | | [RFC3630] and provides an aggregated remainder across QoS | |
| type uint32; | | classes."; | |
| description "To identify the element in a path."; | | } | |
| | | leaf unidirectional-available-bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| } | | } | |
|
| uses te-path-element; | | 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."; | |
| } | | } | |
|
| } // underlay-backup-path | | leaf unidirectional-utilized-bandwidth { | |
| leaf underlay-protection-type { | | type decimal64 { | |
| type uint16; | | fraction-digits 2; | |
| description | | } | |
| "Underlay protection type desired for this link"; | | description | |
| } | | "Bandwidth utilization that represents the actual | |
| container underlay-trail-src { | | utilization of the link (i.e. as measured in the router). | |
| uses tet:link-end-ref; | | For a bundled link, bandwidth utilization is defined to | |
| description | | be the sum of the component link bandwidth | |
| "Source TE link of the underlay trail."; | | utilizations."; | |
| } | | } | |
| container underlay-trail-des { | | } // performance-metric-attributes | |
| uses tet:link-end-ref; | | | |
| description | | | |
| "Destination TE link of the underlay trail."; | | | |
| } | | | |
| } // te-link-underlay-attributes | | | |
| | | | |
|
| grouping te-link-state-underlay-attributes { | | grouping performance-metric-normality-attributes { | |
| description "State attributes for te-link underlay."; | | | |
| leaf dynamic { | | | |
| type boolean; | | | |
| description | | | |
| "true if the underlay is dynamically created."; | | | |
| } | | | |
| leaf committed { | | | |
| type boolean; | | | |
| description | | description | |
|
| "true if the underlay is committed."; | | "Link performance metric normality attributes."; | |
| } | | reference | |
| } // te-link-state-underlay-attributes | | "draft-ietf-ospf-te-metric-extensions."; | |
| | | leaf unidirectional-delay { | |
| grouping te-link-attributes { | | type performance-metric-normality; | |
| description | | description "Delay normality."; | |
| "Link attributes in a TE topology."; | | | |
| container te-link-attributes { | | | |
| description "Link attributes in a TE topology."; | | | |
| uses config-schedule-attributes; | | | |
| leaf name { | | | |
| type string; | | | |
| description "Link Name"; | | | |
| } | | } | |
|
| leaf-list flag { | | leaf unidirectional-min-delay { | |
| type flag-type; | | type performance-metric-normality; | |
| description "Link flags"; | | description "Minimum delay or latency normality."; | |
| } | | } | |
|
| leaf is-abstract { | | leaf unidirectional-max-delay { | |
| type boolean; | | type performance-metric-normality; | |
| description "true if the link is abstract."; | | description "Maximum delay or latency normality."; | |
| } | | } | |
|
| container underlay { | | leaf unidirectional-delay-variation { | |
| if-feature te-topology-hierarchy; | | type performance-metric-normality; | |
| presence | | description "Delay variation normality."; | |
| "Indicates the underlay exists for this link."; | | | |
| description "State of the underlay of this link."; | | | |
| | | | |
| uses te-link-underlay-attributes; | | | |
| } // underlay | | | |
| container ted { | | | |
| description "Includes TE link attributes."; | | | |
| uses ted:ted-link-attributes; | | | |
| } | | } | |
|
| } | | leaf unidirectional-packet-loss { | |
| } // te-link-attributes | | type performance-metric-normality; | |
| | | description "Packet loss normality."; | |
| grouping te-link-state-attributes { | | } | |
| description | | leaf unidirectional-residual-bandwidth { | |
| "Link state attributes in a TE topology."; | | type performance-metric-normality; | |
| container te-link-state-attributes { | | description "Residual bandwidth normality."; | |
| description "Link state attributes in a TE topology."; | | } | |
| uses information-source-attributes; | | leaf unidirectional-available-bandwidth { | |
| } | | type performance-metric-normality; | |
| } // te-link-state-attributes | | description "Available bandwidth normality."; | |
| | | } | |
| | | leaf unidirectional-utilized-bandwidth { | |
| | | type performance-metric-normality; | |
| | | description "Bandwidth utilization normality."; | |
| | | } | |
| | | } // performance-metric-normality-attributes | |
| | | | |
|
| /* | | grouping performance-metric-throttle-container { | |
| * Configuration data nodes | | 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"; | |
| | | description | |
| | | "Constraint on suppression-interval and | |
| | | measure-interval."; | |
| | | } | |
| | | description | |
| | | "Link performance information in real time."; | |
| | | reference | |
| | | "draft-ietf-ospf-te-metric-extensions."; | |
| | | leaf unidirectional-delay-offset { | |
| | | type uint32 { | |
| | | range 0..16777215; | |
| | | } | |
| | | description | |
| | | "Offset value to be added to the measured delay value."; | |
| | | } | |
| | | leaf measure-interval { | |
| | | type uint32; | |
| | | default 30; | |
| | | description | |
| | | "Interval in seconds to measure the extended metric | |
| | | values."; | |
| | | } | |
| | | leaf advertisement-interval { | |
| | | type uint32; | |
| | | description | |
| | | "Interval in seconds to advertise the extended metric | |
| | | values."; | |
| | | } | |
| | | leaf suppression-interval { | |
| | | type uint32 { | |
| | | range "1 .. max"; | |
| | | } | |
| | | default 120; | |
| | | description | |
| | | "Interval in seconds to suppress advertising the extended | |
| | | metric values."; | |
| | | } | |
| | | container threshold-out { | |
| | | uses performance-metric-attributes; | |
| | | 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."; | |
| | | } | |
| | | container threshold-in { | |
| | | uses performance-metric-attributes; | |
| | | 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."; | |
| | | } | |
| | | container threshold-accelerated-advertisement { | |
| | | 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; | |
| | | } | |
| | | } | |
| | | } // performance-metric-throttle-container | |
| | | | |
|
| container te-topologies { | | grouping te-link-info-attributes { | |
| description | | | |
| "This container acts as the top-level data element of | | | |
| configuration data."; | | | |
| list topology { | | | |
| key "te-topology-id"; | | | |
| description | | description | |
|
| "This is the model of an abstract topology. A topology | | "Advertised TE information attributes."; | |
| contains nodes and links. Each topology MUST be identified | | leaf link-index { | |
| by a unique te-topology-id for reason that a network could | | type uint64; | |
| contain many topologies."; | | | |
| leaf te-topology-id { | | | |
| type te-topology-id; | | | |
| description | | description | |
|
| "It is presumed that a datastore will contain many | | "The link identifier. If OSPF is used, this represents an | |
| topologies. To distinguish between topologies it is | | ospfLsdbID. If IS-IS is used, this represents an isisLSPID. | |
| vital to have UNIQUE topology identifiers."; | | If a locally configured link is used, this object represents | |
| | | a unique value, which is locally defined in a router."; | |
| } | | } | |
|
| container topology-types { | | leaf administrative-group { | |
| | | type te-types:admin-groups; | |
| description | | description | |
|
| "This container is used to identify the type, or types (as | | "Administrative group or color of the link. | |
| a topology can support several types simultaneously), of | | This attribute covers both administrative group (defined in | |
| the topology. | | RFC3630, RFC5329, and RFC5305), and extended administrative | |
| Topology types are the subject of several integrity | | group (defined in RFC7308)."; | |
| constraints that an implementing server can validate in | | | |
| order to maintain integrity of the datastore. | | | |
| Topology types are indicated through separate data nodes; | | | |
| the set of topology types is expected to increase over | | | |
| time. | | | |
| To add support for a new topology, an augmenting module | | | |
| needs to augment this container with a new empty optional | | | |
| container to indicate the new topology type. | | | |
| The use of a container allows to indicate a | | | |
| subcategorization of topology types. | | | |
| The container SHALL NOT be augmented with any data nodes | | | |
| that serve a purpose other than identifying a particular | | | |
| topology type."; | | | |
| uses te-topology-type; // Defines the TE topology type. | | | |
| } | | } | |
|
| list node { | | leaf max-link-bandwidth { | |
| key "te-node-id"; | | type decimal64 { | |
| leaf te-node-id { | | fraction-digits 2; | |
| type te-node-id; | | | |
| description | | | |
| "The identifier of a node in the topology. | | | |
| A node is specific to a topology to which it belongs."; | | | |
| } | | } | |
| description | | description | |
|
| "The list of network nodes defined for the topology."; | | "Maximum bandwidth that can be seen on this link in this | |
| leaf te-node-template { | | direction. Units in bytes per second"; | |
| type leafref { | | } | |
| path "/te-topologies/node-template/name"; | | leaf max-resv-link-bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| | | } | |
| | | description | |
| | | "Maximum amount of bandwidth that can be reserved in this | |
| | | direction in this link. Units in bytes per second"; | |
| | | } | |
| | | list unreserved-bandwidth { | |
| | | key "priority"; | |
| | | max-elements "8"; | |
| | | description | |
| | | "Unreserved bandwidth for 0-7 priority levels. Units in | |
| | | bytes per second"; | |
| | | leaf priority { | |
| | | type uint8 { | |
| | | range "0..7"; | |
| | | } | |
| | | description "Priority"; | |
| | | } | |
| | | leaf bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| } | | } | |
| description | | description | |
|
| "The reference to a TE node template."; | | "Unreserved bandwidth for this level"; | |
| } | | } | |
|
| uses te-node-attributes; | | | |
| } | | } | |
|
| list link { | | leaf te-default-metric { | |
| key "source-te-node-id source-te-link-id " | | type uint32; | |
| + "dest-te-node-id dest-te-link-id"; | | description | |
| leaf source-te-node-id { | | "Traffic Engineering Metric"; | |
| type leafref { | | } | |
| path "../../node/te-node-id"; | | container performance-metric { | |
| | | if-feature te-performance-metric; | |
| | | description | |
| | | "Link performance information in real time."; | |
| | | reference | |
| | | "draft-ietf-ospf-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; | |
| | | } | |
| | | container normality | |
| | | { | |
| | | description | |
| | | "Performance metric normality values."; | |
| | | uses performance-metric-normality-attributes; | |
| | | | |
| | | } | |
| | | } | |
| | | leaf link-protection-type { | |
| | | type enumeration { | |
| | | enum "unprotected" { | |
| | | description "unprotected"; | |
| | | } | |
| | | enum "extra-traffic" { | |
| | | description "Extra traffic"; | |
| | | } | |
| | | enum "shared" { | |
| | | description "Shared"; | |
| | | } | |
| | | enum "1-for-1" { | |
| | | description "One for one protection"; | |
| | | } | |
| | | enum "1-plus-1" { | |
| | | description "One plus one protection"; | |
| | | } | |
| | | enum "enhanced" { | |
| | | description "Enhanced protection"; | |
| | | } | |
| | | } | |
| | | description | |
| | | "Link Protection Type desired for this link"; | |
| | | } | |
| | | list interface-switching-capabilities { | |
| | | key "switching-capability"; | |
| | | description | |
| | | "List of interface capabilities for this interface"; | |
| | | leaf switching-capability { | |
| | | type identityref { | |
| | | base te-types:switching-capabilities; | |
| } | | } | |
|
| mandatory true; | | | |
| description | | description | |
|
| "Source node identifier, must be in same topology."; | | "Switching Capability for this interface"; | |
| } | | } | |
|
| leaf source-te-link-id { | | leaf encoding { | |
| type leafref { | | type identityref { | |
| path "../../node[te-node-id = " | | base te-types:lsp-encoding-types; | |
| + "current()/../source-te-node-id]/" | | | |
| + "te-node-attributes/te-link/te-link-id"; | | | |
| } | | } | |
|
| mandatory true; | | | |
| description | | description | |
|
| "Source TE link identifier, must be in same topology."; | | "Encoding supported by this interface"; | |
| } | | } | |
|
| leaf dest-te-node-id { | | list max-lsp-bandwidth { | |
| type leafref { | | key "priority"; | |
| path "../../node/te-node-id"; | | max-elements "8"; | |
| | | description | |
| | | "Maximum LSP Bandwidth at priorities 0-7"; | |
| | | leaf priority { | |
| | | type uint8 { | |
| | | range "0..7"; | |
| | | } | |
| | | description "Priority"; | |
| | | } | |
| | | leaf bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| | | } | |
| | | description | |
| | | "Max LSP Bandwidth for this level"; | |
| | | } | |
| | | } | |
| | | container packet-switch-capable { | |
| | | when "../switching-capability = 'PSC-1' or " | |
| | | +"../switching-capability = 'PSC-2' or " | |
| | | +"../switching-capability = 'PSC-3' or " | |
| | | +"../switching-capability = 'PSC-4'" { | |
| | | description "Valid only for PSC"; | |
| } | | } | |
|
| mandatory true; | | | |
| description | | description | |
|
| "Destination node identifier, must be in the same | | "Interface has packet-switching capabilities"; | |
| topology."; | | leaf minimum-lsp-bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| | | } | |
| | | description | |
| | | "Minimum LSP Bandwidth. Units in bytes per second"; | |
| | | } | |
| | | leaf interface-mtu { | |
| | | type uint16; | |
| | | description | |
| | | "Interface MTU"; | |
| | | } | |
| } | | } | |
|
| leaf dest-te-link-id { | | container time-division-multiplex-capable { | |
| type leafref { | | when "../switching-capability = 'TDM'" { | |
| path "../../node[te-node-id = " | | description "Valid only for TDM"; | |
| + "current()/../dest-te-node-id]/" | | | |
| + "te-node-attributes/te-link/te-link-id"; | | | |
| } | | } | |
|
| mandatory true; | | | |
| description | | description | |
|
| "Destination TE link identifier, must be in same | | "Interface has time-division multiplex capabilities"; | |
| topology."; | | | |
| | | leaf minimum-lsp-bandwidth { | |
| | | type decimal64 { | |
| | | fraction-digits 2; | |
| | | } | |
| | | description | |
| | | "Minimum LSP Bandwidth. Units in bytes per second"; | |
| | | } | |
| | | leaf indication { | |
| | | type enumeration { | |
| | | enum "standard" { | |
| | | description "Indicates support of standard SONET/SDH"; | |
| | | } | |
| | | enum "arbitrary" { | |
| | | description "Indicates support of arbitrary | |
| | | SONET/SDH"; | |
| | | } | |
| | | } | |
| | | description | |
| | | "Indication whether the interface supports Standard or | |
| | | Arbitrary SONET/SDH"; | |
| | | } | |
| } | | } | |
|
| | | } | |
| | | container te-srlgs { | |
| description | | description | |
|
| "TE link is a logical construct that represents a way | | "A list of SLRGs."; | |
| to group/map information about certain physical | | leaf-list values { | |
| resources (and their properties) that interconnect TE | | type te-types:srlg; | |
| nodes. | | description "SRLG value"; | |
| A Network Link connects a by Local (Source) node and | | } | |
| a Remote (Destination) Network Nodes via a set of the | | } | |
| nodes' TE links. | | } // te-link-info-attributes | |
| As it is possible to have several links between the | | | |
| same source and destination nodes, and as a link | | grouping te-link-attributes { | |
| could potentially be re-homed, to ensure that we | | description | |
| would always know to distinguish between | | "Link attributes in a TE topology."; | |
| links, every link is identified by a dedicated link | | container te-link-attributes { | |
| identifier. | | description "Link attributes in a TE topology."; | |
| Note that a link models a point-to-point link, not a | | uses config-schedule-attributes; | |
| multipoint link."; | | leaf name { | |
| leaf te-link-template { | | type string; | |
| type leafref { | | description "Link Name"; | |
| path "/te-topologies/link-template/name"; | | } | |
| | | leaf-list flag { | |
| | | type flag-type; | |
| | | description "Link flags"; | |
| | | | |
| | | } | |
| | | leaf is-abstract { | |
| | | type boolean; | |
| | | description "true if the link is abstract."; | |
| | | } | |
| | | container underlay { | |
| | | if-feature te-topology-hierarchy; | |
| | | presence | |
| | | "Indicates the underlay exists for this link."; | |
| | | description "State of the underlay of this link."; | |
| | | | |
|
| | | uses te-link-underlay-attributes; | |
| | | } // underlay | |
| | | leaf admin-status { | |
| | | type enumeration { | |
| | | enum up { | |
| | | value 1; | |
| | | description | |
| | | "Enabled."; | |
| | | } | |
| | | enum down { | |
| | | value 2; | |
| | | description | |
| | | "Disabled."; | |
| | | } | |
| | | enum testing { | |
| | | value 3; | |
| | | description | |
| | | "In some test mode."; | |
| | | } | |
| } | | } | |
| description | | description | |
|
| "The reference to a TE link template."; | | "The desired state of the link."; | |
| } | | } | |
|
| uses te-link-attributes; | | | |
| } // link | | | |
| } // topology | | | |
| | | | |
|
| list node-template { | | uses performance-metric-throttle-container; | |
| key "name"; | | uses te-link-info-attributes; | |
| leaf name { | | | |
| type te-template-name; | | | |
| description | | | |
| "The name to identify a TE node template."; | | | |
| } | | } | |
|
| description | | } // te-link-attributes | |
| "The list of TE node templates used to define sharable | | | |
| and reusable TE node attributes."; | | | |
| uses te-node-attributes; | | | |
| } // node | | | |
| | | | |
|
| list link-template { | | grouping te-link-state-attributes { | |
| key "name"; | | | |
| leaf name { | | | |
| type te-template-name; | | | |
| description | | | |
| "The name to identify a TE link template."; | | | |
| } | | | |
| description | | description | |
|
| "The list of TE link templates used to define sharable | | "Link state attributes in a TE topology."; | |
| and reusable TE link attributes."; | | container te-link-state { | |
| uses te-link-attributes; | | description "Link state attributes in a TE topology."; | |
| } // link | | leaf oper-status { | |
| } // te-topologies | | type enumeration { | |
| | | enum up { | |
| /* | | value 1; | |
| * Operational state data nodes | | description | |
| */ | | "Operational up"; | |
| | | } | |
| | | enum down { | |
| | | value 2; | |
| | | description | |
| | | "Operational down."; | |
| | | } | |
| | | enum testing { | |
| | | value 3; | |
| | | description | |
| | | "In some test mode"; | |
| | | } | |
| | | enum unknown { | |
| | | value 4; | |
| | | description | |
| | | "Status cannot be determined for some reason."; | |
| | | } | |
| | | } | |
| | | description | |
| | | "The current operational state of the link."; | |
| | | } | |
| | | uses information-source-attributes; | |
| | | list alt-information-sources { | |
| | | key "information-source"; | |
| | | description | |
| | | "A list of information sources learned but not used."; | |
| | | uses information-source-attributes; | |
| | | uses te-link-info-attributes; | |
| | | } | |
| | | } | |
| | | } // te-link-state-attributes | |
| | | | |
|
| container te-topologies-state { | | grouping template-attributes { | |
| config "false"; | | | |
| description | | | |
| "This container acts as the top-level state data element of | | | |
| operational data."; | | | |
| list topology { | | | |
| key "te-topology-id"; | | | |
| description | | description | |
|
| "This is the model of an abstract topology. A topology | | "Common attributes for all templates."; | |
| contains nodes and links. Each topology MUST be identified | | | |
| by a unique te-topology-id for reason that a network could | | leaf priority { | |
| contain many topologies."; | | type uint16; | |
| leaf te-topology-id { | | | |
| type te-topology-id; | | | |
| description | | description | |
|
| "It is presumed that a datastore will contain many | | "The preference value to resolve conflicts between different | |
| topologies. To distinguish between topologies it is | | templates. When two or more templates specify values for | |
| vital to have UNIQUE topology identifiers."; | | one configuration attribute, the value from the template | |
| | | with the highest priority is used."; | |
| } | | } | |
|
| leaf server-provided { | | leaf reference-change-policy { | |
| type boolean; | | type enumeration { | |
| config false; | | enum no-action { | |
| | | description | |
| | | "When an attribute changes in this template, the | |
| | | configuration node referring to this template does | |
| | | not take any action."; | |
| | | } | |
| | | enum not-allowed { | |
| | | description | |
| | | "When any configuration object has a reference to this | |
| | | template, changing this template is not allowed."; | |
| | | } | |
| | | enum cascade { | |
| | | description | |
| | | "When an attribute changes in this template, the | |
| | | configuration object referring to this template applies | |
| | | the new attribute value to the corresponding | |
| | | configuration."; | |
| | | } | |
| | | } | |
| description | | description | |
|
| "Indicates whether the topology is configurable by | | "This attribute specifies the action taken to a | |
| clients, or whether it is provided by the server. This | | configuration | |
| leaf is populated by the server implementing the model. | | node that has a reference to this template."; | |
| It is set to false for topologies that are created by a | | | |
| client; it is set to true otherwise. If it is set to | | | |
| true, any attempt to edit the topology MUST be rejected."; | | | |
| } | | } | |
|
| container topology-types { | | } // template-attributes | |
| | | | |
| | | /* | |
| | | * Configuration data nodes | |
| | | */ | |
| | | | |
| | | container te-topologies { | |
| | | description | |
| | | "This container acts as the top-level data element of | |
| | | configuration data."; | |
| | | list topology { | |
| | | key "provider-id client-id te-topology-id"; | |
| description | | description | |
|
| "This container is used to identify the type, or types (as | | "This is the model of an abstract topology. A topology | |
| a topology can support several types simultaneously), of | | contains nodes and links. Each topology MUST be identified | |
| the topology. | | by a unique te-topology-id for reason that a network could | |
| Topology types are the subject of several integrity | | contain many topologies."; | |
| constraints that an implementing server can validate in | | leaf provider-id { | |
| order to maintain integrity of the datastore. | | type te-global-id; | |
| Topology types are indicated through separate data nodes; | | | |
| the set of topology types is expected to increase over | | | |
| time. | | | |
| To add support for a new topology, an augmenting module | | | |
| needs to augment this container with a new empty optional | | | |
| container to indicate the new topology type. | | | |
| The use of a container allows to indicate a | | | |
| subcategorization of topology types. | | | |
| The container SHALL NOT be augmented with any data nodes | | | |
| that serve a purpose other than identifying a particular | | | |
| topology type."; | | | |
| uses te-topology-type; // Defines the TE topology type. | | | |
| } | | | |
| list node { | | | |
| key "te-node-id"; | | | |
| leaf te-node-id { | | | |
| type te-node-id; | | | |
| description | | description | |
|
| "The identifier of a node in the topology. | | "An identifier to uniquely identify a provider."; | |
| | | | |
| A node is specific to a topology to which it belongs."; | | | |
| } | | } | |
|
| description | | leaf client-id { | |
| "The list of network nodes defined for the topology."; | | type te-global-id; | |
| leaf te-node-template { | | | |
| type leafref { | | | |
| path "/te-topologies/node-template/name"; | | | |
| } | | | |
| description | | description | |
|
| "The reference to a TE node template."; | | "An identifier to uniquely identify a client."; | |
| } | | } | |
|
| uses te-node-attributes; | | leaf te-topology-id { | |
| uses te-node-state-attributes; | | type te-topology-id; | |
| } | | | |
| list link { | | | |
| key "source-te-node-id source-te-link-id " | | | |
| + "dest-te-node-id dest-te-link-id"; | | | |
| leaf source-te-node-id { | | | |
| type leafref { | | | |
| path "../../node/te-node-id"; | | | |
| } | | | |
| mandatory true; | | | |
| description | | description< |