Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 1 | module tapi-topology {
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 2 | namespace "urn:onf:otcc:yang:tapi-topology";
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 3 | prefix tapi-topology;
|
| 4 | import tapi-common {
|
| 5 | prefix tapi-common;
|
| 6 | }
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 7 | organization "ONF OTCC (Open Transport Configuration & Control) Project";
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 8 | contact " |
| 9 | Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI> |
| 10 | Project List: <mailto:transport-api@opennetworking.org> |
| 11 | Editor: Karthik Sethuraman |
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 12 | <mailto:karthik.sethuraman@necam.com>";
|
| 13 | description "
|
| 14 | This module contains TAPI Topology Model definitions.
|
| 15 | Source: TapiTopology.uml
|
| 16 | Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
|
| 17 | License: This module is distributed under the Apache License 2.0";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 18 | revision 2018-03-07 {
|
Yuta HIGUCHI | e1ca23f | 2018-04-06 10:05:45 -0700 | [diff] [blame] | 19 | description "ONF Transport API version 2.0.2
|
| 20 | This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
|
| 21 | Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
|
| 22 | reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
|
| 23 | <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
|
| 24 | }
|
| 25 | revision 2018-02-16 {
|
| 26 | description "ONF Transport API version 2.0.1
|
| 27 | This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
|
| 28 | Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
|
| 29 | reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
|
| 30 | <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
|
| 31 | }
|
| 32 | revision 2018-01-02 {
|
| 33 | description "ONF Transport API version 2.0.0
|
| 34 | This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
|
| 35 | Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
|
| 36 | reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
|
| 37 | <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 38 | }
|
| 39 | augment "/tapi-common:context" {
|
| 40 | uses topology-context;
|
| 41 | description "Augments the base TAPI Context with TopologyService information";
|
| 42 | }
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 43 |
|
| 44 | /*************************
|
| 45 | * definitions of refrences
|
| 46 | *************************/
|
| 47 |
|
| 48 | grouping topology-ref {
|
| 49 | leaf topology-id {
|
| 50 | type leafref {
|
| 51 | path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
|
| 52 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 53 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 54 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 55 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 56 | }
|
| 57 |
|
| 58 | grouping link-ref {
|
| 59 | uses topology-ref;
|
| 60 | leaf link-id {
|
| 61 | type leafref {
|
| 62 | path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
|
| 63 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 64 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 65 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 66 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 67 | }
|
| 68 |
|
| 69 | grouping node-ref {
|
| 70 | uses topology-ref;
|
| 71 | leaf node-id {
|
| 72 | type leafref {
|
| 73 | path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
|
| 74 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 75 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 76 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 77 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 78 | }
|
| 79 |
|
| 80 | grouping owned-node-edge-point-ref {
|
| 81 | uses node-ref;
|
| 82 | leaf owned-node-edge-point-id {
|
| 83 | type leafref {
|
| 84 | path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
|
| 85 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 86 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 87 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 88 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 89 | }
|
| 90 |
|
| 91 | grouping node-rule-group-ref {
|
| 92 | uses node-ref;
|
| 93 | leaf node-rule-group-id {
|
| 94 | type leafref {
|
| 95 | path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
|
| 96 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 97 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 98 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 99 | description "none";
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 100 | }
|
| 101 |
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 102 | /***********************
|
| 103 | * package object-classes
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 104 | **********************/
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 105 | grouping link {
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 106 | list node-edge-point {
|
| 107 | uses owned-node-edge-point-ref;
|
| 108 | key 'topology-id node-id owned-node-edge-point-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 109 | config false;
|
| 110 | min-elements 2;
|
| 111 | description "none";
|
| 112 | }
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 113 | leaf-list layer-protocol-name {
|
| 114 | type tapi-common:layer-protocol-name;
|
| 115 | config false;
|
| 116 | min-elements 1;
|
| 117 | description "none";
|
| 118 | }
|
| 119 | leaf direction {
|
| 120 | type tapi-common:forwarding-direction;
|
| 121 | config false;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 122 | description "The directionality of the Link.
|
| 123 | Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 124 | Is not present in more complex cases.";
|
| 125 | }
|
| 126 | container resilience-type {
|
| 127 | uses resilience-type;
|
| 128 | description "none";
|
| 129 | }
|
| 130 | uses tapi-common:resource-spec;
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 131 | uses tapi-common:admin-state-pac;
|
| 132 | uses tapi-common:capacity-pac;
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 133 | uses transfer-cost-pac;
|
| 134 | uses transfer-integrity-pac;
|
| 135 | uses transfer-timing-pac;
|
| 136 | uses risk-parameter-pac;
|
| 137 | uses validation-pac;
|
| 138 | uses layer-protocol-transition-pac;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 139 | description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
|
| 140 | }
|
| 141 | grouping node {
|
| 142 | list owned-node-edge-point {
|
| 143 | key 'uuid';
|
| 144 | config false;
|
| 145 | uses node-edge-point;
|
| 146 | description "none";
|
| 147 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 148 | list aggregated-node-edge-point {
|
| 149 | uses owned-node-edge-point-ref;
|
| 150 | key 'topology-id node-id owned-node-edge-point-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 151 | config false;
|
| 152 | description "none";
|
| 153 | }
|
| 154 | list node-rule-group {
|
| 155 | key 'uuid';
|
| 156 | uses node-rule-group;
|
| 157 | description "none";
|
| 158 | }
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 159 | container encap-topology {
|
| 160 | uses topology-ref;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 161 | config false;
|
| 162 | description "none";
|
| 163 | }
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 164 | leaf-list layer-protocol-name {
|
| 165 | type tapi-common:layer-protocol-name;
|
| 166 | config false;
|
| 167 | min-elements 1;
|
| 168 | description "none";
|
| 169 | }
|
| 170 | uses tapi-common:resource-spec;
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 171 | uses tapi-common:admin-state-pac;
|
| 172 | uses tapi-common:capacity-pac;
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 173 | uses transfer-cost-pac;
|
| 174 | uses transfer-integrity-pac;
|
| 175 | uses transfer-timing-pac;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 176 | description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 177 | At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
|
| 178 | }
|
| 179 | grouping topology {
|
| 180 | list node {
|
| 181 | key 'uuid';
|
| 182 | config false;
|
| 183 | uses node;
|
| 184 | description "none";
|
| 185 | }
|
| 186 | list link {
|
| 187 | key 'uuid';
|
| 188 | config false;
|
| 189 | uses link;
|
| 190 | description "none";
|
| 191 | }
|
| 192 | leaf-list layer-protocol-name {
|
| 193 | type tapi-common:layer-protocol-name;
|
| 194 | config false;
|
| 195 | min-elements 1;
|
| 196 | description "none";
|
| 197 | }
|
| 198 | uses tapi-common:resource-spec;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 199 | description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 200 | At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
|
| 201 | }
|
| 202 | grouping layer-protocol-transition-pac {
|
| 203 | leaf-list transitioned-layer-protocol-name {
|
| 204 | type string;
|
| 205 | min-elements 2;
|
| 206 | description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
|
| 207 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 208 | description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation.
|
| 209 | This abstraction is relevant when considering multi-layer routing.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 210 | The layer protocols of the LTP and the order of their application to the signal is still relevant and need to be accounted for. This is derived from the LTP spec details.
|
| 211 | This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
|
| 212 | Links that included details in this Pac are often referred to as Transitional Links.";
|
| 213 | }
|
| 214 | grouping node-edge-point {
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 215 | leaf layer-protocol-name {
|
| 216 | type tapi-common:layer-protocol-name;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 217 | config false;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 218 | description "none";
|
| 219 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 220 | list aggregated-node-edge-point {
|
| 221 | uses owned-node-edge-point-ref;
|
| 222 | key 'topology-id node-id owned-node-edge-point-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 223 | config false;
|
| 224 | description "none";
|
| 225 | }
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 226 | list mapped-service-interface-point {
|
| 227 | uses tapi-common:service-interface-point-ref;
|
| 228 | key 'service-interface-point-id';
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 229 | config false;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 230 | description "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental";
|
| 231 | }
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 232 | leaf link-port-direction {
|
| 233 | type tapi-common:port-direction;
|
| 234 | config false;
|
| 235 | description "The orientation of defined flow at the LinkEnd.";
|
| 236 | }
|
| 237 | leaf link-port-role {
|
| 238 | type tapi-common:port-role;
|
| 239 | config false;
|
| 240 | description "Each LinkEnd of the Link has a role (e.g., symmetric, hub, spoke, leaf, root) in the context of the Link with respect to the Link function. ";
|
| 241 | }
|
| 242 | uses tapi-common:resource-spec;
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 243 | uses tapi-common:admin-state-pac;
|
| 244 | uses tapi-common:termination-pac;
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 245 | uses tapi-common:capacity-pac;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 246 | description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 247 | The structure of LTP supports all transport protocols including circuit and packet forms.";
|
| 248 | }
|
| 249 | grouping risk-parameter-pac {
|
| 250 | list risk-characteristic {
|
| 251 | key 'risk-characteristic-name';
|
| 252 | config false;
|
| 253 | min-elements 1;
|
| 254 | uses risk-characteristic;
|
| 255 | description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
|
| 256 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 257 | description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 258 | The risk characteristics propagate from the physical realization to the client and from the server layer to the client layer, this propagation may be modified by protection.
|
| 259 | A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
|
| 260 | The realization can be partitioned into segments which have some relevant common failure modes.
|
| 261 | There is a risk of failure/degradation of each segment of the underlying realization.
|
| 262 | Each segment is a part of a larger physical/geographical unit that behaves as one with respect to failure (i.e. a failure will have a high probability of impacting the whole unit (e.g. all cables in the same duct).
|
| 263 | Disruptions to that larger physical/geographical unit will impact (cause failure/errors to) all TopologicalEntities that use any part of that larger physical/geographical entity.
|
| 264 | Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
|
| 265 | The identifier of each physical/geographical unit that is involved in the realization of each segment of a Topological entity can be listed in the RiskParameter_Pac of that TopologicalEntity.
|
| 266 | A segment has one or more risk characteristic.
|
| 267 | Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
|
| 268 | Where two TopologicalEntities have a common risk characteristic they have an elevated probability of failing simultaneously compared to two TopologicalEntities that do not share risk characteristics.";
|
| 269 | }
|
| 270 | grouping transfer-cost-pac {
|
| 271 | list cost-characteristic {
|
| 272 | key 'cost-name';
|
| 273 | config false;
|
| 274 | min-elements 1;
|
| 275 | uses cost-characteristic;
|
| 276 | description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
|
| 277 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 278 | description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 279 | They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 280 | There may be many perspectives from which cost may be considered for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 281 | Using an entity will incur a cost. ";
|
| 282 | }
|
| 283 | grouping transfer-integrity-pac {
|
| 284 | leaf error-characteristic {
|
| 285 | type string;
|
| 286 | config false;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 287 | description "Describes the degree to which the signal propagated can be errored.
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 288 | Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
|
| 289 | }
|
| 290 | leaf loss-characteristic {
|
| 291 | type string;
|
| 292 | config false;
|
| 293 | description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
|
| 294 | Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
|
| 295 | }
|
| 296 | leaf repeat-delivery-characteristic {
|
| 297 | type string;
|
| 298 | config false;
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 299 | description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 300 | It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay.";
|
| 301 | }
|
| 302 | leaf delivery-order-characteristic {
|
| 303 | type string;
|
| 304 | config false;
|
| 305 | description "Describes the degree to which packets will be delivered out of sequence.
|
| 306 | Does not apply to TDM as the TDM protocols maintain strict order.";
|
| 307 | }
|
| 308 | leaf unavailable-time-characteristic {
|
| 309 | type string;
|
| 310 | config false;
|
| 311 | description "Describes the duration for which there may be no valid signal propagated.";
|
| 312 | }
|
| 313 | leaf server-integrity-process-characteristic {
|
| 314 | type string;
|
| 315 | config false;
|
| 316 | description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
|
| 317 | }
|
| 318 | description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
|
| 319 | It includes all aspects of possible degradation of signal content as well as any damage of any form to the total TopologicalEntity and to the carried signals.
|
| 320 | Note that the statement is of total impact to the TopologicalEntity so any partial usage of the TopologicalEntity (e.g. a signal that does not use full capacity) will only suffer its portion of the impact.";
|
| 321 | }
|
| 322 | grouping transfer-timing-pac {
|
| 323 | list latency-characteristic {
|
| 324 | key 'traffic-property-name';
|
| 325 | config false;
|
| 326 | min-elements 1;
|
| 327 | uses latency-characteristic;
|
| 328 | description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
|
| 329 | }
|
| 330 | description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
|
| 331 | }
|
| 332 | grouping validation-pac {
|
| 333 | list validation-mechanism {
|
| 334 | key 'validation-mechanism';
|
| 335 | config false;
|
| 336 | min-elements 1;
|
| 337 | uses validation-mechanism;
|
| 338 | description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
|
| 339 | }
|
| 340 | description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
|
| 341 | }
|
| 342 | grouping network-topology-service {
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 343 | list topology {
|
| 344 | uses topology-ref;
|
| 345 | key 'topology-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 346 | config false;
|
| 347 | description "none";
|
| 348 | }
|
| 349 | uses tapi-common:service-spec;
|
| 350 | description "none";
|
| 351 | }
|
| 352 | grouping topology-context {
|
| 353 | container nw-topology-service {
|
| 354 | config false;
|
| 355 | uses network-topology-service;
|
| 356 | description "none";
|
| 357 | }
|
| 358 | list topology {
|
| 359 | key 'uuid';
|
| 360 | config false;
|
| 361 | uses topology;
|
| 362 | description "none";
|
| 363 | }
|
| 364 | description "none";
|
| 365 | }
|
| 366 | grouping inter-rule-group {
|
| 367 | list rule {
|
| 368 | key 'local-id';
|
| 369 | min-elements 1;
|
| 370 | uses rule;
|
| 371 | description "none";
|
| 372 | }
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 373 | list associated-node-rule-group {
|
| 374 | uses node-rule-group-ref;
|
| 375 | key 'topology-id node-id node-rule-group-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 376 | min-elements 2;
|
| 377 | description "none";
|
| 378 | }
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 379 | uses tapi-common:resource-spec;
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 380 | uses tapi-common:capacity-pac;
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 381 | uses transfer-cost-pac;
|
| 382 | uses transfer-timing-pac;
|
| 383 | uses risk-parameter-pac;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 384 | description "none";
|
| 385 | }
|
| 386 | grouping node-rule-group {
|
| 387 | list rule {
|
| 388 | key 'local-id';
|
| 389 | min-elements 1;
|
| 390 | uses rule;
|
| 391 | description "none";
|
| 392 | }
|
Yuta HIGUCHI | 7f165b1 | 2018-03-25 19:05:29 -0700 | [diff] [blame] | 393 | list node-edge-point {
|
| 394 | uses owned-node-edge-point-ref;
|
| 395 | key 'topology-id node-id owned-node-edge-point-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 396 | min-elements 1;
|
| 397 | description "none";
|
| 398 | }
|
Yuta HIGUCHI | 348bba7 | 2018-03-08 13:46:48 -0800 | [diff] [blame] | 399 | list composed-rule-group {
|
| 400 | uses node-rule-group-ref;
|
| 401 | key 'topology-id node-id node-rule-group-id';
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 402 | description "none";
|
| 403 | }
|
| 404 | list inter-rule-group {
|
| 405 | key 'uuid';
|
| 406 | uses inter-rule-group;
|
| 407 | description "none";
|
| 408 | }
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 409 | uses tapi-common:resource-spec;
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 410 | uses tapi-common:capacity-pac;
|
Yuta HIGUCHI | 80d0bbd | 2018-02-28 11:13:11 -0800 | [diff] [blame] | 411 | uses transfer-cost-pac;
|
| 412 | uses transfer-timing-pac;
|
| 413 | uses risk-parameter-pac;
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 414 | description "none";
|
| 415 | }
|
| 416 | grouping rule {
|
| 417 | leaf rule-type {
|
| 418 | type rule-type;
|
| 419 | description "none";
|
| 420 | }
|
| 421 | leaf forwarding-rule {
|
| 422 | type forwarding-rule;
|
| 423 | description "none";
|
| 424 | }
|
| 425 | leaf override-priority {
|
| 426 | type uint64;
|
| 427 | description "none";
|
| 428 | }
|
| 429 | uses tapi-common:local-class;
|
| 430 | description "none";
|
| 431 | }
|
| 432 |
|
| 433 | /***********************
|
| 434 | * package type-definitions
|
| 435 | **********************/
|
| 436 | grouping cost-characteristic {
|
| 437 | leaf cost-name {
|
| 438 | type string;
|
| 439 | description "The cost characteristic will related to some aspect of the TopologicalEntity (e.g. $ cost, routing weight). This aspect will be conveyed by the costName.";
|
| 440 | }
|
| 441 | leaf cost-value {
|
| 442 | type string;
|
| 443 | description "The specific cost.";
|
| 444 | }
|
| 445 | leaf cost-algorithm {
|
| 446 | type string;
|
| 447 | description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
|
| 448 | }
|
| 449 | description "The information for a particular cost characteristic.";
|
| 450 | }
|
| 451 | grouping latency-characteristic {
|
| 452 | leaf traffic-property-name {
|
| 453 | type string;
|
| 454 | description "The identifier of the specific traffic property to which the queuing latency applies.";
|
| 455 | }
|
| 456 | leaf fixed-latency-characteristic {
|
| 457 | type string;
|
| 458 | config false;
|
| 459 | description "A TopologicalEntity suffers delay caused by the realization of the servers (e.g. distance related; FEC encoding etc.) along with some client specific processing. This is the total average latency effect of the TopologicalEntity";
|
| 460 | }
|
| 461 | leaf queing-latency-characteristic {
|
| 462 | type string;
|
| 463 | description "The specific queuing latency for the traffic property.";
|
| 464 | }
|
| 465 | leaf jitter-characteristic {
|
| 466 | type string;
|
| 467 | config false;
|
| 468 | description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
|
| 469 | Applies to TDM systems (and not packet).";
|
| 470 | }
|
| 471 | leaf wander-characteristic {
|
| 472 | type string;
|
| 473 | config false;
|
| 474 | description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
|
| 475 | Applies to TDM systems (and not packet).";
|
| 476 | }
|
| 477 | description "Provides information on latency characteristic for a particular stated trafficProperty.";
|
| 478 | }
|
| 479 | grouping risk-characteristic {
|
| 480 | leaf risk-characteristic-name {
|
| 481 | type string;
|
| 482 | description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
|
| 483 | For example a particular characteristic may apply to failures that are localized (e.g. to one side of a road) where as another characteristic may relate to failures that have a broader impact (e.g. both sides of a road that crosses a bridge).
|
| 484 | Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
|
| 485 | }
|
| 486 | leaf-list risk-identifier-list {
|
| 487 | type string;
|
| 488 | min-elements 1;
|
| 489 | description "A list of the identifiers of each physical/geographic unit (with the specific risk characteristic) that is related to a segment of the TopologicalEntity.";
|
| 490 | }
|
| 491 | description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
|
| 492 | }
|
| 493 | grouping validation-mechanism {
|
| 494 | leaf validation-mechanism {
|
| 495 | type string;
|
| 496 | description "Name of mechanism used to validate adjacency";
|
| 497 | }
|
| 498 | leaf layer-protocol-adjacency-validated {
|
| 499 | type string;
|
| 500 | description "State of validatiion";
|
| 501 | }
|
| 502 | leaf validation-robustness {
|
| 503 | type string;
|
| 504 | description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
|
| 505 | }
|
| 506 | description "Identifies the validation mechanism and describes the characteristics of that mechanism";
|
| 507 | }
|
| 508 | typedef forwarding-rule {
|
| 509 | type enumeration {
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 510 | enum MAY_FORWARD_ACROSS_GROUP {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 511 | description "none";
|
| 512 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 513 | enum MUST_FORWARD_ACROSS_GROUP {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 514 | description "none";
|
| 515 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 516 | enum CANNOT_FORWARD_ACROSS_GROUP {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 517 | description "none";
|
| 518 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 519 | enum NO_STATEMENT_ON_FORWARDING {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 520 | description "none";
|
| 521 | }
|
| 522 | }
|
| 523 | description "none";
|
| 524 | }
|
| 525 | typedef rule-type {
|
| 526 | type enumeration {
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 527 | enum FORWARDING {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 528 | description "none";
|
| 529 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 530 | enum CAPACITY {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 531 | description "none";
|
| 532 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 533 | enum COST {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 534 | description "none";
|
| 535 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 536 | enum TIMING {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 537 | description "none";
|
| 538 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 539 | enum RISK {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 540 | description "none";
|
| 541 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 542 | enum GROUPING {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 543 | description "none";
|
| 544 | }
|
| 545 | }
|
| 546 | description "none";
|
| 547 | }
|
| 548 | grouping resilience-type {
|
| 549 | leaf restoration-policy {
|
| 550 | type restoration-policy;
|
| 551 | description "none";
|
| 552 | }
|
| 553 | leaf protection-type {
|
| 554 | type protection-type;
|
| 555 | description "none";
|
| 556 | }
|
| 557 | description "none";
|
| 558 | }
|
| 559 | typedef restoration-policy {
|
| 560 | type enumeration {
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 561 | enum PER_DOMAIN_RESTORATION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 562 | description "none";
|
| 563 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 564 | enum END_TO_END_RESTORATION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 565 | description "none";
|
| 566 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 567 | enum NA {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 568 | description "none";
|
| 569 | }
|
| 570 | }
|
| 571 | description "none";
|
| 572 | }
|
| 573 | typedef protection-type {
|
| 574 | type enumeration {
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 575 | enum NO_PROTECTON {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 576 | description "none";
|
| 577 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 578 | enum ONE_PLUS_ONE_PROTECTION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 579 | description "none";
|
| 580 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 581 | enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 582 | description "none";
|
| 583 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 584 | enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 585 | description "none";
|
| 586 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 587 | enum ONE_FOR_ONE_PROTECTION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 588 | description "none";
|
| 589 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 590 | enum DYNAMIC_RESTORATION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 591 | description "none";
|
| 592 | }
|
wu | 6a418d2 | 2018-02-02 01:49:21 -0500 | [diff] [blame] | 593 | enum PRE_COMPUTED_RESTORATION {
|
Toru Furusawa | 2898889 | 2017-10-30 17:28:40 -0700 | [diff] [blame] | 594 | description "none";
|
| 595 | }
|
| 596 | }
|
| 597 | description "none";
|
| 598 | }
|
| 599 |
|
| 600 | /***********************
|
| 601 | * package interfaces
|
| 602 | **********************/
|
| 603 | rpc get-topology-details {
|
| 604 | description "none";
|
| 605 | input {
|
| 606 | leaf topology-id-or-name {
|
| 607 | type string;
|
| 608 | description "none";
|
| 609 | }
|
| 610 | }
|
| 611 | output {
|
| 612 | container topology {
|
| 613 | uses topology;
|
| 614 | description "none";
|
| 615 | }
|
| 616 | }
|
| 617 | }
|
| 618 | rpc get-node-details {
|
| 619 | description "none";
|
| 620 | input {
|
| 621 | leaf topology-id-or-name {
|
| 622 | type string;
|
| 623 | description "none";
|
| 624 | }
|
| 625 | leaf node-id-or-name {
|
| 626 | type string;
|
| 627 | description "none";
|
| 628 | }
|
| 629 | }
|
| 630 | output {
|
| 631 | container node {
|
| 632 | uses node;
|
| 633 | description "none";
|
| 634 | }
|
| 635 | }
|
| 636 | }
|
| 637 | rpc get-node-edge-point-details {
|
| 638 | description "none";
|
| 639 | input {
|
| 640 | leaf topology-id-or-name {
|
| 641 | type string;
|
| 642 | description "none";
|
| 643 | }
|
| 644 | leaf node-id-or-name {
|
| 645 | type string;
|
| 646 | description "none";
|
| 647 | }
|
| 648 | leaf ep-id-or-name {
|
| 649 | type string;
|
| 650 | description "none";
|
| 651 | }
|
| 652 | }
|
| 653 | output {
|
| 654 | container node-edge-point {
|
| 655 | uses node-edge-point;
|
| 656 | description "none";
|
| 657 | }
|
| 658 | }
|
| 659 | }
|
| 660 | rpc get-link-details {
|
| 661 | description "none";
|
| 662 | input {
|
| 663 | leaf topology-id-or-name {
|
| 664 | type string;
|
| 665 | description "none";
|
| 666 | }
|
| 667 | leaf link-id-or-name {
|
| 668 | type string;
|
| 669 | description "none";
|
| 670 | }
|
| 671 | }
|
| 672 | output {
|
| 673 | container link {
|
| 674 | uses link;
|
| 675 | description "none";
|
| 676 | }
|
| 677 | }
|
| 678 | }
|
| 679 | rpc get-topology-list {
|
| 680 | description "none";
|
| 681 | output {
|
| 682 | list topology {
|
| 683 | uses topology;
|
| 684 | description "none";
|
| 685 | }
|
| 686 | }
|
| 687 | }
|
| 688 |
|
| 689 | }
|