blob: 6c91d5e2deb241cacf85f42db9d59f1eef06b070 [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 HIGUCHI7f165b12018-03-25 19:05:29 -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 version .
24 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080025 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070026 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080027 <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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070042 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080043 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070044 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080045 }
46
Toru Furusawa28988892017-10-30 17:28:40 -070047 /***********************
48 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070049 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070050 grouping path {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080051 list link {
52 uses tapi-topology:link-ref;
53 key 'topology-id link-id';
Toru Furusawa28988892017-10-30 17:28:40 -070054 config false;
55 min-elements 1;
56 description "none";
57 }
58 container routing-constraint {
59 config false;
60 uses routing-constraint;
61 description "none";
62 }
63 uses tapi-common:resource-spec;
64 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";
65 }
66 grouping path-service-end-point {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070067 container service-interface-point {
68 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070069 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 HIGUCHI7f165b12018-03-25 19:05:29 -070089 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 HIGUCHI7f165b12018-03-25 19:05:29 -070093 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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700198 list avoid-topology {
199 uses tapi-topology:topology-ref;
200 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700201 config false;
202 description "none";
203 }
204 uses tapi-common:local-class;
205 description "none";
206 }
207 grouping path-computation-context {
208 list path-comp-service {
209 key 'uuid';
210 uses path-computation-service;
211 description "none";
212 }
213 list path {
214 key 'uuid';
215 config false;
216 uses path;
217 description "none";
218 }
219 description "none";
220 }
221
222 /***********************
223 * package interfaces
224 **********************/
225 rpc compute-p-2-p-path {
226 description "none";
227 input {
228 list sep {
229 min-elements 2;
230 max-elements 2;
231 uses path-service-end-point;
232 description "none";
233 }
234 container routing-constraint {
235 uses routing-constraint;
236 description "none";
237 }
238 container objective-function {
239 uses path-objective-function;
240 description "none";
241 }
242 }
243 output {
244 container service {
245 uses path-computation-service;
246 description "none";
247 }
248 }
249 }
250 rpc optimize-p-2-p-path {
251 description "none";
252 input {
253 leaf path-id-or-name {
254 type string;
255 description "none";
256 }
257 container routing-constraint {
258 uses routing-constraint;
259 description "none";
260 }
261 container optimization-constraint {
262 uses path-optimization-constraint;
263 description "none";
264 }
265 container objective-function {
266 uses path-objective-function;
267 description "none";
268 }
269 }
270 output {
271 container service {
272 uses path-computation-service;
273 description "none";
274 }
275 }
276 }
277 rpc delete-p-2-p-path {
278 description "none";
279 input {
280 leaf path-id-or-name {
281 type string;
282 description "none";
283 }
284 }
285 output {
286 container service {
287 uses path-computation-service;
288 description "none";
289 }
290 }
291 }
292
293}