blob: 9db5ab371eca77324939004157e3d0e001c1d36f [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";
11 contact "
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>";
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";
21 revision 2018-02-16 {
22 description "ONF Transport API version 2.0.1
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/Snowmass-ONFOpenTransport/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/Snowmass-ONFOpenTransport/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 }
33 /***********************
34 * package object-classes
35 **********************/
36 grouping path {
37 leaf-list link {
38 type leafref {
39 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
40 }
41 config false;
42 min-elements 1;
43 description "none";
44 }
45 container routing-constraint {
46 config false;
47 uses routing-constraint;
48 description "none";
49 }
50 uses tapi-common:resource-spec;
51 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";
52 }
53 grouping path-service-end-point {
54 leaf service-interface-point {
55 type leafref {
56 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
57 }
58 config false;
59 description "none";
60 }
61 leaf role {
62 type tapi-common:port-role;
63 config false;
64 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. ";
65 }
66 leaf direction {
67 type tapi-common:port-direction;
68 config false;
69 description "The orientation of defined flow at the EndPoint.";
70 }
71 leaf service-layer {
72 type tapi-common:layer-protocol-name;
73 config false;
74 description "none";
75 }
76 uses tapi-common:local-class;
77 description "The association of the FC to LTPs is made via EndPoints.
78 The EndPoint (EP) object class models the access to the FC function.
79 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
80 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
81 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
82 The EP replaces the Protection Unit of a traditional protection model.
83 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
84 }
85 grouping path-computation-service {
86 leaf-list path {
87 type leafref {
88 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
89 }
90 config false;
91 min-elements 1;
92 description "none";
93 }
94 list end-point {
95 key 'local-id';
96 min-elements 2;
97 max-elements 2;
98 uses path-service-end-point;
99 description "none";
100 }
101 container routing-constraint {
102 uses routing-constraint;
103 description "none";
104 }
105 container objective-function {
106 uses path-objective-function;
107 description "none";
108 }
109 container optimization-constraint {
110 uses path-optimization-constraint;
111 description "none";
112 }
113 uses tapi-common:service-spec;
114 description "none";
115 }
116 grouping path-objective-function {
117 leaf bandwidth-optimization {
118 type tapi-common:directive-value;
119 config false;
120 description "none";
121 }
122 leaf concurrent-paths {
123 type tapi-common:directive-value;
124 config false;
125 description "none";
126 }
127 leaf cost-optimization {
128 type tapi-common:directive-value;
129 config false;
130 description "none";
131 }
132 leaf link-utilization {
133 type tapi-common:directive-value;
134 config false;
135 description "none";
136 }
137 leaf resource-sharing {
138 type tapi-common:directive-value;
139 config false;
140 description "none";
141 }
142 uses tapi-common:local-class;
143 description "none";
144 }
145 grouping path-optimization-constraint {
146 leaf traffic-interruption {
147 type tapi-common:directive-value;
148 config false;
149 description "none";
150 }
151 uses tapi-common:local-class;
152 description "none";
153 }
154 grouping routing-constraint {
155 container requested-capacity {
156 config false;
157 uses tapi-common:capacity;
158 description "none";
159 }
160 leaf service-level {
161 type string;
162 config false;
163 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
164 }
165 leaf-list path-layer {
166 type tapi-common:layer-protocol-name;
167 config false;
168 description "none";
169 }
170 list cost-characteristic {
171 key 'cost-name';
172 config false;
173 uses tapi-topology:cost-characteristic;
174 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
175 }
176 list latency-characteristic {
177 key 'traffic-property-name';
178 config false;
179 uses tapi-topology:latency-characteristic;
180 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
181 }
182 leaf-list include-topology {
183 type leafref {
184 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
185 }
186 config false;
187 description "none";
188 }
189 leaf-list avoid-topology {
190 type leafref {
191 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
192 }
193 config false;
194 description "none";
195 }
196 uses tapi-common:local-class;
197 description "none";
198 }
199 grouping path-computation-context {
200 list path-comp-service {
201 key 'uuid';
202 uses path-computation-service;
203 description "none";
204 }
205 list path {
206 key 'uuid';
207 config false;
208 uses path;
209 description "none";
210 }
211 description "none";
212 }
213
214 /***********************
215 * package interfaces
216 **********************/
217 rpc compute-p-2-p-path {
218 description "none";
219 input {
220 list sep {
221 min-elements 2;
222 max-elements 2;
223 uses path-service-end-point;
224 description "none";
225 }
226 container routing-constraint {
227 uses routing-constraint;
228 description "none";
229 }
230 container objective-function {
231 uses path-objective-function;
232 description "none";
233 }
234 }
235 output {
236 container service {
237 uses path-computation-service;
238 description "none";
239 }
240 }
241 }
242 rpc optimize-p-2-p-path {
243 description "none";
244 input {
245 leaf path-id-or-name {
246 type string;
247 description "none";
248 }
249 container routing-constraint {
250 uses routing-constraint;
251 description "none";
252 }
253 container optimization-constraint {
254 uses path-optimization-constraint;
255 description "none";
256 }
257 container objective-function {
258 uses path-objective-function;
259 description "none";
260 }
261 }
262 output {
263 container service {
264 uses path-computation-service;
265 description "none";
266 }
267 }
268 }
269 rpc delete-p-2-p-path {
270 description "none";
271 input {
272 leaf path-id-or-name {
273 type string;
274 description "none";
275 }
276 }
277 output {
278 container service {
279 uses path-computation-service;
280 description "none";
281 }
282 }
283 }
284
285}