blob: df459aaeeb9cd82122f8e7367096f40e6095d0ac [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
16 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
17 License: This module is distributed under the Apache License 2.0";
hirokid8fd7862018-10-09 15:24:24 +090018 revision 2018-10-16 {
19 description "ONF Transport API version 2.1.0.
20 - The TAPI YANG models included in this TAPI release (v2.1.0) are a *normative* part of the TAPI SDK.
21 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
22 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
23 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
24 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
25 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
26 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
27 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
28 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
29 YANG models included in this release are not backward compatible with previous TAPI releases.
30 - Changes included in this TAPI release (v2.1.0) are listed in
31 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090032 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 +090033 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
34 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080035 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090036 description "ONF Transport API version 2.0.2
37 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 -070038 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 +090039 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 -070040 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
41 }
42 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090043 description "ONF Transport API version 2.0.1
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.1.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.1/UML>";
48 }
49 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090050 description "ONF Transport API version 2.0.0
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.0.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.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070055 }
56 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090057 container topology-context {
58 uses topology-context;
59 description "Augments the base TAPI Context with TopologyService information";
60 }
Toru Furusawa28988892017-10-30 17:28:40 -070061 description "Augments the base TAPI Context with TopologyService information";
62 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080063
Ai Hamano06163902018-12-06 09:18:20 +090064 /**************************
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080065 * definitions of refrences
Ai Hamano06163902018-12-06 09:18:20 +090066 **************************/
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080067 grouping topology-ref {
hirokid8fd7862018-10-09 15:24:24 +090068 leaf topology-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080069 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090070 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080071 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070072 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080073 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070074 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080075 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080076 grouping link-ref {
77 uses topology-ref;
hirokid8fd7862018-10-09 15:24:24 +090078 leaf link-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080079 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090080 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080081 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070082 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080083 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070084 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080085 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080086 grouping node-ref {
87 uses topology-ref;
hirokid8fd7862018-10-09 15:24:24 +090088 leaf node-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080089 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090090 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080091 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070092 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080093 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070094 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080095 }
hirokid8fd7862018-10-09 15:24:24 +090096 grouping node-edge-point-ref {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080097 uses node-ref;
hirokid8fd7862018-10-09 15:24:24 +090098 leaf node-edge-point-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080099 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900100 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 -0800101 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700102 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800103 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700104 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800105 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800106 grouping node-rule-group-ref {
107 uses node-ref;
hirokid8fd7862018-10-09 15:24:24 +0900108 leaf node-rule-group-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800109 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900110 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 -0800111 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700112 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800113 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700114 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800115 }
116
Ai Hamano06163902018-12-06 09:18:20 +0900117 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -0700118 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +0900119 **************************/
120 grouping link {
121 list node-edge-point {
122 uses node-edge-point-ref;
123 key 'topology-uuid node-uuid node-edge-point-uuid';
124 config false;
125 min-elements 2;
Toru Furusawa28988892017-10-30 17:28:40 -0700126 description "none";
127 }
Ai Hamano06163902018-12-06 09:18:20 +0900128 leaf-list layer-protocol-name {
129 type tapi-common:layer-protocol-name;
130 config false;
131 min-elements 1;
132 description "none";
133 }
134 leaf direction {
135 type tapi-common:forwarding-direction;
136 config false;
137 description "The directionality of the Link.
138 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
139 Is not present in more complex cases.";
140 }
141 container resilience-type {
142 uses resilience-type;
143 description "none";
144 }
145 uses tapi-common:resource-spec;
146 uses tapi-common:admin-state-pac;
147 uses tapi-common:capacity-pac;
148 uses transfer-cost-pac;
149 uses transfer-integrity-pac;
150 uses transfer-timing-pac;
151 uses risk-parameter-pac;
152 uses validation-pac;
153 uses layer-protocol-transition-pac;
154 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
155 }
156 grouping node {
157 list owned-node-edge-point {
158 key 'uuid';
159 config false;
160 uses node-edge-point;
161 description "none";
162 }
163 list aggregated-node-edge-point {
164 uses node-edge-point-ref;
165 key 'topology-uuid node-uuid node-edge-point-uuid';
166 config false;
167 description "none";
168 }
169 list node-rule-group {
170 key 'uuid';
171 uses node-rule-group;
172 description "none";
173 }
174 container encap-topology {
175 uses topology-ref;
176 config false;
177 description "none";
178 }
179 leaf-list layer-protocol-name {
180 type tapi-common:layer-protocol-name;
181 config false;
182 min-elements 1;
183 description "none";
184 }
185 uses tapi-common:resource-spec;
186 uses tapi-common:admin-state-pac;
187 uses tapi-common:capacity-pac;
188 uses transfer-cost-pac;
189 uses transfer-integrity-pac;
190 uses transfer-timing-pac;
191 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.
192 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). ";
193 }
194 grouping topology {
195 list node {
196 key 'uuid';
197 config false;
198 uses node;
199 description "none";
200 }
201 list link {
202 key 'uuid';
203 config false;
204 uses link;
205 description "none";
206 }
207 leaf-list layer-protocol-name {
208 type tapi-common:layer-protocol-name;
209 config false;
210 min-elements 1;
211 description "none";
212 }
213 uses tapi-common:resource-spec;
214 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.
215 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). ";
216 }
217 grouping layer-protocol-transition-pac {
218 leaf-list transitioned-layer-protocol-name {
219 type string;
220 min-elements 2;
221 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
222 }
223 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.
224 This abstraction is relevant when considering multi-layer routing.
225 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.
226 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
227 Links that included details in this Pac are often referred to as Transitional Links.";
228 }
229 grouping node-edge-point {
230 leaf layer-protocol-name {
231 type tapi-common:layer-protocol-name;
232 config false;
233 description "none";
234 }
235 leaf-list supported-cep-layer-protocol-qualifier {
236 type tapi-common:layer-protocol-qualifier;
237 min-elements 1;
238 description "none";
239 }
240 list aggregated-node-edge-point {
241 uses node-edge-point-ref;
242 key 'topology-uuid node-uuid node-edge-point-uuid';
243 config false;
244 description "none";
245 }
246 list mapped-service-interface-point {
247 uses tapi-common:service-interface-point-ref;
248 key 'service-interface-point-uuid';
249 config false;
250 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";
251 }
252 leaf link-port-direction {
253 type tapi-common:port-direction;
254 config false;
255 description "The orientation of defined flow at the LinkEnd.";
256 }
257 leaf link-port-role {
258 type tapi-common:port-role;
259 config false;
260 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. ";
261 }
262 uses tapi-common:resource-spec;
263 uses tapi-common:admin-state-pac;
264 uses tapi-common:termination-pac;
265 uses tapi-common:capacity-pac;
266 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
267 The structure of LTP supports all transport protocols including circuit and packet forms.";
268 }
269 grouping risk-parameter-pac {
270 list risk-characteristic {
271 key 'risk-characteristic-name';
272 config false;
273 min-elements 1;
274 uses risk-characteristic;
275 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
276 }
277 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
278 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.
279 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
280 The realization can be partitioned into segments which have some relevant common failure modes.
281 There is a risk of failure/degradation of each segment of the underlying realization.
282 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).
283 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.
284 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
285 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.
286 A segment has one or more risk characteristic.
287 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
288 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.";
289 }
290 grouping transfer-cost-pac {
291 list cost-characteristic {
292 key 'cost-name';
293 config false;
294 min-elements 1;
295 uses cost-characteristic;
296 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
297 }
298 description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
299 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
300 There may be many perspectives from which cost may be considered for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
301 Using an entity will incur a cost. ";
302 }
303 grouping transfer-integrity-pac {
304 leaf error-characteristic {
305 type string;
306 config false;
307 description "Describes the degree to which the signal propagated can be errored.
308 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
309 }
310 leaf loss-characteristic {
311 type string;
312 config false;
313 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
314 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
315 }
316 leaf repeat-delivery-characteristic {
317 type string;
318 config false;
319 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
320 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.";
321 }
322 leaf delivery-order-characteristic {
323 type string;
324 config false;
325 description "Describes the degree to which packets will be delivered out of sequence.
326 Does not apply to TDM as the TDM protocols maintain strict order.";
327 }
328 leaf unavailable-time-characteristic {
329 type string;
330 config false;
331 description "Describes the duration for which there may be no valid signal propagated.";
332 }
333 leaf server-integrity-process-characteristic {
334 type string;
335 config false;
336 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
337 }
338 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
339 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.
340 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.";
341 }
342 grouping transfer-timing-pac {
343 list latency-characteristic {
344 key 'traffic-property-name';
345 config false;
346 min-elements 1;
347 uses latency-characteristic;
348 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
349 }
350 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
351 }
352 grouping validation-pac {
353 list validation-mechanism {
354 key 'validation-mechanism';
355 config false;
356 min-elements 1;
357 uses validation-mechanism;
358 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
359 }
360 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
361 }
362 grouping network-topology-service {
363 list topology {
364 uses topology-ref;
365 key 'topology-uuid';
366 config false;
367 description "none";
368 }
369 uses tapi-common:service-spec;
370 description "none";
371 }
372 grouping topology-context {
373 container nw-topology-service {
374 config false;
375 uses network-topology-service;
376 description "none";
377 }
378 list topology {
379 key 'uuid';
380 config false;
381 uses topology;
382 description "none";
383 }
384 description "none";
385 }
386 grouping inter-rule-group {
387 list rule {
388 key 'local-id';
389 min-elements 1;
390 uses rule;
391 description "none";
392 }
393 list associated-node-rule-group {
394 uses node-rule-group-ref;
395 key 'topology-uuid node-uuid node-rule-group-uuid';
396 min-elements 2;
397 description "none";
398 }
399 uses tapi-common:resource-spec;
400 uses tapi-common:capacity-pac;
401 uses transfer-cost-pac;
402 uses transfer-timing-pac;
403 uses risk-parameter-pac;
404 description "none";
405 }
406 grouping node-rule-group {
407 list rule {
408 key 'local-id';
409 min-elements 1;
410 uses rule;
411 description "none";
412 }
413 list node-edge-point {
414 uses node-edge-point-ref;
415 key 'topology-uuid node-uuid node-edge-point-uuid';
416 min-elements 1;
417 description "none";
418 }
419 list composed-rule-group {
420 uses node-rule-group-ref;
421 key 'topology-uuid node-uuid node-rule-group-uuid';
422 description "none";
423 }
424 list inter-rule-group {
425 key 'uuid';
426 uses inter-rule-group;
427 description "none";
428 }
429 uses tapi-common:resource-spec;
430 uses tapi-common:capacity-pac;
431 uses transfer-cost-pac;
432 uses transfer-timing-pac;
433 uses risk-parameter-pac;
434 description "none";
435 }
436 grouping rule {
437 leaf rule-type {
438 type rule-type;
439 description "none";
440 }
441 leaf forwarding-rule {
442 type forwarding-rule;
443 description "none";
444 }
445 leaf override-priority {
446 type uint64;
447 description "none";
448 }
449 uses tapi-common:local-class;
450 description "none";
451 }
452
453 /**************************
454 * package type-definitions
455 **************************/
456 grouping cost-characteristic {
457 leaf cost-name {
458 type string;
459 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.";
460 }
461 leaf cost-value {
462 type string;
463 description "The specific cost.";
464 }
465 leaf cost-algorithm {
466 type string;
467 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
468 }
469 description "The information for a particular cost characteristic.";
470 }
471 grouping latency-characteristic {
472 leaf traffic-property-name {
473 type string;
474 description "The identifier of the specific traffic property to which the queuing latency applies.";
475 }
476 leaf fixed-latency-characteristic {
477 type string;
478 config false;
479 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";
480 }
481 leaf queing-latency-characteristic {
482 type string;
483 description "The specific queuing latency for the traffic property.";
484 }
485 leaf jitter-characteristic {
486 type string;
487 config false;
488 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
489 Applies to TDM systems (and not packet).";
490 }
491 leaf wander-characteristic {
492 type string;
493 config false;
494 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
495 Applies to TDM systems (and not packet).";
496 }
497 description "Provides information on latency characteristic for a particular stated trafficProperty.";
498 }
499 grouping risk-characteristic {
500 leaf risk-characteristic-name {
501 type string;
502 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
503 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).
504 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
505 }
506 leaf-list risk-identifier-list {
507 type string;
508 min-elements 1;
509 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.";
510 }
511 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
512 }
513 grouping validation-mechanism {
514 leaf validation-mechanism {
515 type string;
516 description "Name of mechanism used to validate adjacency";
517 }
518 leaf layer-protocol-adjacency-validated {
519 type string;
520 description "State of validatiion";
521 }
522 leaf validation-robustness {
523 type string;
524 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
525 }
526 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
527 }
528 typedef forwarding-rule {
529 type enumeration {
530 enum MAY_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700531 description "none";
532 }
Ai Hamano06163902018-12-06 09:18:20 +0900533 enum MUST_FORWARD_ACROSS_GROUP {
534 description "none";
535 }
536 enum CANNOT_FORWARD_ACROSS_GROUP {
537 description "none";
538 }
539 enum NO_STATEMENT_ON_FORWARDING {
540 description "none";
541 }
542 }
543 description "none";
544 }
545 typedef rule-type {
546 type enumeration {
547 enum FORWARDING {
548 description "none";
549 }
550 enum CAPACITY {
551 description "none";
552 }
553 enum COST {
554 description "none";
555 }
556 enum TIMING {
557 description "none";
558 }
559 enum RISK {
560 description "none";
561 }
562 enum GROUPING {
563 description "none";
564 }
565 }
566 description "none";
567 }
568 grouping resilience-type {
569 leaf restoration-policy {
570 type restoration-policy;
571 description "none";
572 }
573 leaf protection-type {
574 type protection-type;
575 description "none";
576 }
577 description "none";
578 }
579 typedef restoration-policy {
580 type enumeration {
581 enum PER_DOMAIN_RESTORATION {
582 description "none";
583 }
584 enum END_TO_END_RESTORATION {
585 description "none";
586 }
587 enum NA {
588 description "none";
589 }
590 }
591 description "none";
592 }
593 typedef protection-type {
594 type enumeration {
595 enum NO_PROTECTON {
596 description "none";
597 }
598 enum ONE_PLUS_ONE_PROTECTION {
599 description "none";
600 }
601 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
602 description "none";
603 }
604 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
605 description "none";
606 }
607 enum ONE_FOR_ONE_PROTECTION {
608 description "none";
609 }
610 enum DYNAMIC_RESTORATION {
611 description "none";
612 }
613 enum PRE_COMPUTED_RESTORATION {
614 description "none";
615 }
616 }
617 description "none";
618 }
619
620 /**************************
621 * package interfaces
622 **************************/
623 rpc get-topology-details {
624 description "none";
625 input {
626 leaf topology-id-or-name {
627 type string;
628 description "none";
629 }
630 }
631 output {
632 container topology {
Toru Furusawa28988892017-10-30 17:28:40 -0700633 uses topology;
634 description "none";
635 }
Toru Furusawa28988892017-10-30 17:28:40 -0700636 }
Ai Hamano06163902018-12-06 09:18:20 +0900637 }
638 rpc get-node-details {
639 description "none";
640 input {
641 leaf topology-id-or-name {
642 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700643 description "none";
644 }
Ai Hamano06163902018-12-06 09:18:20 +0900645 leaf node-id-or-name {
646 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700647 description "none";
648 }
Toru Furusawa28988892017-10-30 17:28:40 -0700649 }
Ai Hamano06163902018-12-06 09:18:20 +0900650 output {
651 container node {
652 uses node;
Toru Furusawa28988892017-10-30 17:28:40 -0700653 description "none";
654 }
Ai Hamano06163902018-12-06 09:18:20 +0900655 }
656 }
657 rpc get-node-edge-point-details {
658 description "none";
659 input {
660 leaf topology-id-or-name {
661 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700662 description "none";
663 }
Ai Hamano06163902018-12-06 09:18:20 +0900664 leaf node-id-or-name {
665 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700666 description "none";
667 }
Ai Hamano06163902018-12-06 09:18:20 +0900668 leaf ep-id-or-name {
669 type string;
670 description "none";
671 }
672 }
673 output {
674 container node-edge-point {
675 uses node-edge-point;
676 description "none";
677 }
678 }
679 }
680 rpc get-link-details {
681 description "none";
682 input {
683 leaf topology-id-or-name {
684 type string;
685 description "none";
686 }
687 leaf link-id-or-name {
688 type string;
689 description "none";
690 }
691 }
692 output {
693 container link {
694 uses link;
695 description "none";
696 }
697 }
698 }
699 rpc get-topology-list {
700 description "none";
701 output {
702 list topology {
Toru Furusawa28988892017-10-30 17:28:40 -0700703 key 'uuid';
Ai Hamano06163902018-12-06 09:18:20 +0900704 uses topology;
Toru Furusawa28988892017-10-30 17:28:40 -0700705 description "none";
706 }
Toru Furusawa28988892017-10-30 17:28:40 -0700707 }
Ai Hamano06163902018-12-06 09:18:20 +0900708 }
Toru Furusawa28988892017-10-30 17:28:40 -0700709}