1 module tapi-path-computation {
2 namespace "urn:onf:otcc:yang:tapi-path-computation";
3 prefix tapi-path-computation;
10 organization "ONF OTCC (Open Transport Configuration & Control) Project";
12 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
13 Project List: <mailto:transport-api@opennetworking.org>
14 Editor: Karthik Sethuraman
15 <mailto:karthik.sethuraman@necam.com>";
17 This module contains TAPI Path Computation Model definitions.
18 Source: TapiPathComputation.uml
19 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
20 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
21 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
22 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
23 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
24 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
25 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
26 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
27 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
28 YANG models included in this release may not be backward compatible with previous TAPI releases.
29 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
30 License: This module is distributed under the Apache License 2.0";
32 description "ONF Transport API version 2.1.1.
33 Changes included in this TAPI release (v2.1.1) are listed in
34 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
35 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
36 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
39 description "ONF Transport API version 2.1.0.
40 Changes included in this TAPI release (v2.1.0) are listed in
41 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
42 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
43 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
46 description "ONF Transport API version 2.0.2
47 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
48 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
49 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
50 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
53 description "ONF Transport API version 2.0.1
54 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
55 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
56 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
57 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
60 description "ONF Transport API version 2.0.0
61 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
62 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
63 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
64 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
66 augment "/tapi-common:context" {
67 container path-computation-context {
68 uses path-computation-context;
69 description "Augments the base TAPI Context with PathComputationService information";
71 description "Augments the base TAPI Context with PathComputationService information";
74 /**************************
75 * definitions of refrences
76 **************************/
80 path '/tapi-common:context/tapi-path-computation:path-computation-context/tapi-path-computation:path/tapi-path-computation:uuid';
87 /**************************
88 * package object-classes
89 **************************/
92 uses tapi-topology:link-ref;
93 key 'topology-uuid link-uuid';
98 container routing-constraint {
100 uses routing-constraint;
104 type tapi-common:forwarding-direction;
108 leaf layer-protocol-name {
109 type tapi-common:layer-protocol-name;
113 uses tapi-common:resource-spec;
114 description "Path is described by an ordered list of TE Links. A TE Link is defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by concatenating link resources (associated with a Link) and the lower-level connections (cross-connections) in the different nodes";
116 grouping path-service-end-point {
117 container service-interface-point {
118 uses tapi-common:service-interface-point-ref;
121 leaf layer-protocol-name {
122 type tapi-common:layer-protocol-name;
125 leaf layer-protocol-qualifier {
126 type tapi-common:layer-protocol-qualifier;
130 uses tapi-common:capacity;
134 type tapi-common:port-role;
135 description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function. ";
138 type tapi-common:port-direction;
139 description "The orientation of defined flow at the EndPoint.";
141 uses tapi-common:local-class;
142 description "The association of the FC to LTPs is made via EndPoints.
143 The EndPoint (EP) object class models the access to the FC function.
144 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
145 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
146 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
147 The EP replaces the Protection Unit of a traditional protection model.
148 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
150 grouping path-computation-service {
162 uses path-service-end-point;
165 container routing-constraint {
166 uses routing-constraint;
169 container topology-constraint {
170 uses topology-constraint;
173 container objective-function {
174 uses path-objective-function;
177 container optimization-constraint {
178 uses path-optimization-constraint;
181 uses tapi-common:service-spec;
184 grouping path-objective-function {
185 leaf bandwidth-optimization {
186 type tapi-common:directive-value;
189 leaf concurrent-paths {
190 type tapi-common:directive-value;
193 leaf cost-optimization {
194 type tapi-common:directive-value;
197 leaf link-utilization {
198 type tapi-common:directive-value;
201 leaf resource-sharing {
202 type tapi-common:directive-value;
205 uses tapi-common:local-class;
208 grouping path-optimization-constraint {
209 leaf traffic-interruption {
210 type tapi-common:directive-value;
213 uses tapi-common:local-class;
216 grouping routing-constraint {
217 list cost-characteristic {
219 uses tapi-topology:cost-characteristic;
220 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
222 list latency-characteristic {
223 key 'traffic-property-name';
224 uses tapi-topology:latency-characteristic;
225 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
227 list risk-diversity-characteristic {
228 key 'risk-characteristic-name';
229 uses tapi-topology:risk-characteristic;
232 leaf diversity-policy {
233 type diversity-policy;
236 leaf route-objective-function {
237 type route-objective-function;
240 leaf route-direction {
241 type tapi-common:forwarding-direction;
247 description "To distinguish if the resources are to be exclusive to the service";
251 grouping path-computation-context {
252 list path-comp-service {
254 uses path-computation-service;
265 grouping topology-constraint {
266 leaf-list include-topology {
267 type tapi-common:uuid;
270 leaf-list avoid-topology {
271 type tapi-common:uuid;
274 leaf-list include-path {
275 type tapi-common:uuid;
278 leaf-list exclude-path {
279 type tapi-common:uuid;
282 leaf-list include-link {
283 type tapi-common:uuid;
284 description "This is a loose constraint - that is it is unordered and could be a partial list ";
286 leaf-list exclude-link {
287 type tapi-common:uuid;
290 leaf-list include-node {
291 type tapi-common:uuid;
292 description "This is a loose constraint - that is it is unordered and could be a partial list";
294 leaf-list exclude-node {
295 type tapi-common:uuid;
298 leaf-list preferred-transport-layer {
299 type tapi-common:layer-protocol-name;
300 description "soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers";
305 /**************************
306 * package type-definitions
307 **************************/
308 typedef route-objective-function {
310 enum MIN_WORK_ROUTE_HOP {
313 enum MIN_WORK_ROUTE_COST {
316 enum MIN_WORK_ROUTE_LATENCY {
319 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
322 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
325 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
328 enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
334 typedef diversity-policy {
355 /**************************
357 **************************/
358 rpc compute-p-2-p-path {
365 uses path-service-end-point;
368 container routing-constraint {
369 uses routing-constraint;
372 container topology-constraint {
373 uses topology-constraint;
376 container objective-function {
377 uses path-objective-function;
383 uses path-computation-service;
388 rpc optimize-p-2-p-path {
391 leaf path-id-or-name {
395 container routing-constraint {
396 uses routing-constraint;
399 container optimization-constraint {
400 uses path-optimization-constraint;
403 container objective-function {
404 uses path-objective-function;
410 uses path-computation-service;
415 rpc delete-p-2-p-path {
418 leaf path-id-or-name {
425 uses path-computation-service;