blob: 0d35d8595dcc0f41a8bf5647081a9c4ac2670871 [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-topology {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-topology";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-topology;
4 import tapi-common {
5 prefix tapi-common;
6 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08007 organization "ONF OTCC (Open Transport Configuration & Control) Project";
hirokid8fd7862018-10-09 15:24:24 +09008 contact "
9 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
10 Project List: <mailto:transport-api@opennetworking.org>
11 Editor: Karthik Sethuraman
12 <mailto:karthik.sethuraman@necam.com>";
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080013 description "
14 This module contains TAPI Topology Model definitions.
15 Source: TapiTopology.uml
hiroki96ab3c22018-12-11 14:10:52 -080016 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
17 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
18 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
19 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
20 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
21 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
22 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
23 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
24 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
25 YANG models included in this release may not be backward compatible with previous TAPI releases.
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080026 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
27 License: This module is distributed under the Apache License 2.0";
hiroki96ab3c22018-12-11 14:10:52 -080028 revision 2018-12-10 {
29 description "ONF Transport API version 2.1.1.
30 Changes included in this TAPI release (v2.1.1) are listed in
31 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
32 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
33 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
34 }
hirokid8fd7862018-10-09 15:24:24 +090035 revision 2018-10-16 {
36 description "ONF Transport API version 2.1.0.
hiroki96ab3c22018-12-11 14:10:52 -080037 Changes included in this TAPI release (v2.1.0) are listed in
38 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090039 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
hirokid8fd7862018-10-09 15:24:24 +090040 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
41 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080042 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090043 description "ONF Transport API version 2.0.2
44 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070045 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
Ai Hamano06163902018-12-06 09:18:20 +090046 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070047 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
48 }
49 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090050 description "ONF Transport API version 2.0.1
51 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070052 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
Ai Hamano06163902018-12-06 09:18:20 +090053 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070054 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
55 }
56 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090057 description "ONF Transport API version 2.0.0
58 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070059 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090060 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070061 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070062 }
63 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090064 container topology-context {
65 uses topology-context;
66 description "Augments the base TAPI Context with TopologyService information";
67 }
Toru Furusawa28988892017-10-30 17:28:40 -070068 description "Augments the base TAPI Context with TopologyService information";
69 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080070
Ai Hamano06163902018-12-06 09:18:20 +090071 /**************************
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080072 * definitions of refrences
Ai Hamano06163902018-12-06 09:18:20 +090073 **************************/
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080074 grouping topology-ref {
hirokid8fd7862018-10-09 15:24:24 +090075 leaf topology-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080076 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090077 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080078 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070079 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080080 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070081 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080082 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080083 grouping link-ref {
84 uses topology-ref;
hirokid8fd7862018-10-09 15:24:24 +090085 leaf link-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080086 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090087 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080088 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070089 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080090 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070091 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080092 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080093 grouping node-ref {
94 uses topology-ref;
hirokid8fd7862018-10-09 15:24:24 +090095 leaf node-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080096 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090097 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080098 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070099 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800100 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700101 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800102 }
hirokid8fd7862018-10-09 15:24:24 +0900103 grouping node-edge-point-ref {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800104 uses node-ref;
hirokid8fd7862018-10-09 15:24:24 +0900105 leaf node-edge-point-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800106 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900107 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800108 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700109 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800110 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700111 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800112 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800113 grouping node-rule-group-ref {
114 uses node-ref;
hirokid8fd7862018-10-09 15:24:24 +0900115 leaf node-rule-group-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800116 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900117 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800118 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700119 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800120 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700121 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800122 }
123
Ai Hamano06163902018-12-06 09:18:20 +0900124 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -0700125 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +0900126 **************************/
127 grouping link {
128 list node-edge-point {
129 uses node-edge-point-ref;
130 key 'topology-uuid node-uuid node-edge-point-uuid';
131 config false;
132 min-elements 2;
Toru Furusawa28988892017-10-30 17:28:40 -0700133 description "none";
134 }
Ai Hamano06163902018-12-06 09:18:20 +0900135 leaf-list layer-protocol-name {
136 type tapi-common:layer-protocol-name;
137 config false;
138 min-elements 1;
139 description "none";
140 }
141 leaf direction {
142 type tapi-common:forwarding-direction;
143 config false;
144 description "The directionality of the Link.
145 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
146 Is not present in more complex cases.";
147 }
148 container resilience-type {
149 uses resilience-type;
150 description "none";
151 }
152 uses tapi-common:resource-spec;
153 uses tapi-common:admin-state-pac;
154 uses tapi-common:capacity-pac;
155 uses transfer-cost-pac;
156 uses transfer-integrity-pac;
157 uses transfer-timing-pac;
158 uses risk-parameter-pac;
159 uses validation-pac;
160 uses layer-protocol-transition-pac;
161 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
162 }
163 grouping node {
164 list owned-node-edge-point {
165 key 'uuid';
166 config false;
167 uses node-edge-point;
168 description "none";
169 }
170 list aggregated-node-edge-point {
171 uses node-edge-point-ref;
172 key 'topology-uuid node-uuid node-edge-point-uuid';
173 config false;
174 description "none";
175 }
176 list node-rule-group {
177 key 'uuid';
178 uses node-rule-group;
179 description "none";
180 }
181 container encap-topology {
182 uses topology-ref;
183 config false;
184 description "none";
185 }
186 leaf-list layer-protocol-name {
187 type tapi-common:layer-protocol-name;
188 config false;
189 min-elements 1;
190 description "none";
191 }
192 uses tapi-common:resource-spec;
193 uses tapi-common:admin-state-pac;
194 uses tapi-common:capacity-pac;
195 uses transfer-cost-pac;
196 uses transfer-integrity-pac;
197 uses transfer-timing-pac;
198 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.
199 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). ";
200 }
201 grouping topology {
202 list node {
203 key 'uuid';
204 config false;
205 uses node;
206 description "none";
207 }
208 list link {
209 key 'uuid';
210 config false;
211 uses link;
212 description "none";
213 }
214 leaf-list layer-protocol-name {
215 type tapi-common:layer-protocol-name;
216 config false;
217 min-elements 1;
218 description "none";
219 }
220 uses tapi-common:resource-spec;
221 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.
222 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). ";
223 }
224 grouping layer-protocol-transition-pac {
225 leaf-list transitioned-layer-protocol-name {
226 type string;
227 min-elements 2;
228 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
229 }
230 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.
231 This abstraction is relevant when considering multi-layer routing.
232 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.
233 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
234 Links that included details in this Pac are often referred to as Transitional Links.";
235 }
236 grouping node-edge-point {
237 leaf layer-protocol-name {
238 type tapi-common:layer-protocol-name;
239 config false;
240 description "none";
241 }
242 leaf-list supported-cep-layer-protocol-qualifier {
243 type tapi-common:layer-protocol-qualifier;
244 min-elements 1;
245 description "none";
246 }
247 list aggregated-node-edge-point {
248 uses node-edge-point-ref;
249 key 'topology-uuid node-uuid node-edge-point-uuid';
250 config false;
251 description "none";
252 }
253 list mapped-service-interface-point {
254 uses tapi-common:service-interface-point-ref;
255 key 'service-interface-point-uuid';
256 config false;
257 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";
258 }
259 leaf link-port-direction {
260 type tapi-common:port-direction;
261 config false;
262 description "The orientation of defined flow at the LinkEnd.";
263 }
264 leaf link-port-role {
265 type tapi-common:port-role;
266 config false;
267 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. ";
268 }
269 uses tapi-common:resource-spec;
270 uses tapi-common:admin-state-pac;
271 uses tapi-common:termination-pac;
272 uses tapi-common:capacity-pac;
273 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
274 The structure of LTP supports all transport protocols including circuit and packet forms.";
275 }
276 grouping risk-parameter-pac {
277 list risk-characteristic {
278 key 'risk-characteristic-name';
279 config false;
280 min-elements 1;
281 uses risk-characteristic;
282 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
283 }
284 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
285 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.
286 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
287 The realization can be partitioned into segments which have some relevant common failure modes.
288 There is a risk of failure/degradation of each segment of the underlying realization.
289 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).
290 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.
291 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
292 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.
293 A segment has one or more risk characteristic.
294 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
295 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.";
296 }
297 grouping transfer-cost-pac {
298 list cost-characteristic {
299 key 'cost-name';
300 config false;
301 min-elements 1;
302 uses cost-characteristic;
303 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
304 }
305 description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
306 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
307 There may be many perspectives from which cost may be considered for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
308 Using an entity will incur a cost. ";
309 }
310 grouping transfer-integrity-pac {
311 leaf error-characteristic {
312 type string;
313 config false;
314 description "Describes the degree to which the signal propagated can be errored.
315 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
316 }
317 leaf loss-characteristic {
318 type string;
319 config false;
320 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
321 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
322 }
323 leaf repeat-delivery-characteristic {
324 type string;
325 config false;
326 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
327 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.";
328 }
329 leaf delivery-order-characteristic {
330 type string;
331 config false;
332 description "Describes the degree to which packets will be delivered out of sequence.
333 Does not apply to TDM as the TDM protocols maintain strict order.";
334 }
335 leaf unavailable-time-characteristic {
336 type string;
337 config false;
338 description "Describes the duration for which there may be no valid signal propagated.";
339 }
340 leaf server-integrity-process-characteristic {
341 type string;
342 config false;
343 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
344 }
345 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
346 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.
347 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.";
348 }
349 grouping transfer-timing-pac {
350 list latency-characteristic {
351 key 'traffic-property-name';
352 config false;
353 min-elements 1;
354 uses latency-characteristic;
355 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
356 }
357 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
358 }
359 grouping validation-pac {
360 list validation-mechanism {
361 key 'validation-mechanism';
362 config false;
363 min-elements 1;
364 uses validation-mechanism;
365 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
366 }
367 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
368 }
369 grouping network-topology-service {
370 list topology {
371 uses topology-ref;
372 key 'topology-uuid';
373 config false;
374 description "none";
375 }
376 uses tapi-common:service-spec;
377 description "none";
378 }
379 grouping topology-context {
380 container nw-topology-service {
381 config false;
382 uses network-topology-service;
383 description "none";
384 }
385 list topology {
386 key 'uuid';
387 config false;
388 uses topology;
389 description "none";
390 }
391 description "none";
392 }
393 grouping inter-rule-group {
394 list rule {
395 key 'local-id';
396 min-elements 1;
397 uses rule;
398 description "none";
399 }
400 list associated-node-rule-group {
401 uses node-rule-group-ref;
402 key 'topology-uuid node-uuid node-rule-group-uuid';
403 min-elements 2;
404 description "none";
405 }
406 uses tapi-common:resource-spec;
407 uses tapi-common:capacity-pac;
408 uses transfer-cost-pac;
409 uses transfer-timing-pac;
410 uses risk-parameter-pac;
411 description "none";
412 }
413 grouping node-rule-group {
414 list rule {
415 key 'local-id';
416 min-elements 1;
417 uses rule;
418 description "none";
419 }
420 list node-edge-point {
421 uses node-edge-point-ref;
422 key 'topology-uuid node-uuid node-edge-point-uuid';
423 min-elements 1;
424 description "none";
425 }
426 list composed-rule-group {
427 uses node-rule-group-ref;
428 key 'topology-uuid node-uuid node-rule-group-uuid';
429 description "none";
430 }
431 list inter-rule-group {
432 key 'uuid';
433 uses inter-rule-group;
434 description "none";
435 }
436 uses tapi-common:resource-spec;
437 uses tapi-common:capacity-pac;
438 uses transfer-cost-pac;
439 uses transfer-timing-pac;
440 uses risk-parameter-pac;
441 description "none";
442 }
443 grouping rule {
444 leaf rule-type {
445 type rule-type;
446 description "none";
447 }
448 leaf forwarding-rule {
449 type forwarding-rule;
450 description "none";
451 }
452 leaf override-priority {
453 type uint64;
454 description "none";
455 }
456 uses tapi-common:local-class;
457 description "none";
458 }
459
460 /**************************
461 * package type-definitions
462 **************************/
463 grouping cost-characteristic {
464 leaf cost-name {
465 type string;
466 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.";
467 }
468 leaf cost-value {
469 type string;
470 description "The specific cost.";
471 }
472 leaf cost-algorithm {
473 type string;
474 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
475 }
476 description "The information for a particular cost characteristic.";
477 }
478 grouping latency-characteristic {
479 leaf traffic-property-name {
480 type string;
481 description "The identifier of the specific traffic property to which the queuing latency applies.";
482 }
483 leaf fixed-latency-characteristic {
484 type string;
485 config false;
486 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";
487 }
488 leaf queing-latency-characteristic {
489 type string;
490 description "The specific queuing latency for the traffic property.";
491 }
492 leaf jitter-characteristic {
493 type string;
494 config false;
495 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
496 Applies to TDM systems (and not packet).";
497 }
498 leaf wander-characteristic {
499 type string;
500 config false;
501 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
502 Applies to TDM systems (and not packet).";
503 }
504 description "Provides information on latency characteristic for a particular stated trafficProperty.";
505 }
506 grouping risk-characteristic {
507 leaf risk-characteristic-name {
508 type string;
509 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
510 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).
511 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
512 }
513 leaf-list risk-identifier-list {
514 type string;
515 min-elements 1;
516 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.";
517 }
518 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
519 }
520 grouping validation-mechanism {
521 leaf validation-mechanism {
522 type string;
523 description "Name of mechanism used to validate adjacency";
524 }
525 leaf layer-protocol-adjacency-validated {
526 type string;
527 description "State of validatiion";
528 }
529 leaf validation-robustness {
530 type string;
531 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
532 }
533 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
534 }
535 typedef forwarding-rule {
536 type enumeration {
537 enum MAY_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700538 description "none";
539 }
Ai Hamano06163902018-12-06 09:18:20 +0900540 enum MUST_FORWARD_ACROSS_GROUP {
541 description "none";
542 }
543 enum CANNOT_FORWARD_ACROSS_GROUP {
544 description "none";
545 }
546 enum NO_STATEMENT_ON_FORWARDING {
547 description "none";
548 }
549 }
550 description "none";
551 }
552 typedef rule-type {
553 type enumeration {
554 enum FORWARDING {
555 description "none";
556 }
557 enum CAPACITY {
558 description "none";
559 }
560 enum COST {
561 description "none";
562 }
563 enum TIMING {
564 description "none";
565 }
566 enum RISK {
567 description "none";
568 }
569 enum GROUPING {
570 description "none";
571 }
572 }
573 description "none";
574 }
575 grouping resilience-type {
576 leaf restoration-policy {
577 type restoration-policy;
578 description "none";
579 }
580 leaf protection-type {
581 type protection-type;
582 description "none";
583 }
584 description "none";
585 }
586 typedef restoration-policy {
587 type enumeration {
588 enum PER_DOMAIN_RESTORATION {
589 description "none";
590 }
591 enum END_TO_END_RESTORATION {
592 description "none";
593 }
594 enum NA {
595 description "none";
596 }
597 }
598 description "none";
599 }
600 typedef protection-type {
601 type enumeration {
602 enum NO_PROTECTON {
603 description "none";
604 }
605 enum ONE_PLUS_ONE_PROTECTION {
606 description "none";
607 }
608 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
609 description "none";
610 }
611 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
612 description "none";
613 }
614 enum ONE_FOR_ONE_PROTECTION {
615 description "none";
616 }
617 enum DYNAMIC_RESTORATION {
618 description "none";
619 }
620 enum PRE_COMPUTED_RESTORATION {
621 description "none";
622 }
623 }
624 description "none";
625 }
626
627 /**************************
628 * package interfaces
629 **************************/
630 rpc get-topology-details {
631 description "none";
632 input {
633 leaf topology-id-or-name {
634 type string;
635 description "none";
636 }
637 }
638 output {
639 container topology {
Toru Furusawa28988892017-10-30 17:28:40 -0700640 uses topology;
641 description "none";
642 }
Toru Furusawa28988892017-10-30 17:28:40 -0700643 }
Ai Hamano06163902018-12-06 09:18:20 +0900644 }
645 rpc get-node-details {
646 description "none";
647 input {
648 leaf topology-id-or-name {
649 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700650 description "none";
651 }
Ai Hamano06163902018-12-06 09:18:20 +0900652 leaf node-id-or-name {
653 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700654 description "none";
655 }
Toru Furusawa28988892017-10-30 17:28:40 -0700656 }
Ai Hamano06163902018-12-06 09:18:20 +0900657 output {
658 container node {
659 uses node;
Toru Furusawa28988892017-10-30 17:28:40 -0700660 description "none";
661 }
Ai Hamano06163902018-12-06 09:18:20 +0900662 }
663 }
664 rpc get-node-edge-point-details {
665 description "none";
666 input {
667 leaf topology-id-or-name {
668 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700669 description "none";
670 }
Ai Hamano06163902018-12-06 09:18:20 +0900671 leaf node-id-or-name {
672 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700673 description "none";
674 }
Ai Hamano06163902018-12-06 09:18:20 +0900675 leaf ep-id-or-name {
676 type string;
677 description "none";
678 }
679 }
680 output {
681 container node-edge-point {
682 uses node-edge-point;
683 description "none";
684 }
685 }
686 }
687 rpc get-link-details {
688 description "none";
689 input {
690 leaf topology-id-or-name {
691 type string;
692 description "none";
693 }
694 leaf link-id-or-name {
695 type string;
696 description "none";
697 }
698 }
699 output {
700 container link {
701 uses link;
702 description "none";
703 }
704 }
705 }
706 rpc get-topology-list {
707 description "none";
708 output {
709 list topology {
Toru Furusawa28988892017-10-30 17:28:40 -0700710 key 'uuid';
Ai Hamano06163902018-12-06 09:18:20 +0900711 uses topology;
Toru Furusawa28988892017-10-30 17:28:40 -0700712 description "none";
713 }
Toru Furusawa28988892017-10-30 17:28:40 -0700714 }
Ai Hamano06163902018-12-06 09:18:20 +0900715 }
Toru Furusawa28988892017-10-30 17:28:40 -0700716}