blob: fa5745b2466736ed6f16d405d1e3f54468427fa6 [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-path-computation {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-path-computation";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-path-computation;
4 import tapi-topology {
5 prefix tapi-topology;
6 }
7 import tapi-common {
8 prefix tapi-common;
9 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080010 organization "ONF OTCC (Open Transport Configuration & Control) Project";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080011 contact "
12 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
13 Project List: <mailto:transport-api@opennetworking.org>
14 Editor: Karthik Sethuraman
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080015 <mailto:karthik.sethuraman@necam.com>";
16 description "
17 This module contains TAPI Path Computation Model definitions.
18 Source: TapiPathComputation.uml
19 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
20 License: This module is distributed under the Apache License 2.0";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080021 revision 2018-03-07 {
22 description "ONF Transport API version 2.0.2
23 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
24 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
25 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
26 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
27 <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070028 }
29 augment "/tapi-common:context" {
30 uses path-computation-context;
31 description "Augments the base TAPI Context with PathComputationService information";
32 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080033
34 /*************************
35 * definitions of refrences
36 *************************/
37 grouping path-ref {
38 leaf path-id {
39 type leafref {
40 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
41 }
42 }
43 }
44
Toru Furusawa28988892017-10-30 17:28:40 -070045 /***********************
46 * package object-classes
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080047 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070048 grouping path {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080049 list link {
50 uses tapi-topology:link-ref;
51 key 'topology-id link-id';
Toru Furusawa28988892017-10-30 17:28:40 -070052 config false;
53 min-elements 1;
54 description "none";
55 }
56 container routing-constraint {
57 config false;
58 uses routing-constraint;
59 description "none";
60 }
61 uses tapi-common:resource-spec;
62 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";
63 }
64 grouping path-service-end-point {
65 leaf service-interface-point {
66 type leafref {
67 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
68 }
69 config false;
70 description "none";
71 }
72 leaf role {
73 type tapi-common:port-role;
74 config false;
75 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. ";
76 }
77 leaf direction {
78 type tapi-common:port-direction;
79 config false;
80 description "The orientation of defined flow at the EndPoint.";
81 }
82 leaf service-layer {
83 type tapi-common:layer-protocol-name;
84 config false;
85 description "none";
86 }
87 uses tapi-common:local-class;
88 description "The association of the FC to LTPs is made via EndPoints.
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080089 The EndPoint (EP) object class models the access to the FC function.
90 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
91 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
Toru Furusawa28988892017-10-30 17:28:40 -070092 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080093 The EP replaces the Protection Unit of a traditional protection model.
Toru Furusawa28988892017-10-30 17:28:40 -070094 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
95 }
96 grouping path-computation-service {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080097 list path {
98 uses path-ref;
99 key 'path-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700100 config false;
101 min-elements 1;
102 description "none";
103 }
104 list end-point {
105 key 'local-id';
106 min-elements 2;
107 max-elements 2;
108 uses path-service-end-point;
109 description "none";
110 }
111 container routing-constraint {
112 uses routing-constraint;
113 description "none";
114 }
115 container objective-function {
116 uses path-objective-function;
117 description "none";
118 }
119 container optimization-constraint {
120 uses path-optimization-constraint;
121 description "none";
122 }
123 uses tapi-common:service-spec;
124 description "none";
125 }
126 grouping path-objective-function {
127 leaf bandwidth-optimization {
128 type tapi-common:directive-value;
129 config false;
130 description "none";
131 }
132 leaf concurrent-paths {
133 type tapi-common:directive-value;
134 config false;
135 description "none";
136 }
137 leaf cost-optimization {
138 type tapi-common:directive-value;
139 config false;
140 description "none";
141 }
142 leaf link-utilization {
143 type tapi-common:directive-value;
144 config false;
145 description "none";
146 }
147 leaf resource-sharing {
148 type tapi-common:directive-value;
149 config false;
150 description "none";
151 }
152 uses tapi-common:local-class;
153 description "none";
154 }
155 grouping path-optimization-constraint {
156 leaf traffic-interruption {
157 type tapi-common:directive-value;
158 config false;
159 description "none";
160 }
161 uses tapi-common:local-class;
162 description "none";
163 }
164 grouping routing-constraint {
165 container requested-capacity {
166 config false;
167 uses tapi-common:capacity;
168 description "none";
169 }
170 leaf service-level {
171 type string;
172 config false;
173 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
174 }
175 leaf-list path-layer {
176 type tapi-common:layer-protocol-name;
177 config false;
178 description "none";
179 }
180 list cost-characteristic {
181 key 'cost-name';
182 config false;
183 uses tapi-topology:cost-characteristic;
184 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
185 }
186 list latency-characteristic {
187 key 'traffic-property-name';
188 config false;
189 uses tapi-topology:latency-characteristic;
190 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
191 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800192 list include-topology {
193 uses tapi-topology:topology-ref;
194 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700195 config false;
196 description "none";
197 }
198 leaf-list avoid-topology {
199 type leafref {
200 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
201 }
202 config false;
203 description "none";
204 }
205 uses tapi-common:local-class;
206 description "none";
207 }
208 grouping path-computation-context {
209 list path-comp-service {
210 key 'uuid';
211 uses path-computation-service;
212 description "none";
213 }
214 list path {
215 key 'uuid';
216 config false;
217 uses path;
218 description "none";
219 }
220 description "none";
221 }
222
223 /***********************
224 * package interfaces
225 **********************/
226 rpc compute-p-2-p-path {
227 description "none";
228 input {
229 list sep {
230 min-elements 2;
231 max-elements 2;
232 uses path-service-end-point;
233 description "none";
234 }
235 container routing-constraint {
236 uses routing-constraint;
237 description "none";
238 }
239 container objective-function {
240 uses path-objective-function;
241 description "none";
242 }
243 }
244 output {
245 container service {
246 uses path-computation-service;
247 description "none";
248 }
249 }
250 }
251 rpc optimize-p-2-p-path {
252 description "none";
253 input {
254 leaf path-id-or-name {
255 type string;
256 description "none";
257 }
258 container routing-constraint {
259 uses routing-constraint;
260 description "none";
261 }
262 container optimization-constraint {
263 uses path-optimization-constraint;
264 description "none";
265 }
266 container objective-function {
267 uses path-objective-function;
268 description "none";
269 }
270 }
271 output {
272 container service {
273 uses path-computation-service;
274 description "none";
275 }
276 }
277 }
278 rpc delete-p-2-p-path {
279 description "none";
280 input {
281 leaf path-id-or-name {
282 type string;
283 description "none";
284 }
285 }
286 output {
287 container service {
288 uses path-computation-service;
289 description "none";
290 }
291 }
292 }
293
294}