2 namespace "urn:onf:otcc:yang:tapi-topology";
7 organization "ONF OTCC (Open Transport Configuration & Control) Project";
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>";
14 This module contains TAPI Topology Model definitions.
15 Source: TapiTopology.uml
16 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
17 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
18 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
19 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
20 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
21 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
22 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
23 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
24 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
25 YANG models included in this release may not be backward compatible with previous TAPI releases.
26 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
27 License: This module is distributed under the Apache License 2.0";
29 description "ONF Transport API version 2.1.1.
30 Changes included in this TAPI release (v2.1.1) are listed in
31 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
32 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
33 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
36 description "ONF Transport API version 2.1.0.
37 Changes included in this TAPI release (v2.1.0) are listed in
38 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
39 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
40 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
43 description "ONF Transport API version 2.0.2
44 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
45 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
46 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
47 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
50 description "ONF Transport API version 2.0.1
51 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
52 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
53 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
54 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
57 description "ONF Transport API version 2.0.0
58 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
59 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
60 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
61 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
63 augment "/tapi-common:context" {
64 container topology-context {
65 uses topology-context;
66 description "Augments the base TAPI Context with TopologyService information";
68 description "Augments the base TAPI Context with TopologyService information";
71 /**************************
72 * definitions of refrences
73 **************************/
74 grouping topology-ref {
77 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid';
87 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
97 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
103 grouping node-edge-point-ref {
105 leaf node-edge-point-uuid {
107 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
113 grouping node-rule-group-ref {
115 leaf node-rule-group-uuid {
117 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
124 /**************************
125 * package object-classes
126 **************************/
128 list node-edge-point {
129 uses node-edge-point-ref;
130 key 'topology-uuid node-uuid node-edge-point-uuid';
135 leaf-list layer-protocol-name {
136 type tapi-common:layer-protocol-name;
142 type tapi-common:forwarding-direction;
144 description "The directionality of the Link.
145 Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
146 Is not present in more complex cases.";
148 container resilience-type {
149 uses resilience-type;
152 uses tapi-common:resource-spec;
153 uses tapi-common:admin-state-pac;
154 uses tapi-common:capacity-pac;
155 uses transfer-cost-pac;
156 uses transfer-integrity-pac;
157 uses transfer-timing-pac;
158 uses risk-parameter-pac;
160 uses layer-protocol-transition-pac;
161 description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";
164 list owned-node-edge-point {
167 uses node-edge-point;
170 list aggregated-node-edge-point {
171 uses node-edge-point-ref;
172 key 'topology-uuid node-uuid node-edge-point-uuid';
176 list node-rule-group {
178 uses node-rule-group;
181 container encap-topology {
186 leaf-list layer-protocol-name {
187 type tapi-common:layer-protocol-name;
192 uses tapi-common:resource-spec;
193 uses tapi-common:admin-state-pac;
194 uses tapi-common:capacity-pac;
195 uses transfer-cost-pac;
196 uses transfer-integrity-pac;
197 uses transfer-timing-pac;
198 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.
199 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). ";
214 leaf-list layer-protocol-name {
215 type tapi-common:layer-protocol-name;
220 uses tapi-common:resource-spec;
221 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.
222 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). ";
224 grouping layer-protocol-transition-pac {
225 leaf-list transitioned-layer-protocol-name {
228 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
230 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.
231 This abstraction is relevant when considering multi-layer routing.
232 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.
233 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
234 Links that included details in this Pac are often referred to as Transitional Links.";
236 grouping node-edge-point {
237 leaf layer-protocol-name {
238 type tapi-common:layer-protocol-name;
242 leaf-list supported-cep-layer-protocol-qualifier {
243 type tapi-common:layer-protocol-qualifier;
247 list aggregated-node-edge-point {
248 uses node-edge-point-ref;
249 key 'topology-uuid node-uuid node-edge-point-uuid';
253 list mapped-service-interface-point {
254 uses tapi-common:service-interface-point-ref;
255 key 'service-interface-point-uuid';
257 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";
259 leaf link-port-direction {
260 type tapi-common:port-direction;
262 description "The orientation of defined flow at the LinkEnd.";
264 leaf link-port-role {
265 type tapi-common:port-role;
267 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. ";
269 uses tapi-common:resource-spec;
270 uses tapi-common:admin-state-pac;
271 uses tapi-common:termination-pac;
272 uses tapi-common:capacity-pac;
273 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
274 The structure of LTP supports all transport protocols including circuit and packet forms.";
276 grouping risk-parameter-pac {
277 list risk-characteristic {
278 key 'risk-characteristic-name';
281 uses risk-characteristic;
282 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
284 description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
285 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.
286 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
287 The realization can be partitioned into segments which have some relevant common failure modes.
288 There is a risk of failure/degradation of each segment of the underlying realization.
289 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).
290 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.
291 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.
292 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.
293 A segment has one or more risk characteristic.
294 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.
295 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.";
297 grouping transfer-cost-pac {
298 list cost-characteristic {
302 uses cost-characteristic;
303 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
305 description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
306 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
307 There may be many perspectives from which cost may be considered for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
308 Using an entity will incur a cost. ";
310 grouping transfer-integrity-pac {
311 leaf error-characteristic {
314 description "Describes the degree to which the signal propagated can be errored.
315 Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
317 leaf loss-characteristic {
320 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.
321 Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";
323 leaf repeat-delivery-characteristic {
326 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
327 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.";
329 leaf delivery-order-characteristic {
332 description "Describes the degree to which packets will be delivered out of sequence.
333 Does not apply to TDM as the TDM protocols maintain strict order.";
335 leaf unavailable-time-characteristic {
338 description "Describes the duration for which there may be no valid signal propagated.";
340 leaf server-integrity-process-characteristic {
343 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";
345 description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.
346 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.
347 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.";
349 grouping transfer-timing-pac {
350 list latency-characteristic {
351 key 'traffic-property-name';
354 uses latency-characteristic;
355 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
357 description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";
359 grouping validation-pac {
360 list validation-mechanism {
361 key 'validation-mechanism';
364 uses validation-mechanism;
365 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";
367 description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
369 grouping network-topology-service {
376 uses tapi-common:service-spec;
379 grouping topology-context {
380 container nw-topology-service {
382 uses network-topology-service;
393 grouping inter-rule-group {
400 list associated-node-rule-group {
401 uses node-rule-group-ref;
402 key 'topology-uuid node-uuid node-rule-group-uuid';
406 uses tapi-common:resource-spec;
407 uses tapi-common:capacity-pac;
408 uses transfer-cost-pac;
409 uses transfer-timing-pac;
410 uses risk-parameter-pac;
413 grouping node-rule-group {
420 list node-edge-point {
421 uses node-edge-point-ref;
422 key 'topology-uuid node-uuid node-edge-point-uuid';
426 list composed-rule-group {
427 uses node-rule-group-ref;
428 key 'topology-uuid node-uuid node-rule-group-uuid';
431 list inter-rule-group {
433 uses inter-rule-group;
436 uses tapi-common:resource-spec;
437 uses tapi-common:capacity-pac;
438 uses transfer-cost-pac;
439 uses transfer-timing-pac;
440 uses risk-parameter-pac;
448 leaf forwarding-rule {
449 type forwarding-rule;
452 leaf override-priority {
456 uses tapi-common:local-class;
460 /**************************
461 * package type-definitions
462 **************************/
463 grouping cost-characteristic {
466 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.";
470 description "The specific cost.";
472 leaf cost-algorithm {
474 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";
476 description "The information for a particular cost characteristic.";
478 grouping latency-characteristic {
479 leaf traffic-property-name {
481 description "The identifier of the specific traffic property to which the queuing latency applies.";
483 leaf fixed-latency-characteristic {
486 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";
488 leaf queing-latency-characteristic {
490 description "The specific queuing latency for the traffic property.";
492 leaf jitter-characteristic {
495 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.
496 Applies to TDM systems (and not packet).";
498 leaf wander-characteristic {
501 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.
502 Applies to TDM systems (and not packet).";
504 description "Provides information on latency characteristic for a particular stated trafficProperty.";
506 grouping risk-characteristic {
507 leaf risk-characteristic-name {
509 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness.
510 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).
511 Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";
513 leaf-list risk-identifier-list {
516 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.";
518 description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";
520 grouping validation-mechanism {
521 leaf validation-mechanism {
523 description "Name of mechanism used to validate adjacency";
525 leaf layer-protocol-adjacency-validated {
527 description "State of validatiion";
529 leaf validation-robustness {
531 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";
533 description "Identifies the validation mechanism and describes the characteristics of that mechanism";
535 typedef forwarding-rule {
537 enum MAY_FORWARD_ACROSS_GROUP {
540 enum MUST_FORWARD_ACROSS_GROUP {
543 enum CANNOT_FORWARD_ACROSS_GROUP {
546 enum NO_STATEMENT_ON_FORWARDING {
575 grouping resilience-type {
576 leaf restoration-policy {
577 type restoration-policy;
580 leaf protection-type {
581 type protection-type;
586 typedef restoration-policy {
588 enum PER_DOMAIN_RESTORATION {
591 enum END_TO_END_RESTORATION {
600 typedef protection-type {
605 enum ONE_PLUS_ONE_PROTECTION {
608 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {
611 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {
614 enum ONE_FOR_ONE_PROTECTION {
617 enum DYNAMIC_RESTORATION {
620 enum PRE_COMPUTED_RESTORATION {
627 /**************************
629 **************************/
630 rpc get-topology-details {
633 leaf topology-id-or-name {
645 rpc get-node-details {
648 leaf topology-id-or-name {
652 leaf node-id-or-name {
664 rpc get-node-edge-point-details {
667 leaf topology-id-or-name {
671 leaf node-id-or-name {
681 container node-edge-point {
682 uses node-edge-point;
687 rpc get-link-details {
690 leaf topology-id-or-name {
694 leaf link-id-or-name {
706 rpc get-topology-list {