blob: db6cabcf714d4e5e571108f08cffafa0ce3a16c8 [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";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -08008 contact "
9 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
10 Project List: <mailto:transport-api@opennetworking.org>
11 Editor: Karthik Sethuraman
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080012 <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 HIGUCHI348bba72018-03-08 13:46:48 -080018 revision 2018-03-07 {
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 version .
21 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
22 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
23 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
24 <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070025 }
26 augment "/tapi-common:context" {
27 uses topology-context;
28 description "Augments the base TAPI Context with TopologyService information";
29 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080030
31 /*************************
32 * definitions of refrences
33 *************************/
34
35 grouping topology-ref {
36 leaf topology-id {
37 type leafref {
38 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
39 }
40 }
41 }
42
43 grouping link-ref {
44 uses topology-ref;
45 leaf link-id {
46 type leafref {
47 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
48 }
49 }
50 }
51
52 grouping node-ref {
53 uses topology-ref;
54 leaf node-id {
55 type leafref {
56 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
57 }
58 }
59 }
60
61 grouping owned-node-edge-point-ref {
62 uses node-ref;
63 leaf owned-node-edge-point-id {
64 type leafref {
65 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
66 }
67 }
68 }
69
70 grouping node-rule-group-ref {
71 uses node-ref;
72 leaf node-rule-group-id {
73 type leafref {
74 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
75 }
76 }
77 }
78
Toru Furusawa28988892017-10-30 17:28:40 -070079 /***********************
80 * package object-classes
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080081 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070082 grouping link {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080083 list node-edge-point {
84 uses owned-node-edge-point-ref;
85 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -070086 config false;
87 min-elements 2;
88 description "none";
89 }
Toru Furusawa28988892017-10-30 17:28:40 -070090 leaf-list layer-protocol-name {
91 type tapi-common:layer-protocol-name;
92 config false;
93 min-elements 1;
94 description "none";
95 }
96 leaf direction {
97 type tapi-common:forwarding-direction;
98 config false;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080099 description "The directionality of the Link.
100 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
Toru Furusawa28988892017-10-30 17:28:40 -0700101 Is not present in more complex cases.";
102 }
103 container resilience-type {
104 uses resilience-type;
105 description "none";
106 }
107 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500108 uses tapi-common:admin-state-pac;
109 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800110 uses transfer-cost-pac;
111 uses transfer-integrity-pac;
112 uses transfer-timing-pac;
113 uses risk-parameter-pac;
114 uses validation-pac;
115 uses layer-protocol-transition-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700116 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
117 }
118 grouping node {
119 list owned-node-edge-point {
120 key 'uuid';
121 config false;
122 uses node-edge-point;
123 description "none";
124 }
125 leaf-list aggregated-node-edge-point {
126 type leafref {
127 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
128 }
129 config false;
130 description "none";
131 }
132 list node-rule-group {
133 key 'uuid';
134 uses node-rule-group;
135 description "none";
136 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800137 container encap-topology {
138 uses topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700139 config false;
140 description "none";
141 }
Toru Furusawa28988892017-10-30 17:28:40 -0700142 leaf-list layer-protocol-name {
143 type tapi-common:layer-protocol-name;
144 config false;
145 min-elements 1;
146 description "none";
147 }
148 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500149 uses tapi-common:admin-state-pac;
150 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800151 uses transfer-cost-pac;
152 uses transfer-integrity-pac;
153 uses transfer-timing-pac;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800154 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 Furusawa28988892017-10-30 17:28:40 -0700155 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). ";
156 }
157 grouping topology {
158 list node {
159 key 'uuid';
160 config false;
161 uses node;
162 description "none";
163 }
164 list link {
165 key 'uuid';
166 config false;
167 uses link;
168 description "none";
169 }
170 leaf-list layer-protocol-name {
171 type tapi-common:layer-protocol-name;
172 config false;
173 min-elements 1;
174 description "none";
175 }
176 uses tapi-common:resource-spec;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800177 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 Furusawa28988892017-10-30 17:28:40 -0700178 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). ";
179 }
180 grouping layer-protocol-transition-pac {
181 leaf-list transitioned-layer-protocol-name {
182 type string;
183 min-elements 2;
184 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
185 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800186 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.
187 This abstraction is relevant when considering multi-layer routing.
Toru Furusawa28988892017-10-30 17:28:40 -0700188 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.
189 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
190 Links that included details in this Pac are often referred to as Transitional Links.";
191 }
192 grouping node-edge-point {
wu6a418d22018-02-02 01:49:21 -0500193 leaf layer-protocol-name {
194 type tapi-common:layer-protocol-name;
Toru Furusawa28988892017-10-30 17:28:40 -0700195 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700196 description "none";
197 }
198 leaf-list aggregated-node-edge-point {
199 type leafref {
200 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
201 }
202 config false;
203 description "none";
204 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800205 list mapped-service-interface-point {
206 uses tapi-common:service-interface-point-ref;
207 key 'service-interface-point-id';
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800208 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700209 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";
210 }
Toru Furusawa28988892017-10-30 17:28:40 -0700211 leaf link-port-direction {
212 type tapi-common:port-direction;
213 config false;
214 description "The orientation of defined flow at the LinkEnd.";
215 }
216 leaf link-port-role {
217 type tapi-common:port-role;
218 config false;
219 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. ";
220 }
221 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500222 uses tapi-common:admin-state-pac;
223 uses tapi-common:termination-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800224 uses tapi-common:capacity-pac;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800225 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
Toru Furusawa28988892017-10-30 17:28:40 -0700226 The structure of LTP supports all transport protocols including circuit and packet forms.";
227 }
228 grouping risk-parameter-pac {
229 list risk-characteristic {
230 key 'risk-characteristic-name';
231 config false;
232 min-elements 1;
233 uses risk-characteristic;
234 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
235 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800236 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
Toru Furusawa28988892017-10-30 17:28:40 -0700237 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.
238 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
239 The realization can be partitioned into segments which have some relevant common failure modes.
240 There is a risk of failure/degradation of each segment of the underlying realization.
241 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).
242 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.
243 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
244 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.
245 A segment has one or more risk characteristic.
246 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
247 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.";
248 }
249 grouping transfer-cost-pac {
250 list cost-characteristic {
251 key 'cost-name';
252 config false;
253 min-elements 1;
254 uses cost-characteristic;
255 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
256 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800257 description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
Toru Furusawa28988892017-10-30 17:28:40 -0700258 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800259 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 Furusawa28988892017-10-30 17:28:40 -0700260 Using an entity will incur a cost. ";
261 }
262 grouping transfer-integrity-pac {
263 leaf error-characteristic {
264 type string;
265 config false;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800266 description "Describes the degree to which the signal propagated can be errored.
Toru Furusawa28988892017-10-30 17:28:40 -0700267 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
268 }
269 leaf loss-characteristic {
270 type string;
271 config false;
272 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
273 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
274 }
275 leaf repeat-delivery-characteristic {
276 type string;
277 config false;
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800278 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
Toru Furusawa28988892017-10-30 17:28:40 -0700279 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.";
280 }
281 leaf delivery-order-characteristic {
282 type string;
283 config false;
284 description "Describes the degree to which packets will be delivered out of sequence.
285 Does not apply to TDM as the TDM protocols maintain strict order.";
286 }
287 leaf unavailable-time-characteristic {
288 type string;
289 config false;
290 description "Describes the duration for which there may be no valid signal propagated.";
291 }
292 leaf server-integrity-process-characteristic {
293 type string;
294 config false;
295 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
296 }
297 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
298 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.
299 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.";
300 }
301 grouping transfer-timing-pac {
302 list latency-characteristic {
303 key 'traffic-property-name';
304 config false;
305 min-elements 1;
306 uses latency-characteristic;
307 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
308 }
309 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
310 }
311 grouping validation-pac {
312 list validation-mechanism {
313 key 'validation-mechanism';
314 config false;
315 min-elements 1;
316 uses validation-mechanism;
317 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
318 }
319 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
320 }
321 grouping network-topology-service {
322 leaf-list topology {
323 type leafref {
324 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
325 }
326 config false;
327 description "none";
328 }
329 uses tapi-common:service-spec;
330 description "none";
331 }
332 grouping topology-context {
333 container nw-topology-service {
334 config false;
335 uses network-topology-service;
336 description "none";
337 }
338 list topology {
339 key 'uuid';
340 config false;
341 uses topology;
342 description "none";
343 }
344 description "none";
345 }
346 grouping inter-rule-group {
347 list rule {
348 key 'local-id';
349 min-elements 1;
350 uses rule;
351 description "none";
352 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800353 list associated-node-rule-group {
354 uses node-rule-group-ref;
355 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700356 min-elements 2;
357 description "none";
358 }
Toru Furusawa28988892017-10-30 17:28:40 -0700359 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500360 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800361 uses transfer-cost-pac;
362 uses transfer-timing-pac;
363 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700364 description "none";
365 }
366 grouping node-rule-group {
367 list rule {
368 key 'local-id';
369 min-elements 1;
370 uses rule;
371 description "none";
372 }
373 leaf-list node-edge-point {
374 type leafref {
375 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
376 }
377 min-elements 1;
378 description "none";
379 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800380 list composed-rule-group {
381 uses node-rule-group-ref;
382 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700383 description "none";
384 }
385 list inter-rule-group {
386 key 'uuid';
387 uses inter-rule-group;
388 description "none";
389 }
Toru Furusawa28988892017-10-30 17:28:40 -0700390 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500391 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800392 uses transfer-cost-pac;
393 uses transfer-timing-pac;
394 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700395 description "none";
396 }
397 grouping rule {
398 leaf rule-type {
399 type rule-type;
400 description "none";
401 }
402 leaf forwarding-rule {
403 type forwarding-rule;
404 description "none";
405 }
406 leaf override-priority {
407 type uint64;
408 description "none";
409 }
410 uses tapi-common:local-class;
411 description "none";
412 }
413
414 /***********************
415 * package type-definitions
416 **********************/
417 grouping cost-characteristic {
418 leaf cost-name {
419 type string;
420 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.";
421 }
422 leaf cost-value {
423 type string;
424 description "The specific cost.";
425 }
426 leaf cost-algorithm {
427 type string;
428 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
429 }
430 description "The information for a particular cost characteristic.";
431 }
432 grouping latency-characteristic {
433 leaf traffic-property-name {
434 type string;
435 description "The identifier of the specific traffic property to which the queuing latency applies.";
436 }
437 leaf fixed-latency-characteristic {
438 type string;
439 config false;
440 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";
441 }
442 leaf queing-latency-characteristic {
443 type string;
444 description "The specific queuing latency for the traffic property.";
445 }
446 leaf jitter-characteristic {
447 type string;
448 config false;
449 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
450 Applies to TDM systems (and not packet).";
451 }
452 leaf wander-characteristic {
453 type string;
454 config false;
455 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
456 Applies to TDM systems (and not packet).";
457 }
458 description "Provides information on latency characteristic for a particular stated trafficProperty.";
459 }
460 grouping risk-characteristic {
461 leaf risk-characteristic-name {
462 type string;
463 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
464 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).
465 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
466 }
467 leaf-list risk-identifier-list {
468 type string;
469 min-elements 1;
470 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.";
471 }
472 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
473 }
474 grouping validation-mechanism {
475 leaf validation-mechanism {
476 type string;
477 description "Name of mechanism used to validate adjacency";
478 }
479 leaf layer-protocol-adjacency-validated {
480 type string;
481 description "State of validatiion";
482 }
483 leaf validation-robustness {
484 type string;
485 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
486 }
487 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
488 }
489 typedef forwarding-rule {
490 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500491 enum MAY_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700492 description "none";
493 }
wu6a418d22018-02-02 01:49:21 -0500494 enum MUST_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700495 description "none";
496 }
wu6a418d22018-02-02 01:49:21 -0500497 enum CANNOT_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700498 description "none";
499 }
wu6a418d22018-02-02 01:49:21 -0500500 enum NO_STATEMENT_ON_FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700501 description "none";
502 }
503 }
504 description "none";
505 }
506 typedef rule-type {
507 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500508 enum FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700509 description "none";
510 }
wu6a418d22018-02-02 01:49:21 -0500511 enum CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700512 description "none";
513 }
wu6a418d22018-02-02 01:49:21 -0500514 enum COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700515 description "none";
516 }
wu6a418d22018-02-02 01:49:21 -0500517 enum TIMING {
Toru Furusawa28988892017-10-30 17:28:40 -0700518 description "none";
519 }
wu6a418d22018-02-02 01:49:21 -0500520 enum RISK {
Toru Furusawa28988892017-10-30 17:28:40 -0700521 description "none";
522 }
wu6a418d22018-02-02 01:49:21 -0500523 enum GROUPING {
Toru Furusawa28988892017-10-30 17:28:40 -0700524 description "none";
525 }
526 }
527 description "none";
528 }
529 grouping resilience-type {
530 leaf restoration-policy {
531 type restoration-policy;
532 description "none";
533 }
534 leaf protection-type {
535 type protection-type;
536 description "none";
537 }
538 description "none";
539 }
540 typedef restoration-policy {
541 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500542 enum PER_DOMAIN_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700543 description "none";
544 }
wu6a418d22018-02-02 01:49:21 -0500545 enum END_TO_END_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700546 description "none";
547 }
wu6a418d22018-02-02 01:49:21 -0500548 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700549 description "none";
550 }
551 }
552 description "none";
553 }
554 typedef protection-type {
555 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500556 enum NO_PROTECTON {
Toru Furusawa28988892017-10-30 17:28:40 -0700557 description "none";
558 }
wu6a418d22018-02-02 01:49:21 -0500559 enum ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700560 description "none";
561 }
wu6a418d22018-02-02 01:49:21 -0500562 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700563 description "none";
564 }
wu6a418d22018-02-02 01:49:21 -0500565 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700566 description "none";
567 }
wu6a418d22018-02-02 01:49:21 -0500568 enum ONE_FOR_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700569 description "none";
570 }
wu6a418d22018-02-02 01:49:21 -0500571 enum DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700572 description "none";
573 }
wu6a418d22018-02-02 01:49:21 -0500574 enum PRE_COMPUTED_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700575 description "none";
576 }
577 }
578 description "none";
579 }
580
581 /***********************
582 * package interfaces
583 **********************/
584 rpc get-topology-details {
585 description "none";
586 input {
587 leaf topology-id-or-name {
588 type string;
589 description "none";
590 }
591 }
592 output {
593 container topology {
594 uses topology;
595 description "none";
596 }
597 }
598 }
599 rpc get-node-details {
600 description "none";
601 input {
602 leaf topology-id-or-name {
603 type string;
604 description "none";
605 }
606 leaf node-id-or-name {
607 type string;
608 description "none";
609 }
610 }
611 output {
612 container node {
613 uses node;
614 description "none";
615 }
616 }
617 }
618 rpc get-node-edge-point-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 leaf ep-id-or-name {
630 type string;
631 description "none";
632 }
633 }
634 output {
635 container node-edge-point {
636 uses node-edge-point;
637 description "none";
638 }
639 }
640 }
641 rpc get-link-details {
642 description "none";
643 input {
644 leaf topology-id-or-name {
645 type string;
646 description "none";
647 }
648 leaf link-id-or-name {
649 type string;
650 description "none";
651 }
652 }
653 output {
654 container link {
655 uses link;
656 description "none";
657 }
658 }
659 }
660 rpc get-topology-list {
661 description "none";
662 output {
663 list topology {
664 uses topology;
665 description "none";
666 }
667 }
668 }
669
670}