1 module tapi-topology {
\r
2 namespace "urn:onf:otcc:yang:tapi-topology";
\r
3 prefix tapi-topology;
\r
7 organization "ONF OTCC (Open Transport Configuration & Control) Project";
\r
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>";
\r
14 This module contains TAPI Topology Model definitions.
\r
15 Source: TapiTopology.uml
\r
16 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
\r
17 License: This module is distributed under the Apache License 2.0";
\r
18 revision 2018-08-31 {
\r
19 description "ONF Transport API version 2.1.0
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.1.0.md>";
\r
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.1.0/UML>";
\r
25 revision 2018-03-07 {
\r
26 description "ONF Transport API version 2.0.2
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.2.md>";
\r
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.2/UML>";
\r
32 revision 2018-02-16 {
\r
33 description "ONF Transport API version 2.0.1
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.1.md>";
\r
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.1/UML>";
\r
39 revision 2018-01-02 {
\r
40 description "ONF Transport API version 2.0.0
41 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
42 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
\r
43 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
44 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
\r
46 augment "/tapi-common:context" {
\r
47 uses topology-context-g;
\r
48 description "Augments the base TAPI Context with TopologyService information";
\r
51 /*************************
\r
52 * definitions of refrences
\r
53 *************************/
\r
55 grouping topology-ref-g {
\r
56 leaf topology-uuid {
\r
58 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
\r
65 grouping link-ref-g {
\r
66 uses topology-ref-g;
\r
69 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
\r
76 grouping node-ref-g {
\r
77 uses topology-ref-g;
\r
80 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
\r
87 grouping node-edge-point-ref-g {
\r
89 leaf node-edge-point-uuid {
\r
91 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
\r
98 grouping node-rule-group-ref-g {
\r
100 leaf node-rule-group-uuid {
\r
102 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
\r
104 description "none";
\r
106 description "none";
\r
109 /***********************
\r
110 * package object-classes
\r
111 **********************/
\r
113 list node-edge-point {
\r
114 uses node-edge-point-ref-g;
\r
115 key 'topology-uuid node-uuid node-edge-point-uuid';
\r
118 description "none";
\r
120 leaf-list layer-protocol-name {
\r
121 type tapi-common:layer-protocol-name;
\r
124 description "none";
\r
127 type tapi-common:forwarding-direction;
\r
129 description "The directionality of the Link.
\r
130 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
\r
131 Is not present in more complex cases.";
\r
133 container resilience-type {
\r
134 uses resilience-type-g;
\r
135 description "none";
\r
137 uses tapi-common:resource-spec-g;
\r
138 uses tapi-common:admin-state-pac-g;
\r
139 uses tapi-common:capacity-pac-g;
\r
140 uses transfer-cost-pac-g;
\r
141 uses transfer-integrity-pac-g;
\r
142 uses transfer-timing-pac-g;
\r
143 uses risk-parameter-pac-g;
\r
144 uses validation-pac-g;
\r
145 uses layer-protocol-transition-pac-g;
\r
146 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
\r
149 list owned-node-edge-point {
\r
152 uses node-edge-point-g;
\r
153 description "none";
\r
155 list aggregated-node-edge-point {
\r
156 uses node-edge-point-ref-g;
\r
157 key 'topology-uuid node-uuid node-edge-point-uuid';
\r
159 description "none";
\r
161 list node-rule-group {
\r
163 uses node-rule-group-g;
\r
164 description "none";
\r
166 container encap-topology {
\r
167 uses topology-ref-g;
\r
169 description "none";
\r
171 leaf-list layer-protocol-name {
\r
172 type tapi-common:layer-protocol-name;
\r
175 description "none";
\r
177 uses tapi-common:resource-spec-g;
\r
178 uses tapi-common:admin-state-pac-g;
\r
179 uses tapi-common:capacity-pac-g;
\r
180 uses transfer-cost-pac-g;
\r
181 uses transfer-integrity-pac-g;
\r
182 uses transfer-timing-pac-g;
\r
183 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.
\r
184 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). ";
\r
186 grouping topology-g {
\r
191 description "none";
\r
197 description "none";
\r
199 leaf-list layer-protocol-name {
\r
200 type tapi-common:layer-protocol-name;
\r
203 description "none";
\r
205 uses tapi-common:resource-spec-g;
\r
206 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.
\r
207 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). ";
\r
209 grouping layer-protocol-transition-pac-g {
\r
210 leaf-list transitioned-layer-protocol-name {
\r
213 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
\r
215 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.
\r
216 This abstraction is relevant when considering multi-layer routing.
\r
217 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.
\r
218 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
\r
219 Links that included details in this Pac are often referred to as Transitional Links.";
\r
221 grouping node-edge-point-g {
\r
222 leaf layer-protocol-name {
\r
223 type tapi-common:layer-protocol-name;
\r
225 description "none";
\r
227 leaf-list supported-cep-layer-protocol-qualifier {
\r
228 type tapi-common:layer-protocol-qualifier;
\r
230 description "none";
\r
232 list aggregated-node-edge-point {
\r
233 uses node-edge-point-ref-g;
\r
234 key 'topology-uuid node-uuid node-edge-point-uuid';
\r
236 description "none";
\r
238 list mapped-service-interface-point {
\r
239 uses tapi-common:service-interface-point-ref-g;
\r
240 key 'service-interface-point-uuid';
\r
242 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";
\r
244 leaf link-port-direction {
\r
245 type tapi-common:port-direction;
\r
247 description "The orientation of defined flow at the LinkEnd.";
\r
249 leaf link-port-role {
\r
250 type tapi-common:port-role;
\r
252 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. ";
\r
254 uses tapi-common:resource-spec-g;
\r
255 uses tapi-common:admin-state-pac-g;
\r
256 uses tapi-common:termination-pac-g;
\r
257 uses tapi-common:capacity-pac-g;
\r
258 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
\r
259 The structure of LTP supports all transport protocols including circuit and packet forms.";
\r
261 grouping risk-parameter-pac-g {
\r
262 list risk-characteristic {
\r
263 key 'risk-characteristic-name';
\r
266 uses risk-characteristic-g;
\r
267 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
\r
269 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
\r
270 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.
\r
271 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
\r
272 The realization can be partitioned into segments which have some relevant common failure modes.
\r
273 There is a risk of failure/degradation of each segment of the underlying realization.
\r
274 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).
\r
275 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.
\r
276 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
\r
277 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.
\r
278 A segment has one or more risk characteristic.
\r
279 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
\r
280 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.";
\r
282 grouping transfer-cost-pac-g {
\r
283 list cost-characteristic {
\r
287 uses cost-characteristic-g;
\r
288 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
\r
290 description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
\r
291 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
\r
292 There may be many perspectives from which cost may be considered for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
\r
293 Using an entity will incur a cost. ";
\r
295 grouping transfer-integrity-pac-g {
\r
296 leaf error-characteristic {
\r
299 description "Describes the degree to which the signal propagated can be errored.
\r
300 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
\r
302 leaf loss-characteristic {
\r
305 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
\r
306 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
\r
308 leaf repeat-delivery-characteristic {
\r
311 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
\r
312 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.";
\r
314 leaf delivery-order-characteristic {
\r
317 description "Describes the degree to which packets will be delivered out of sequence.
\r
318 Does not apply to TDM as the TDM protocols maintain strict order.";
\r
320 leaf unavailable-time-characteristic {
\r
323 description "Describes the duration for which there may be no valid signal propagated.";
\r
325 leaf server-integrity-process-characteristic {
\r
328 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
\r
330 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
\r
331 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.
\r
332 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.";
\r
334 grouping transfer-timing-pac-g {
\r
335 list latency-characteristic {
\r
336 key 'traffic-property-name';
\r
339 uses latency-characteristic-g;
\r
340 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
\r
342 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
\r
344 grouping validation-pac-g {
\r
345 list validation-mechanism {
\r
346 key 'validation-mechanism';
\r
349 uses validation-mechanism-g;
\r
350 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
\r
352 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
\r
354 grouping network-topology-service-g {
\r
356 uses topology-ref-g;
\r
357 key 'topology-uuid';
\r
359 description "none";
\r
361 uses tapi-common:service-spec-g;
\r
362 description "none";
\r
364 grouping topology-context-g {
\r
365 container nw-topology-service {
\r
367 uses network-topology-service-g;
\r
368 description "none";
\r
374 description "none";
\r
376 description "none";
\r
378 grouping inter-rule-group-g {
\r
383 description "none";
\r
385 list associated-node-rule-group {
\r
386 uses node-rule-group-ref-g;
\r
387 key 'topology-uuid node-uuid node-rule-group-uuid';
\r
389 description "none";
\r
391 uses tapi-common:resource-spec-g;
\r
392 uses tapi-common:capacity-pac-g;
\r
393 uses transfer-cost-pac-g;
\r
394 uses transfer-timing-pac-g;
\r
395 uses risk-parameter-pac-g;
\r
396 description "none";
\r
398 grouping node-rule-group-g {
\r
403 description "none";
\r
405 list node-edge-point {
\r
406 uses node-edge-point-ref-g;
\r
407 key 'topology-uuid node-uuid node-edge-point-uuid';
\r
409 description "none";
\r
411 list composed-rule-group {
\r
412 uses node-rule-group-ref-g;
\r
413 key 'topology-uuid node-uuid node-rule-group-uuid';
\r
414 description "none";
\r
416 list inter-rule-group {
\r
418 uses inter-rule-group-g;
\r
419 description "none";
\r
421 uses tapi-common:resource-spec-g;
\r
422 uses tapi-common:capacity-pac-g;
\r
423 uses transfer-cost-pac-g;
\r
424 uses transfer-timing-pac-g;
\r
425 uses risk-parameter-pac-g;
\r
426 description "none";
\r
431 description "none";
\r
433 leaf forwarding-rule {
\r
434 type forwarding-rule;
\r
435 description "none";
\r
437 leaf override-priority {
\r
439 description "none";
\r
441 uses tapi-common:local-class-g;
\r
442 description "none";
\r
445 /***********************
\r
446 * package type-definitions
\r
447 **********************/
\r
448 grouping cost-characteristic-g {
\r
451 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.";
\r
455 description "The specific cost.";
\r
457 leaf cost-algorithm {
\r
459 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
\r
461 description "The information for a particular cost characteristic.";
\r
463 grouping latency-characteristic-g {
\r
464 leaf traffic-property-name {
\r
466 description "The identifier of the specific traffic property to which the queuing latency applies.";
\r
468 leaf fixed-latency-characteristic {
\r
471 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";
\r
473 leaf queing-latency-characteristic {
\r
475 description "The specific queuing latency for the traffic property.";
\r
477 leaf jitter-characteristic {
\r
480 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
\r
481 Applies to TDM systems (and not packet).";
\r
483 leaf wander-characteristic {
\r
486 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
\r
487 Applies to TDM systems (and not packet).";
\r
489 description "Provides information on latency characteristic for a particular stated trafficProperty.";
\r
491 grouping risk-characteristic-g {
\r
492 leaf risk-characteristic-name {
\r
494 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
\r
495 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).
\r
496 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
\r
498 leaf-list risk-identifier-list {
\r
501 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.";
\r
503 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
\r
505 grouping validation-mechanism-g {
\r
506 leaf validation-mechanism {
\r
508 description "Name of mechanism used to validate adjacency";
\r
510 leaf layer-protocol-adjacency-validated {
\r
512 description "State of validatiion";
\r
514 leaf validation-robustness {
\r
516 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
\r
518 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
\r
520 typedef forwarding-rule {
\r
522 enum MAY_FORWARD_ACROSS_GROUP {
\r
523 description "none";
\r
525 enum MUST_FORWARD_ACROSS_GROUP {
\r
526 description "none";
\r
528 enum CANNOT_FORWARD_ACROSS_GROUP {
\r
529 description "none";
\r
531 enum NO_STATEMENT_ON_FORWARDING {
\r
532 description "none";
\r
535 description "none";
\r
537 typedef rule-type {
\r
540 description "none";
\r
543 description "none";
\r
546 description "none";
\r
549 description "none";
\r
552 description "none";
\r
555 description "none";
\r
558 description "none";
\r
560 grouping resilience-type-g {
\r
561 leaf restoration-policy {
\r
562 type restoration-policy;
\r
563 description "none";
\r
565 leaf protection-type {
\r
566 type protection-type;
\r
567 description "none";
\r
569 description "none";
\r
571 typedef restoration-policy {
\r
573 enum PER_DOMAIN_RESTORATION {
\r
574 description "none";
\r
576 enum END_TO_END_RESTORATION {
\r
577 description "none";
\r
580 description "none";
\r
583 description "none";
\r
585 typedef protection-type {
\r
587 enum NO_PROTECTON {
\r
588 description "none";
\r
590 enum ONE_PLUS_ONE_PROTECTION {
\r
591 description "none";
\r
593 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
\r
594 description "none";
\r
596 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
\r
597 description "none";
\r
599 enum ONE_FOR_ONE_PROTECTION {
\r
600 description "none";
\r
602 enum DYNAMIC_RESTORATION {
\r
603 description "none";
\r
605 enum PRE_COMPUTED_RESTORATION {
\r
606 description "none";
\r
609 description "none";
\r
612 /***********************
\r
613 * package interfaces
\r
614 **********************/
\r
615 rpc get-topology-details {
\r
616 description "none";
\r
618 leaf topology-id-or-name {
\r
620 description "none";
\r
624 container topology {
\r
626 description "none";
\r
630 rpc get-node-details {
\r
631 description "none";
\r
633 leaf topology-id-or-name {
\r
635 description "none";
\r
637 leaf node-id-or-name {
\r
639 description "none";
\r
645 description "none";
\r
649 rpc get-node-edge-point-details {
\r
650 description "none";
\r
652 leaf topology-id-or-name {
\r
654 description "none";
\r
656 leaf node-id-or-name {
\r
658 description "none";
\r
660 leaf ep-id-or-name {
\r
662 description "none";
\r
666 container node-edge-point {
\r
667 uses node-edge-point-g;
\r
668 description "none";
\r
672 rpc get-link-details {
\r
673 description "none";
\r
675 leaf topology-id-or-name {
\r
677 description "none";
\r
679 leaf link-id-or-name {
\r
681 description "none";
\r
687 description "none";
\r
691 rpc get-topology-list {
\r
692 description "none";
\r
696 description "none";
\r