blob: 3a21d946fbeb2b1aacdfc35b6946ad0c3f7dd67b [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 HIGUCHIe1ca23f2018-04-06 10:05:45 -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.
21 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
22 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
23 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
24 }
25 revision 2018-02-16 {
26 description "ONF Transport API version 2.0.1
27 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
28 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
29 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
30 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
31 }
32 revision 2018-01-02 {
33 description "ONF Transport API version 2.0.0
34 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
35 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
36 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
37 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070038 }
39 augment "/tapi-common:context" {
40 uses topology-context;
41 description "Augments the base TAPI Context with TopologyService information";
42 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080043
44 /*************************
45 * definitions of refrences
46 *************************/
47
48 grouping topology-ref {
49 leaf topology-id {
50 type leafref {
51 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
52 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070053 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080054 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070055 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080056 }
57
58 grouping link-ref {
59 uses topology-ref;
60 leaf link-id {
61 type leafref {
62 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
63 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070064 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080065 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070066 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080067 }
68
69 grouping node-ref {
70 uses topology-ref;
71 leaf node-id {
72 type leafref {
73 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
74 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070075 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080076 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070077 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080078 }
79
80 grouping owned-node-edge-point-ref {
81 uses node-ref;
82 leaf owned-node-edge-point-id {
83 type leafref {
84 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
85 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070086 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080087 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070088 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080089 }
90
91 grouping node-rule-group-ref {
92 uses node-ref;
93 leaf node-rule-group-id {
94 type leafref {
95 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
96 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070097 description "none";
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 }
101
Toru Furusawa28988892017-10-30 17:28:40 -0700102 /***********************
103 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700104 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -0700105 grouping link {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800106 list node-edge-point {
107 uses owned-node-edge-point-ref;
108 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700109 config false;
110 min-elements 2;
111 description "none";
112 }
Toru Furusawa28988892017-10-30 17:28:40 -0700113 leaf-list layer-protocol-name {
114 type tapi-common:layer-protocol-name;
115 config false;
116 min-elements 1;
117 description "none";
118 }
119 leaf direction {
120 type tapi-common:forwarding-direction;
121 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700122 description "The directionality of the Link.
123 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
Toru Furusawa28988892017-10-30 17:28:40 -0700124 Is not present in more complex cases.";
125 }
126 container resilience-type {
127 uses resilience-type;
128 description "none";
129 }
130 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500131 uses tapi-common:admin-state-pac;
132 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800133 uses transfer-cost-pac;
134 uses transfer-integrity-pac;
135 uses transfer-timing-pac;
136 uses risk-parameter-pac;
137 uses validation-pac;
138 uses layer-protocol-transition-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700139 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
140 }
141 grouping node {
142 list owned-node-edge-point {
143 key 'uuid';
144 config false;
145 uses node-edge-point;
146 description "none";
147 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700148 list aggregated-node-edge-point {
149 uses owned-node-edge-point-ref;
150 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700151 config false;
152 description "none";
153 }
154 list node-rule-group {
155 key 'uuid';
156 uses node-rule-group;
157 description "none";
158 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800159 container encap-topology {
160 uses topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700161 config false;
162 description "none";
163 }
Toru Furusawa28988892017-10-30 17:28:40 -0700164 leaf-list layer-protocol-name {
165 type tapi-common:layer-protocol-name;
166 config false;
167 min-elements 1;
168 description "none";
169 }
170 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500171 uses tapi-common:admin-state-pac;
172 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800173 uses transfer-cost-pac;
174 uses transfer-integrity-pac;
175 uses transfer-timing-pac;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700176 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 -0700177 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
178 }
179 grouping topology {
180 list node {
181 key 'uuid';
182 config false;
183 uses node;
184 description "none";
185 }
186 list link {
187 key 'uuid';
188 config false;
189 uses link;
190 description "none";
191 }
192 leaf-list layer-protocol-name {
193 type tapi-common:layer-protocol-name;
194 config false;
195 min-elements 1;
196 description "none";
197 }
198 uses tapi-common:resource-spec;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700199 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 -0700200 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
201 }
202 grouping layer-protocol-transition-pac {
203 leaf-list transitioned-layer-protocol-name {
204 type string;
205 min-elements 2;
206 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
207 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700208 description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation.
209 This abstraction is relevant when considering multi-layer routing.
Toru Furusawa28988892017-10-30 17:28:40 -0700210 The layer protocols of the LTP and the order of their application to the signal is still relevant and need to be accounted for. This is derived from the LTP spec details.
211 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
212 Links that included details in this Pac are often referred to as Transitional Links.";
213 }
214 grouping node-edge-point {
wu6a418d22018-02-02 01:49:21 -0500215 leaf layer-protocol-name {
216 type tapi-common:layer-protocol-name;
Toru Furusawa28988892017-10-30 17:28:40 -0700217 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700218 description "none";
219 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700220 list aggregated-node-edge-point {
221 uses owned-node-edge-point-ref;
222 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700223 config false;
224 description "none";
225 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800226 list mapped-service-interface-point {
227 uses tapi-common:service-interface-point-ref;
228 key 'service-interface-point-id';
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800229 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700230 description "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental";
231 }
Toru Furusawa28988892017-10-30 17:28:40 -0700232 leaf link-port-direction {
233 type tapi-common:port-direction;
234 config false;
235 description "The orientation of defined flow at the LinkEnd.";
236 }
237 leaf link-port-role {
238 type tapi-common:port-role;
239 config false;
240 description "Each LinkEnd of the Link has a role (e.g., symmetric, hub, spoke, leaf, root) in the context of the Link with respect to the Link function. ";
241 }
242 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500243 uses tapi-common:admin-state-pac;
244 uses tapi-common:termination-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800245 uses tapi-common:capacity-pac;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700246 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 -0700247 The structure of LTP supports all transport protocols including circuit and packet forms.";
248 }
249 grouping risk-parameter-pac {
250 list risk-characteristic {
251 key 'risk-characteristic-name';
252 config false;
253 min-elements 1;
254 uses risk-characteristic;
255 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
256 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700257 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
Toru Furusawa28988892017-10-30 17:28:40 -0700258 The risk characteristics propagate from the physical realization to the client and from the server layer to the client layer, this propagation may be modified by protection.
259 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
260 The realization can be partitioned into segments which have some relevant common failure modes.
261 There is a risk of failure/degradation of each segment of the underlying realization.
262 Each segment is a part of a larger physical/geographical unit that behaves as one with respect to failure (i.e. a failure will have a high probability of impacting the whole unit (e.g. all cables in the same duct).
263 Disruptions to that larger physical/geographical unit will impact (cause failure/errors to) all TopologicalEntities that use any part of that larger physical/geographical entity.
264 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
265 The identifier of each physical/geographical unit that is involved in the realization of each segment of a Topological entity can be listed in the RiskParameter_Pac of that TopologicalEntity.
266 A segment has one or more risk characteristic.
267 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
268 Where two TopologicalEntities have a common risk characteristic they have an elevated probability of failing simultaneously compared to two TopologicalEntities that do not share risk characteristics.";
269 }
270 grouping transfer-cost-pac {
271 list cost-characteristic {
272 key 'cost-name';
273 config false;
274 min-elements 1;
275 uses cost-characteristic;
276 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
277 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700278 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 -0700279 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700280 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 -0700281 Using an entity will incur a cost. ";
282 }
283 grouping transfer-integrity-pac {
284 leaf error-characteristic {
285 type string;
286 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700287 description "Describes the degree to which the signal propagated can be errored.
Toru Furusawa28988892017-10-30 17:28:40 -0700288 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
289 }
290 leaf loss-characteristic {
291 type string;
292 config false;
293 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
294 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
295 }
296 leaf repeat-delivery-characteristic {
297 type string;
298 config false;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700299 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 -0700300 It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay.";
301 }
302 leaf delivery-order-characteristic {
303 type string;
304 config false;
305 description "Describes the degree to which packets will be delivered out of sequence.
306 Does not apply to TDM as the TDM protocols maintain strict order.";
307 }
308 leaf unavailable-time-characteristic {
309 type string;
310 config false;
311 description "Describes the duration for which there may be no valid signal propagated.";
312 }
313 leaf server-integrity-process-characteristic {
314 type string;
315 config false;
316 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
317 }
318 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
319 It includes all aspects of possible degradation of signal content as well as any damage of any form to the total TopologicalEntity and to the carried signals.
320 Note that the statement is of total impact to the TopologicalEntity so any partial usage of the TopologicalEntity (e.g. a signal that does not use full capacity) will only suffer its portion of the impact.";
321 }
322 grouping transfer-timing-pac {
323 list latency-characteristic {
324 key 'traffic-property-name';
325 config false;
326 min-elements 1;
327 uses latency-characteristic;
328 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
329 }
330 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
331 }
332 grouping validation-pac {
333 list validation-mechanism {
334 key 'validation-mechanism';
335 config false;
336 min-elements 1;
337 uses validation-mechanism;
338 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
339 }
340 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
341 }
342 grouping network-topology-service {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700343 list topology {
344 uses topology-ref;
345 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700346 config false;
347 description "none";
348 }
349 uses tapi-common:service-spec;
350 description "none";
351 }
352 grouping topology-context {
353 container nw-topology-service {
354 config false;
355 uses network-topology-service;
356 description "none";
357 }
358 list topology {
359 key 'uuid';
360 config false;
361 uses topology;
362 description "none";
363 }
364 description "none";
365 }
366 grouping inter-rule-group {
367 list rule {
368 key 'local-id';
369 min-elements 1;
370 uses rule;
371 description "none";
372 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800373 list associated-node-rule-group {
374 uses node-rule-group-ref;
375 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700376 min-elements 2;
377 description "none";
378 }
Toru Furusawa28988892017-10-30 17:28:40 -0700379 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500380 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800381 uses transfer-cost-pac;
382 uses transfer-timing-pac;
383 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700384 description "none";
385 }
386 grouping node-rule-group {
387 list rule {
388 key 'local-id';
389 min-elements 1;
390 uses rule;
391 description "none";
392 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700393 list node-edge-point {
394 uses owned-node-edge-point-ref;
395 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700396 min-elements 1;
397 description "none";
398 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800399 list composed-rule-group {
400 uses node-rule-group-ref;
401 key 'topology-id node-id node-rule-group-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700402 description "none";
403 }
404 list inter-rule-group {
405 key 'uuid';
406 uses inter-rule-group;
407 description "none";
408 }
Toru Furusawa28988892017-10-30 17:28:40 -0700409 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500410 uses tapi-common:capacity-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800411 uses transfer-cost-pac;
412 uses transfer-timing-pac;
413 uses risk-parameter-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700414 description "none";
415 }
416 grouping rule {
417 leaf rule-type {
418 type rule-type;
419 description "none";
420 }
421 leaf forwarding-rule {
422 type forwarding-rule;
423 description "none";
424 }
425 leaf override-priority {
426 type uint64;
427 description "none";
428 }
429 uses tapi-common:local-class;
430 description "none";
431 }
432
433 /***********************
434 * package type-definitions
435 **********************/
436 grouping cost-characteristic {
437 leaf cost-name {
438 type string;
439 description "The cost characteristic will related to some aspect of the TopologicalEntity (e.g. $ cost, routing weight). This aspect will be conveyed by the costName.";
440 }
441 leaf cost-value {
442 type string;
443 description "The specific cost.";
444 }
445 leaf cost-algorithm {
446 type string;
447 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
448 }
449 description "The information for a particular cost characteristic.";
450 }
451 grouping latency-characteristic {
452 leaf traffic-property-name {
453 type string;
454 description "The identifier of the specific traffic property to which the queuing latency applies.";
455 }
456 leaf fixed-latency-characteristic {
457 type string;
458 config false;
459 description "A TopologicalEntity suffers delay caused by the realization of the servers (e.g. distance related; FEC encoding etc.) along with some client specific processing. This is the total average latency effect of the TopologicalEntity";
460 }
461 leaf queing-latency-characteristic {
462 type string;
463 description "The specific queuing latency for the traffic property.";
464 }
465 leaf jitter-characteristic {
466 type string;
467 config false;
468 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
469 Applies to TDM systems (and not packet).";
470 }
471 leaf wander-characteristic {
472 type string;
473 config false;
474 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
475 Applies to TDM systems (and not packet).";
476 }
477 description "Provides information on latency characteristic for a particular stated trafficProperty.";
478 }
479 grouping risk-characteristic {
480 leaf risk-characteristic-name {
481 type string;
482 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
483 For example a particular characteristic may apply to failures that are localized (e.g. to one side of a road) where as another characteristic may relate to failures that have a broader impact (e.g. both sides of a road that crosses a bridge).
484 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
485 }
486 leaf-list risk-identifier-list {
487 type string;
488 min-elements 1;
489 description "A list of the identifiers of each physical/geographic unit (with the specific risk characteristic) that is related to a segment of the TopologicalEntity.";
490 }
491 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
492 }
493 grouping validation-mechanism {
494 leaf validation-mechanism {
495 type string;
496 description "Name of mechanism used to validate adjacency";
497 }
498 leaf layer-protocol-adjacency-validated {
499 type string;
500 description "State of validatiion";
501 }
502 leaf validation-robustness {
503 type string;
504 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
505 }
506 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
507 }
508 typedef forwarding-rule {
509 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500510 enum MAY_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700511 description "none";
512 }
wu6a418d22018-02-02 01:49:21 -0500513 enum MUST_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700514 description "none";
515 }
wu6a418d22018-02-02 01:49:21 -0500516 enum CANNOT_FORWARD_ACROSS_GROUP {
Toru Furusawa28988892017-10-30 17:28:40 -0700517 description "none";
518 }
wu6a418d22018-02-02 01:49:21 -0500519 enum NO_STATEMENT_ON_FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700520 description "none";
521 }
522 }
523 description "none";
524 }
525 typedef rule-type {
526 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500527 enum FORWARDING {
Toru Furusawa28988892017-10-30 17:28:40 -0700528 description "none";
529 }
wu6a418d22018-02-02 01:49:21 -0500530 enum CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700531 description "none";
532 }
wu6a418d22018-02-02 01:49:21 -0500533 enum COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700534 description "none";
535 }
wu6a418d22018-02-02 01:49:21 -0500536 enum TIMING {
Toru Furusawa28988892017-10-30 17:28:40 -0700537 description "none";
538 }
wu6a418d22018-02-02 01:49:21 -0500539 enum RISK {
Toru Furusawa28988892017-10-30 17:28:40 -0700540 description "none";
541 }
wu6a418d22018-02-02 01:49:21 -0500542 enum GROUPING {
Toru Furusawa28988892017-10-30 17:28:40 -0700543 description "none";
544 }
545 }
546 description "none";
547 }
548 grouping resilience-type {
549 leaf restoration-policy {
550 type restoration-policy;
551 description "none";
552 }
553 leaf protection-type {
554 type protection-type;
555 description "none";
556 }
557 description "none";
558 }
559 typedef restoration-policy {
560 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500561 enum PER_DOMAIN_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700562 description "none";
563 }
wu6a418d22018-02-02 01:49:21 -0500564 enum END_TO_END_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700565 description "none";
566 }
wu6a418d22018-02-02 01:49:21 -0500567 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700568 description "none";
569 }
570 }
571 description "none";
572 }
573 typedef protection-type {
574 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500575 enum NO_PROTECTON {
Toru Furusawa28988892017-10-30 17:28:40 -0700576 description "none";
577 }
wu6a418d22018-02-02 01:49:21 -0500578 enum ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700579 description "none";
580 }
wu6a418d22018-02-02 01:49:21 -0500581 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700582 description "none";
583 }
wu6a418d22018-02-02 01:49:21 -0500584 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700585 description "none";
586 }
wu6a418d22018-02-02 01:49:21 -0500587 enum ONE_FOR_ONE_PROTECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700588 description "none";
589 }
wu6a418d22018-02-02 01:49:21 -0500590 enum DYNAMIC_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700591 description "none";
592 }
wu6a418d22018-02-02 01:49:21 -0500593 enum PRE_COMPUTED_RESTORATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700594 description "none";
595 }
596 }
597 description "none";
598 }
599
600 /***********************
601 * package interfaces
602 **********************/
603 rpc get-topology-details {
604 description "none";
605 input {
606 leaf topology-id-or-name {
607 type string;
608 description "none";
609 }
610 }
611 output {
612 container topology {
613 uses topology;
614 description "none";
615 }
616 }
617 }
618 rpc get-node-details {
619 description "none";
620 input {
621 leaf topology-id-or-name {
622 type string;
623 description "none";
624 }
625 leaf node-id-or-name {
626 type string;
627 description "none";
628 }
629 }
630 output {
631 container node {
632 uses node;
633 description "none";
634 }
635 }
636 }
637 rpc get-node-edge-point-details {
638 description "none";
639 input {
640 leaf topology-id-or-name {
641 type string;
642 description "none";
643 }
644 leaf node-id-or-name {
645 type string;
646 description "none";
647 }
648 leaf ep-id-or-name {
649 type string;
650 description "none";
651 }
652 }
653 output {
654 container node-edge-point {
655 uses node-edge-point;
656 description "none";
657 }
658 }
659 }
660 rpc get-link-details {
661 description "none";
662 input {
663 leaf topology-id-or-name {
664 type string;
665 description "none";
666 }
667 leaf link-id-or-name {
668 type string;
669 description "none";
670 }
671 }
672 output {
673 container link {
674 uses link;
675 description "none";
676 }
677 }
678 }
679 rpc get-topology-list {
680 description "none";
681 output {
682 list topology {
683 uses topology;
684 description "none";
685 }
686 }
687 }
688
689}