blob: 755eb2ef4bb746cd085424e3b1952dad09696903 [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-connectivity {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-connectivity";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-connectivity;
4 import tapi-common {
5 prefix tapi-common;
6 }
7 import tapi-topology {
8 prefix tapi-topology;
9 }
10 import tapi-path-computation {
11 prefix tapi-path-computation;
12 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080013 organization "ONF OTCC (Open Transport Configuration & Control) Project";
hirokid8fd7862018-10-09 15:24:24 +090014 contact "
15 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
16 Project List: <mailto:transport-api@opennetworking.org>
17 Editor: Karthik Sethuraman
18 <mailto:karthik.sethuraman@necam.com>";
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080019 description "
20 This module contains TAPI Connectivity Model definitions.
21 Source: TapiConnectivity.uml
22 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
23 License: This module is distributed under the Apache License 2.0";
hirokid8fd7862018-10-09 15:24:24 +090024 revision 2018-10-16 {
25 description "ONF Transport API version 2.1.0.
26 - The TAPI YANG models included in this TAPI release (v2.1.0) are a *normative* part of the TAPI SDK.
27 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
28 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
29 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
30 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
31 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
32 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
33 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
34 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
35 YANG models included in this release are not backward compatible with previous TAPI releases.
36 - Changes included in this TAPI release (v2.1.0) are listed in
37 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090038 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
hirokid8fd7862018-10-09 15:24:24 +090039 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
40 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080041 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090042 description "ONF Transport API version 2.0.2
43 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070044 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
Ai Hamano06163902018-12-06 09:18:20 +090045 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070046 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
47 }
48 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090049 description "ONF Transport API version 2.0.1
50 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070051 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
Ai Hamano06163902018-12-06 09:18:20 +090052 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070053 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
54 }
55 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090056 description "ONF Transport API version 2.0.0
57 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070058 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090059 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070060 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070061 }
62 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090063 container connectivity-context {
64 uses connectivity-context;
65 description "Augments the base TAPI Context with ConnectivityService information";
66 }
Toru Furusawa28988892017-10-30 17:28:40 -070067 description "Augments the base TAPI Context with ConnectivityService information";
68 }
hirokid8fd7862018-10-09 15:24:24 +090069 augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
Ai Hamano06163902018-12-06 09:18:20 +090070 container cep-list {
hirokid8fd7862018-10-09 15:24:24 +090071 uses cep-list;
72 description "none";
73 }
Toru Furusawa28988892017-10-30 17:28:40 -070074 description "none";
75 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080076
Ai Hamano06163902018-12-06 09:18:20 +090077 /**************************
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070078 * definitions of references
Ai Hamano06163902018-12-06 09:18:20 +090079 **************************/
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080080 grouping connectivity-service-ref {
hirokid8fd7862018-10-09 15:24:24 +090081 leaf connectivity-service-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080082 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090083 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080084 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070085 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080086 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070087 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080088 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070089 grouping connectivity-service-end-point-ref {
Ai Hamano06163902018-12-06 09:18:20 +090090 uses connectivity-service-ref;
91 leaf connectivity-service-end-point-local-id {
92 type leafref {
93 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
94 }
95 description "none";
96 }
97 description "none";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070098 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080099 grouping connection-end-point-ref {
hirokid8fd7862018-10-09 15:24:24 +0900100 uses tapi-topology:node-edge-point-ref;
101 leaf connection-end-point-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800102 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900103 path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800104 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700105 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800106 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700107 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800108 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800109 grouping connection-ref {
hirokid8fd7862018-10-09 15:24:24 +0900110 leaf connection-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800111 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900112 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800113 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700114 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800115 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700116 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800117 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800118 grouping switch-control-ref {
119 uses connection-ref;
hirokid8fd7862018-10-09 15:24:24 +0900120 leaf switch-control-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800121 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900122 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800123 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700124 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800125 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700126 description "none";
127 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700128 grouping route-ref {
Ai Hamano06163902018-12-06 09:18:20 +0900129 uses connection-ref;
hirokid8fd7862018-10-09 15:24:24 +0900130 leaf route-local-id {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700131 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900132 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700133 }
134 description "none";
135 }
136 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800137 }
138
Ai Hamano06163902018-12-06 09:18:20 +0900139 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -0700140 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +0900141 **************************/
142 grouping connection {
143 list connection-end-point {
144 uses connection-end-point-ref;
145 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
146 config false;
147 min-elements 2;
Toru Furusawa28988892017-10-30 17:28:40 -0700148 description "none";
149 }
Ai Hamano06163902018-12-06 09:18:20 +0900150 list lower-connection {
151 uses connection-ref;
152 key 'connection-uuid';
153 config false;
154 description "An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning).
155 Aggregation is used as for the Node/Topology to allow changes in hierarchy.
156 Connection aggregation reflects Node/Topology aggregation.
157 The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
158 }
159 list supported-client-link {
160 uses tapi-topology:link-ref;
161 key 'topology-uuid link-uuid';
162 config false;
163 description "none";
164 }
165 list route {
166 key 'local-id';
167 config false;
168 uses route;
169 description "none";
170 }
171 list switch-control {
172 key 'uuid';
173 config false;
174 uses switch-control;
175 description "none";
176 }
177 leaf direction {
178 type tapi-common:forwarding-direction;
179 config false;
180 description "none";
181 }
182 leaf layer-protocol-name {
183 type tapi-common:layer-protocol-name;
184 config false;
185 description "none";
186 }
187 uses tapi-common:resource-spec;
188 uses tapi-common:operational-state-pac;
189 description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
190 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
191 }
192 grouping connection-end-point {
193 leaf layer-protocol-name {
194 type tapi-common:layer-protocol-name;
195 config false;
196 description "none";
197 }
198 leaf layer-protocol-qualifier {
199 type tapi-common:layer-protocol-qualifier;
200 config false;
201 description "none";
202 }
203 container parent-node-edge-point {
204 uses tapi-topology:node-edge-point-ref;
205 config false;
206 description "none";
207 }
208 list client-node-edge-point {
209 uses tapi-topology:node-edge-point-ref;
210 key 'topology-uuid node-uuid node-edge-point-uuid';
211 config false;
212 description "none";
213 }
214 list aggregated-connection-end-point {
215 uses connection-end-point-ref;
216 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
217 config false;
218 description "none";
219 }
220 leaf connection-port-direction {
221 type tapi-common:port-direction;
222 config false;
223 description "The orientation of defined flow at the EndPoint.";
224 }
225 leaf connection-port-role {
226 type tapi-common:port-role;
227 config false;
228 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. ";
229 }
230 uses tapi-common:resource-spec;
231 uses tapi-common:operational-state-pac;
232 uses tapi-common:termination-pac;
233 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
234 The structure of LTP supports all transport protocols including circuit and packet forms.";
235 }
236 grouping connectivity-constraint {
237 leaf service-layer {
238 type tapi-common:layer-protocol-name;
239 description "none";
240 }
241 leaf service-type {
242 type service-type;
243 description "none";
244 }
245 leaf service-level {
246 type string;
247 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
248 }
249 container requested-capacity {
250 uses tapi-common:capacity;
251 description "none";
252 }
253 leaf connectivity-direction {
254 type tapi-common:forwarding-direction;
255 description "none";
256 }
257 container schedule {
258 uses tapi-common:time-range;
259 description "none";
260 }
261 container coroute-inclusion {
262 uses connectivity-service-ref;
263 description "none";
264 }
265 list diversity-exclusion {
266 uses connectivity-service-ref;
267 key 'connectivity-service-uuid';
268 description "none";
269 }
270 description "none";
271 }
272 grouping connectivity-service {
273 list end-point {
274 key 'local-id';
275 min-elements 2;
276 uses connectivity-service-end-point;
277 description "none";
278 }
279 list connection {
280 uses connection-ref;
281 key 'connection-uuid';
282 config false;
283 description "none";
284 }
285 uses tapi-common:service-spec;
286 uses connectivity-constraint;
287 uses tapi-path-computation:routing-constraint;
288 uses tapi-path-computation:topology-constraint;
289 uses resilience-constraint;
290 uses tapi-common:admin-state-pac;
291 description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
292 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
293 }
294 grouping connectivity-service-end-point {
295 leaf layer-protocol-name {
296 type tapi-common:layer-protocol-name;
297 description "none";
298 }
299 leaf layer-protocol-qualifier {
300 type tapi-common:layer-protocol-qualifier;
301 description "none";
302 }
303 container service-interface-point {
304 uses tapi-common:service-interface-point-ref;
305 description "none";
306 }
307 list connection-end-point {
308 uses connection-end-point-ref;
309 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
310 config false;
311 description "none";
312 }
313 container capacity {
314 uses tapi-common:capacity;
315 description "none";
316 }
317 leaf direction {
318 type tapi-common:port-direction;
319 description "The orientation of defined flow at the EndPoint.";
320 }
321 leaf role {
322 type tapi-common:port-role;
323 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. ";
324 }
325 leaf protection-role {
326 type protection-role;
327 description "To specify the protection role of this Port when create or update ConnectivityService.";
328 }
329 uses tapi-common:local-class;
330 uses tapi-common:admin-state-pac;
331 description "The association of the FC to LTPs is made via EndPoints.
332 The EndPoint (EP) object class models the access to the FC function.
333 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
334 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
335 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
336 The EP replaces the Protection Unit of a traditional protection model.
337 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
338 }
339 grouping route {
340 list connection-end-point {
341 uses connection-end-point-ref;
342 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
343 config false;
344 min-elements 2;
345 description "none";
346 }
347 uses tapi-common:local-class;
348 description "The FC Route (FcRoute) object class models the individual routes of an FC.
349 The route of an FC object is represented by a list of FCs at a lower level.
350 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
351 }
352 grouping connectivity-context {
353 list connectivity-service {
354 key 'uuid';
355 uses connectivity-service;
356 description "none";
357 }
358 list connection {
359 key 'uuid';
360 config false;
361 uses connection;
362 description "none";
363 }
364 description "none";
365 }
366 grouping switch {
367 list selected-connection-end-point {
368 uses connection-end-point-ref;
369 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
370 min-elements 1;
371 description "none";
372 }
373 list selected-route {
374 uses route-ref;
375 key 'connection-uuid route-local-id';
376 min-elements 1;
377 description "none";
378 }
379 leaf selection-control {
380 type selection-control;
381 description "Degree of administrative control applied to the switch selection.";
382 }
383 leaf selection-reason {
384 type selection-reason;
385 config false;
386 description "The reason for the current switch selection.";
387 }
388 leaf switch-direction {
389 type tapi-common:port-direction;
390 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
391 }
392 uses tapi-common:local-class;
393 description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection).
394 If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.
395 The FC switch represents and defines a protection switch structure encapsulated in the FC.
396 Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit.
397 One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.
398 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
399 It may be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 and 1:1).
400 It may be locked out (prevented from switching), force switched or manual switched.
401 It will indicate switch state and change of state.
402 The switch can be switched away from all sources such that it becomes open and hence two coordinated switches can both feed the same LTP so long as at least one of the two is switched away from all sources (is 'open').
403 The ability for a Switch to be 'high impedance' allows bidirectional ForwardingConstructs to be overlaid on the same bidirectional LTP where the appropriate control is enabled to prevent signal conflict.
404 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
405 }
406 grouping switch-control {
407 list sub-switch-control {
408 uses switch-control-ref;
409 key 'connection-uuid switch-control-uuid';
410 description "none";
411 }
412 list switch {
413 key 'local-id';
414 uses switch;
415 description "none";
416 }
417 uses tapi-common:resource-spec;
418 uses resilience-constraint;
419 description "Represents the capability to control and coordinate switches, to add/delete/modify FCs and to add/delete/modify LTPs/LPs so as to realize a protection scheme.";
420 }
421 grouping resilience-constraint {
422 container resilience-type {
423 uses tapi-topology:resilience-type;
424 description "none";
425 }
426 leaf restoration-coordinate-type {
427 type coordinate-type;
428 description " The coordination mechanism between multi-layers.";
429 }
430 leaf restore-priority {
431 type uint64;
432 description "none";
433 }
434 leaf reversion-mode {
435 type reversion-mode;
436 description "Indcates whether the protection scheme is revertive or non-revertive.";
437 }
438 leaf wait-to-revert-time {
439 type uint64;
440 default "15";
441 description "If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource.";
442 }
443 leaf hold-off-time {
444 type uint64;
445 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
446 }
447 leaf is-lock-out {
448 type boolean;
449 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
450 This overrides all other protection control states including forced.
451 If the item is locked out then it cannot be used under any circumstances.
452 Note: Only relevant when part of a protection scheme.";
453 }
454 leaf is-frozen {
455 type boolean;
456 description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
457 Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
458 All administrative controls of any aspect of protection are rejected.";
459 }
460 leaf is-coordinated-switching-both-ends {
461 type boolean;
462 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
463 }
464 leaf max-switch-times {
465 type uint64;
466 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
467 }
468 leaf-list preferred-restoration-layer {
469 type tapi-common:layer-protocol-name;
470 description "Indicate which layer this resilience parameters package configured for.";
471 }
472 description "A list of control parameters to apply to a switch.";
473 }
474 grouping cep-list {
475 list connection-end-point {
476 key 'uuid';
477 uses connection-end-point;
478 description "none";
479 }
480 description "none";
481 }
482
483 /**************************
484 * package type-definitions
485 **************************/
486 typedef service-type {
487 type enumeration {
488 enum POINT_TO_POINT_CONNECTIVITY {
489 description "none";
490 }
491 enum POINT_TO_MULTIPOINT_CONNECTIVITY {
492 description "none";
493 }
494 enum MULTIPOINT_CONNECTIVITY {
495 description "none";
496 }
497 enum ROOTED_MULTIPOINT_CONNECTIVITY {
498 description "none";
499 }
500 }
501 description "none";
502 }
503 typedef reversion-mode {
504 type enumeration {
505 enum REVERTIVE {
506 description "An FC switched to a lower priority (non-preferred) resource will revert to a higher priority (preferred) resource when that recovers (potentially after some hold-off time).";
507 }
508 enum NON-REVERTIVE {
509 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
510 }
511 }
512 description "The reversion mode associated with protection.";
513 }
514 typedef selection-control {
515 type enumeration {
516 enum LOCK_OUT {
517 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
518 This overrides all other protection control states including forced.
519 If the item is locked out then it cannot be used under any circumstances.
520 Note: Only relevant when part of a protection scheme.";
521 }
522 enum NORMAL {
523 description "none";
524 }
525 enum MANUAL {
526 description "none";
527 }
528 enum FORCED {
529 description "none";
530 }
531 }
532 description "Possible degrees of administrative control applied to the Route selection.";
533 }
534 typedef selection-reason {
535 type enumeration {
536 enum LOCKOUT {
537 description "none";
538 }
539 enum NORMAL {
540 description "none";
541 }
542 enum MANUAL {
543 description "none";
544 }
545 enum FORCED {
546 description "none";
547 }
548 enum WAIT_TO_REVERT {
549 description "none";
550 }
551 enum SIGNAL_DEGRADE {
552 description "none";
553 }
554 enum SIGNAL_FAIL {
555 description "none";
556 }
557 }
558 description "The cause of the current route selection.";
559 }
560 typedef coordinate-type {
561 type enumeration {
562 enum NO_COORDINATE {
563 description "none";
564 }
565 enum HOLD_OFF_TIME {
566 description "none";
567 }
568 enum WAIT_FOR_NOTIFICATION {
569 description "none";
570 }
571 }
572 description "none";
573 }
574 typedef protection-role {
575 type enumeration {
576 enum WORK {
577 description "none";
578 }
579 enum PROTECT {
580 description "none";
581 }
582 enum PROTECTED {
583 description "none";
584 }
585 enum NA {
586 description "none";
587 }
588 enum WORK_RESTORE {
589 description "none";
590 }
591 enum PROTECT_RESTORE {
592 description "none";
593 }
594 }
595 description "none";
596 }
597
598 /**************************
599 * package interfaces
600 **************************/
601 rpc get-connection-details {
602 description "none";
603 input {
604 leaf connection-id-or-name {
605 type string;
606 description "none";
607 }
608 }
609 output {
610 container connection {
611 uses connection;
612 description "none";
613 }
614 }
615 }
616 rpc get-connectivity-service-list {
617 description "none";
618 output {
619 list service {
620 key 'uuid';
621 uses connectivity-service;
622 description "none";
623 }
624 }
625 }
626 rpc get-connectivity-service-details {
627 description "none";
628 input {
629 leaf service-id-or-name {
630 type string;
631 description "none";
632 }
633 }
634 output {
635 container service {
636 uses connectivity-service;
637 description "none";
638 }
639 }
640 }
641 rpc create-connectivity-service {
642 description "none";
643 input {
Toru Furusawa28988892017-10-30 17:28:40 -0700644 list end-point {
645 key 'local-id';
646 min-elements 2;
647 uses connectivity-service-end-point;
648 description "none";
649 }
Ai Hamano06163902018-12-06 09:18:20 +0900650 container connectivity-constraint {
651 uses connectivity-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700652 description "none";
653 }
Ai Hamano06163902018-12-06 09:18:20 +0900654 container routing-constraint {
655 uses tapi-path-computation:routing-constraint;
656 description "none";
657 }
658 container topology-constraint {
659 uses tapi-path-computation:topology-constraint;
660 description "none";
661 }
662 container resilience-constraint {
663 uses resilience-constraint;
664 description "none";
665 }
666 leaf state {
667 type string;
668 description "none";
669 }
Toru Furusawa28988892017-10-30 17:28:40 -0700670 }
Ai Hamano06163902018-12-06 09:18:20 +0900671 output {
672 container service {
Toru Furusawa28988892017-10-30 17:28:40 -0700673 uses connectivity-service;
674 description "none";
675 }
Toru Furusawa28988892017-10-30 17:28:40 -0700676 }
Ai Hamano06163902018-12-06 09:18:20 +0900677 }
678 rpc update-connectivity-service {
679 description "none";
680 input {
681 leaf service-id-or-name {
682 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700683 description "none";
684 }
Ai Hamano06163902018-12-06 09:18:20 +0900685 list end-point {
Toru Furusawa28988892017-10-30 17:28:40 -0700686 key 'local-id';
Ai Hamano06163902018-12-06 09:18:20 +0900687 uses connectivity-service-end-point;
Toru Furusawa28988892017-10-30 17:28:40 -0700688 description "none";
689 }
Ai Hamano06163902018-12-06 09:18:20 +0900690 container connectivity-constraint {
691 uses connectivity-constraint;
692 description "none";
693 }
694 container routing-constraint {
695 uses tapi-path-computation:routing-constraint;
696 description "none";
697 }
698 container topology-constraint {
699 uses tapi-path-computation:topology-constraint;
700 description "none";
701 }
702 container resilience-constraint {
703 uses resilience-constraint;
704 description "none";
705 }
706 leaf state {
707 type string;
708 description "none";
709 }
Toru Furusawa28988892017-10-30 17:28:40 -0700710 }
Ai Hamano06163902018-12-06 09:18:20 +0900711 output {
712 container service {
713 uses connectivity-service;
Toru Furusawa28988892017-10-30 17:28:40 -0700714 description "none";
715 }
Toru Furusawa28988892017-10-30 17:28:40 -0700716 }
Ai Hamano06163902018-12-06 09:18:20 +0900717 }
718 rpc delete-connectivity-service {
719 description "none";
720 input {
721 leaf service-id-or-name {
722 type string;
723 description "none";
724 }
725 }
726 }
727 rpc get-connection-end-point-details {
728 description "none";
729 input {
730 leaf topology-id-or-name {
731 type string;
732 description "none";
733 }
734 leaf node-id-or-name {
735 type string;
736 description "none";
737 }
738 leaf nep-id-or-name {
739 type string;
740 description "none";
741 }
742 leaf cep-id-or-name {
743 type string;
744 description "none";
745 }
746 }
747 output {
748 container connection-end-point {
Toru Furusawa28988892017-10-30 17:28:40 -0700749 uses connection-end-point;
750 description "none";
751 }
Toru Furusawa28988892017-10-30 17:28:40 -0700752 }
Ai Hamano06163902018-12-06 09:18:20 +0900753 }
Toru Furusawa28988892017-10-30 17:28:40 -0700754}