blob: ce4ae27537520ff5ae612aff3ee1c5797cf50edc [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 HIGUCHI7f165b12018-03-25 19:05:29 -07008 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 {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070019 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>
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080022 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070023 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080024 <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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070040 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080041 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070042 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080043 }
44
45 grouping link-ref {
46 uses topology-ref;
47 leaf link-id {
48 type leafref {
49 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
50 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070051 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080052 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070053 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080054 }
55
56 grouping node-ref {
57 uses topology-ref;
58 leaf node-id {
59 type leafref {
60 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
61 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070062 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080063 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070064 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080065 }
66
67 grouping owned-node-edge-point-ref {
68 uses node-ref;
69 leaf owned-node-edge-point-id {
70 type leafref {
71 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
72 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070073 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080074 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070075 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080076 }
77
78 grouping node-rule-group-ref {
79 uses node-ref;
80 leaf node-rule-group-id {
81 type leafref {
82 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
83 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070084 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080085 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070086 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080087 }
88
Toru Furusawa28988892017-10-30 17:28:40 -070089 /***********************
90 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070091 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070092 grouping link {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080093 list node-edge-point {
94 uses owned-node-edge-point-ref;
95 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -070096 config false;
97 min-elements 2;
98 description "none";
99 }
Toru Furusawa28988892017-10-30 17:28:40 -0700100 leaf-list layer-protocol-name {
101 type tapi-common:layer-protocol-name;
102 config false;
103 min-elements 1;
104 description "none";
105 }
106 leaf direction {
107 type tapi-common:forwarding-direction;
108 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700109 description "The directionality of the Link.
110 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 -0700111 Is not present in more complex cases.";
112 }
113 container resilience-type {
114 uses resilience-type;
115 description "none";
116 }
117 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500118 uses tapi-common:admin-state-pac;
119 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800120 uses transfer-cost-pac;
121 uses transfer-integrity-pac;
122 uses transfer-timing-pac;
123 uses risk-parameter-pac;
124 uses validation-pac;
125 uses layer-protocol-transition-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700126 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
127 }
128 grouping node {
129 list owned-node-edge-point {
130 key 'uuid';
131 config false;
132 uses node-edge-point;
133 description "none";
134 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700135 list aggregated-node-edge-point {
136 uses owned-node-edge-point-ref;
137 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700138 config false;
139 description "none";
140 }
141 list node-rule-group {
142 key 'uuid';
143 uses node-rule-group;
144 description "none";
145 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800146 container encap-topology {
147 uses topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700148 config false;
149 description "none";
150 }
Toru Furusawa28988892017-10-30 17:28:40 -0700151 leaf-list layer-protocol-name {
152 type tapi-common:layer-protocol-name;
153 config false;
154 min-elements 1;
155 description "none";
156 }
157 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500158 uses tapi-common:admin-state-pac;
159 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800160 uses transfer-cost-pac;
161 uses transfer-integrity-pac;
162 uses transfer-timing-pac;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700163 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 -0700164 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). ";
165 }
166 grouping topology {
167 list node {
168 key 'uuid';
169 config false;
170 uses node;
171 description "none";
172 }
173 list link {
174 key 'uuid';
175 config false;
176 uses link;
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;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700186 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 -0700187 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). ";
188 }
189 grouping layer-protocol-transition-pac {
190 leaf-list transitioned-layer-protocol-name {
191 type string;
192 min-elements 2;
193 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
194 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700195 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.
196 This abstraction is relevant when considering multi-layer routing.
Toru Furusawa28988892017-10-30 17:28:40 -0700197 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.
198 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
199 Links that included details in this Pac are often referred to as Transitional Links.";
200 }
201 grouping node-edge-point {
wu6a418d22018-02-02 01:49:21 -0500202 leaf layer-protocol-name {
203 type tapi-common:layer-protocol-name;
Toru Furusawa28988892017-10-30 17:28:40 -0700204 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700205 description "none";
206 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700207 list aggregated-node-edge-point {
208 uses owned-node-edge-point-ref;
209 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700210 config false;
211 description "none";
212 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800213 list mapped-service-interface-point {
214 uses tapi-common:service-interface-point-ref;
215 key 'service-interface-point-id';
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800216 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700217 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";
218 }
Toru Furusawa28988892017-10-30 17:28:40 -0700219 leaf link-port-direction {
220 type tapi-common:port-direction;
221 config false;
222 description "The orientation of defined flow at the LinkEnd.";
223 }
224 leaf link-port-role {
225 type tapi-common:port-role;
226 config false;
227 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. ";
228 }
229 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500230 uses tapi-common:admin-state-pac;
231 uses tapi-common:termination-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800232 uses tapi-common:capacity-pac;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700233 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 -0700234 The structure of LTP supports all transport protocols including circuit and packet forms.";
235 }
236 grouping risk-parameter-pac {
237 list risk-characteristic {
238 key 'risk-characteristic-name';
239 config false;
240 min-elements 1;
241 uses risk-characteristic;
242 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
243 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700244 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
Toru Furusawa28988892017-10-30 17:28:40 -0700245 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.
246 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
247 The realization can be partitioned into segments which have some relevant common failure modes.
248 There is a risk of failure/degradation of each segment of the underlying realization.
249 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).
250 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.
251 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
252 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.
253 A segment has one or more risk characteristic.
254 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
255 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.";
256 }
257 grouping transfer-cost-pac {
258 list cost-characteristic {
259 key 'cost-name';
260 config false;
261 min-elements 1;
262 uses cost-characteristic;
263 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
264 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700265 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 -0700266 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700267 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 -0700268 Using an entity will incur a cost. ";
269 }
270 grouping transfer-integrity-pac {
271 leaf error-characteristic {
272 type string;
273 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700274 description "Describes the degree to which the signal propagated can be errored.
Toru Furusawa28988892017-10-30 17:28:40 -0700275 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
276 }
277 leaf loss-characteristic {
278 type string;
279 config false;
280 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
281 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
282 }
283 leaf repeat-delivery-characteristic {
284 type string;
285 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700286 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 -0700287 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.";
288 }
289 leaf delivery-order-characteristic {
290 type string;
291 config false;
292 description "Describes the degree to which packets will be delivered out of sequence.
293 Does not apply to TDM as the TDM protocols maintain strict order.";
294 }
295 leaf unavailable-time-characteristic {
296 type string;
297 config false;
298 description "Describes the duration for which there may be no valid signal propagated.";
299 }
300 leaf server-integrity-process-characteristic {
301 type string;
302 config false;
303 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
304 }
305 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
306 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.
307 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.";
308 }
309 grouping transfer-timing-pac {
310 list latency-characteristic {
311 key 'traffic-property-name';
312 config false;
313 min-elements 1;
314 uses latency-characteristic;
315 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
316 }
317 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
318 }
319 grouping validation-pac {
320 list validation-mechanism {
321 key 'validation-mechanism';
322 config false;
323 min-elements 1;
324 uses validation-mechanism;
325 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
326 }
327 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
328 }
329 grouping network-topology-service {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700330 list topology {
331 uses topology-ref;
332 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700333 config false;
334 description "none";
335 }
336 uses tapi-common:service-spec;
337 description "none";
338 }
339 grouping topology-context {
340 container nw-topology-service {
341 config false;
342 uses network-topology-service;
343 description "none";
344 }
345 list topology {
346 key 'uuid';
347 config false;
348 uses topology;
349 description "none";
350 }
351 description "none";
352 }
353 grouping inter-rule-group {
354 list rule {
355 key 'local-id';
356 min-elements 1;
357 uses rule;
358 description "none";
359 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800360 list associated-node-rule-group {
361 uses node-rule-group-ref;
362 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700363 min-elements 2;
364 description "none";
365 }
Toru Furusawa28988892017-10-30 17:28:40 -0700366 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500367 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800368 uses transfer-cost-pac;
369 uses transfer-timing-pac;
370 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700371 description "none";
372 }
373 grouping node-rule-group {
374 list rule {
375 key 'local-id';
376 min-elements 1;
377 uses rule;
378 description "none";
379 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700380 list node-edge-point {
381 uses owned-node-edge-point-ref;
382 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700383 min-elements 1;
384 description "none";
385 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800386 list composed-rule-group {
387 uses node-rule-group-ref;
388 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700389 description "none";
390 }
391 list inter-rule-group {
392 key 'uuid';
393 uses inter-rule-group;
394 description "none";
395 }
Toru Furusawa28988892017-10-30 17:28:40 -0700396 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500397 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800398 uses transfer-cost-pac;
399 uses transfer-timing-pac;
400 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700401 description "none";
402 }
403 grouping rule {
404 leaf rule-type {
405 type rule-type;
406 description "none";
407 }
408 leaf forwarding-rule {
409 type forwarding-rule;
410 description "none";
411 }
412 leaf override-priority {
413 type uint64;
414 description "none";
415 }
416 uses tapi-common:local-class;
417 description "none";
418 }
419
420 /***********************
421 * package type-definitions
422 **********************/
423 grouping cost-characteristic {
424 leaf cost-name {
425 type string;
426 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.";
427 }
428 leaf cost-value {
429 type string;
430 description "The specific cost.";
431 }
432 leaf cost-algorithm {
433 type string;
434 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
435 }
436 description "The information for a particular cost characteristic.";
437 }
438 grouping latency-characteristic {
439 leaf traffic-property-name {
440 type string;
441 description "The identifier of the specific traffic property to which the queuing latency applies.";
442 }
443 leaf fixed-latency-characteristic {
444 type string;
445 config false;
446 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";
447 }
448 leaf queing-latency-characteristic {
449 type string;
450 description "The specific queuing latency for the traffic property.";
451 }
452 leaf jitter-characteristic {
453 type string;
454 config false;
455 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
456 Applies to TDM systems (and not packet).";
457 }
458 leaf wander-characteristic {
459 type string;
460 config false;
461 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
462 Applies to TDM systems (and not packet).";
463 }
464 description "Provides information on latency characteristic for a particular stated trafficProperty.";
465 }
466 grouping risk-characteristic {
467 leaf risk-characteristic-name {
468 type string;
469 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
470 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).
471 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
472 }
473 leaf-list risk-identifier-list {
474 type string;
475 min-elements 1;
476 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.";
477 }
478 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
479 }
480 grouping validation-mechanism {
481 leaf validation-mechanism {
482 type string;
483 description "Name of mechanism used to validate adjacency";
484 }
485 leaf layer-protocol-adjacency-validated {
486 type string;
487 description "State of validatiion";
488 }
489 leaf validation-robustness {
490 type string;
491 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
492 }
493 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
494 }
495 typedef forwarding-rule {
496 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500497 enum MAY_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700498 description "none";
499 }
wu6a418d22018-02-02 01:49:21 -0500500 enum MUST_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700501 description "none";
502 }
wu6a418d22018-02-02 01:49:21 -0500503 enum CANNOT_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700504 description "none";
505 }
wu6a418d22018-02-02 01:49:21 -0500506 enum NO_STATEMENT_ON_FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700507 description "none";
508 }
509 }
510 description "none";
511 }
512 typedef rule-type {
513 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500514 enum FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700515 description "none";
516 }
wu6a418d22018-02-02 01:49:21 -0500517 enum CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700518 description "none";
519 }
wu6a418d22018-02-02 01:49:21 -0500520 enum COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700521 description "none";
522 }
wu6a418d22018-02-02 01:49:21 -0500523 enum TIMING {
Toru Furusawa28988892017-10-30 17:28:40 -0700524 description "none";
525 }
wu6a418d22018-02-02 01:49:21 -0500526 enum RISK {
Toru Furusawa28988892017-10-30 17:28:40 -0700527 description "none";
528 }
wu6a418d22018-02-02 01:49:21 -0500529 enum GROUPING {
Toru Furusawa28988892017-10-30 17:28:40 -0700530 description "none";
531 }
532 }
533 description "none";
534 }
535 grouping resilience-type {
536 leaf restoration-policy {
537 type restoration-policy;
538 description "none";
539 }
540 leaf protection-type {
541 type protection-type;
542 description "none";
543 }
544 description "none";
545 }
546 typedef restoration-policy {
547 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500548 enum PER_DOMAIN_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700549 description "none";
550 }
wu6a418d22018-02-02 01:49:21 -0500551 enum END_TO_END_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700552 description "none";
553 }
wu6a418d22018-02-02 01:49:21 -0500554 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700555 description "none";
556 }
557 }
558 description "none";
559 }
560 typedef protection-type {
561 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500562 enum NO_PROTECTON {
Toru Furusawa28988892017-10-30 17:28:40 -0700563 description "none";
564 }
wu6a418d22018-02-02 01:49:21 -0500565 enum ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700566 description "none";
567 }
wu6a418d22018-02-02 01:49:21 -0500568 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700569 description "none";
570 }
wu6a418d22018-02-02 01:49:21 -0500571 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700572 description "none";
573 }
wu6a418d22018-02-02 01:49:21 -0500574 enum ONE_FOR_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700575 description "none";
576 }
wu6a418d22018-02-02 01:49:21 -0500577 enum DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700578 description "none";
579 }
wu6a418d22018-02-02 01:49:21 -0500580 enum PRE_COMPUTED_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700581 description "none";
582 }
583 }
584 description "none";
585 }
586
587 /***********************
588 * package interfaces
589 **********************/
590 rpc get-topology-details {
591 description "none";
592 input {
593 leaf topology-id-or-name {
594 type string;
595 description "none";
596 }
597 }
598 output {
599 container topology {
600 uses topology;
601 description "none";
602 }
603 }
604 }
605 rpc get-node-details {
606 description "none";
607 input {
608 leaf topology-id-or-name {
609 type string;
610 description "none";
611 }
612 leaf node-id-or-name {
613 type string;
614 description "none";
615 }
616 }
617 output {
618 container node {
619 uses node;
620 description "none";
621 }
622 }
623 }
624 rpc get-node-edge-point-details {
625 description "none";
626 input {
627 leaf topology-id-or-name {
628 type string;
629 description "none";
630 }
631 leaf node-id-or-name {
632 type string;
633 description "none";
634 }
635 leaf ep-id-or-name {
636 type string;
637 description "none";
638 }
639 }
640 output {
641 container node-edge-point {
642 uses node-edge-point;
643 description "none";
644 }
645 }
646 }
647 rpc get-link-details {
648 description "none";
649 input {
650 leaf topology-id-or-name {
651 type string;
652 description "none";
653 }
654 leaf link-id-or-name {
655 type string;
656 description "none";
657 }
658 }
659 output {
660 container link {
661 uses link;
662 description "none";
663 }
664 }
665 }
666 rpc get-topology-list {
667 description "none";
668 output {
669 list topology {
670 uses topology;
671 description "none";
672 }
673 }
674 }
675
676}