blob: ad933c59943b153ce9c97b6bc9bea97439723842 [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 HIGUCHI7f165b12018-03-25 19:05:29 -070011 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 {
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070022 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.
24 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
25 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
26 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
27 }
28 revision 2018-02-16 {
29 description "ONF Transport API version 2.0.1
30 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
31 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
32 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
33 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
34 }
35 revision 2018-01-02 {
36 description "ONF Transport API version 2.0.0
37 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
38 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
39 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
40 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070041 }
42 augment "/tapi-common:context" {
43 uses path-computation-context;
44 description "Augments the base TAPI Context with PathComputationService information";
45 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080046
47 /*************************
48 * definitions of refrences
49 *************************/
50 grouping path-ref {
51 leaf path-id {
52 type leafref {
53 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
54 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070055 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080056 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070057 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080058 }
59
Toru Furusawa28988892017-10-30 17:28:40 -070060 /***********************
61 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070062 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070063 grouping path {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080064 list link {
65 uses tapi-topology:link-ref;
66 key 'topology-id link-id';
Toru Furusawa28988892017-10-30 17:28:40 -070067 config false;
68 min-elements 1;
69 description "none";
70 }
71 container routing-constraint {
72 config false;
73 uses routing-constraint;
74 description "none";
75 }
76 uses tapi-common:resource-spec;
77 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";
78 }
79 grouping path-service-end-point {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070080 container service-interface-point {
81 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070082 config false;
83 description "none";
84 }
85 leaf role {
86 type tapi-common:port-role;
87 config false;
88 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. ";
89 }
90 leaf direction {
91 type tapi-common:port-direction;
92 config false;
93 description "The orientation of defined flow at the EndPoint.";
94 }
95 leaf service-layer {
96 type tapi-common:layer-protocol-name;
97 config false;
98 description "none";
99 }
100 uses tapi-common:local-class;
101 description "The association of the FC to LTPs is made via EndPoints.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700102 The EndPoint (EP) object class models the access to the FC function.
103 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
104 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 -0700105 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700106 The EP replaces the Protection Unit of a traditional protection model.
Toru Furusawa28988892017-10-30 17:28:40 -0700107 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
108 }
109 grouping path-computation-service {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800110 list path {
111 uses path-ref;
112 key 'path-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700113 config false;
114 min-elements 1;
115 description "none";
116 }
117 list end-point {
118 key 'local-id';
119 min-elements 2;
120 max-elements 2;
121 uses path-service-end-point;
122 description "none";
123 }
124 container routing-constraint {
125 uses routing-constraint;
126 description "none";
127 }
128 container objective-function {
129 uses path-objective-function;
130 description "none";
131 }
132 container optimization-constraint {
133 uses path-optimization-constraint;
134 description "none";
135 }
136 uses tapi-common:service-spec;
137 description "none";
138 }
139 grouping path-objective-function {
140 leaf bandwidth-optimization {
141 type tapi-common:directive-value;
142 config false;
143 description "none";
144 }
145 leaf concurrent-paths {
146 type tapi-common:directive-value;
147 config false;
148 description "none";
149 }
150 leaf cost-optimization {
151 type tapi-common:directive-value;
152 config false;
153 description "none";
154 }
155 leaf link-utilization {
156 type tapi-common:directive-value;
157 config false;
158 description "none";
159 }
160 leaf resource-sharing {
161 type tapi-common:directive-value;
162 config false;
163 description "none";
164 }
165 uses tapi-common:local-class;
166 description "none";
167 }
168 grouping path-optimization-constraint {
169 leaf traffic-interruption {
170 type tapi-common:directive-value;
171 config false;
172 description "none";
173 }
174 uses tapi-common:local-class;
175 description "none";
176 }
177 grouping routing-constraint {
178 container requested-capacity {
179 config false;
180 uses tapi-common:capacity;
181 description "none";
182 }
183 leaf service-level {
184 type string;
185 config false;
186 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
187 }
188 leaf-list path-layer {
189 type tapi-common:layer-protocol-name;
190 config false;
191 description "none";
192 }
193 list cost-characteristic {
194 key 'cost-name';
195 config false;
196 uses tapi-topology:cost-characteristic;
197 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
198 }
199 list latency-characteristic {
200 key 'traffic-property-name';
201 config false;
202 uses tapi-topology:latency-characteristic;
203 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
204 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800205 list include-topology {
206 uses tapi-topology:topology-ref;
207 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700208 config false;
209 description "none";
210 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700211 list avoid-topology {
212 uses tapi-topology:topology-ref;
213 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700214 config false;
215 description "none";
216 }
217 uses tapi-common:local-class;
218 description "none";
219 }
220 grouping path-computation-context {
221 list path-comp-service {
222 key 'uuid';
223 uses path-computation-service;
224 description "none";
225 }
226 list path {
227 key 'uuid';
228 config false;
229 uses path;
230 description "none";
231 }
232 description "none";
233 }
234
235 /***********************
236 * package interfaces
237 **********************/
238 rpc compute-p-2-p-path {
239 description "none";
240 input {
241 list sep {
242 min-elements 2;
243 max-elements 2;
244 uses path-service-end-point;
245 description "none";
246 }
247 container routing-constraint {
248 uses routing-constraint;
249 description "none";
250 }
251 container objective-function {
252 uses path-objective-function;
253 description "none";
254 }
255 }
256 output {
257 container service {
258 uses path-computation-service;
259 description "none";
260 }
261 }
262 }
263 rpc optimize-p-2-p-path {
264 description "none";
265 input {
266 leaf path-id-or-name {
267 type string;
268 description "none";
269 }
270 container routing-constraint {
271 uses routing-constraint;
272 description "none";
273 }
274 container optimization-constraint {
275 uses path-optimization-constraint;
276 description "none";
277 }
278 container objective-function {
279 uses path-objective-function;
280 description "none";
281 }
282 }
283 output {
284 container service {
285 uses path-computation-service;
286 description "none";
287 }
288 }
289 }
290 rpc delete-p-2-p-path {
291 description "none";
292 input {
293 leaf path-id-or-name {
294 type string;
295 description "none";
296 }
297 }
298 output {
299 container service {
300 uses path-computation-service;
301 description "none";
302 }
303 }
304 }
305
306}