blob: 5b798c7b805f66bcad0528bac674ef7066a0587b [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
hiroki96ab3c22018-12-11 14:10:52 -080022 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
23 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
24 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
25 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
26 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
27 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
28 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
29 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
30 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
31 YANG models included in this release may not be backward compatible with previous TAPI releases.
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080032 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
33 License: This module is distributed under the Apache License 2.0";
hiroki96ab3c22018-12-11 14:10:52 -080034 revision 2018-12-10 {
35 description "ONF Transport API version 2.1.1.
36 Changes included in this TAPI release (v2.1.1) are listed in
37 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
38 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
39 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
40 }
hirokid8fd7862018-10-09 15:24:24 +090041 revision 2018-10-16 {
42 description "ONF Transport API version 2.1.0.
hiroki96ab3c22018-12-11 14:10:52 -080043 Changes included in this TAPI release (v2.1.0) are listed in
44 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090045 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 +090046 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
47 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080048 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090049 description "ONF Transport API version 2.0.2
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.2.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.2/UML>";
54 }
55 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090056 description "ONF Transport API version 2.0.1
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.1.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.1/UML>";
61 }
62 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090063 description "ONF Transport API version 2.0.0
64 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 -070065 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 +090066 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 -070067 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070068 }
69 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090070 container connectivity-context {
71 uses connectivity-context;
72 description "Augments the base TAPI Context with ConnectivityService information";
73 }
Toru Furusawa28988892017-10-30 17:28:40 -070074 description "Augments the base TAPI Context with ConnectivityService information";
75 }
hirokid8fd7862018-10-09 15:24:24 +090076 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 +090077 container cep-list {
hirokid8fd7862018-10-09 15:24:24 +090078 uses cep-list;
79 description "none";
80 }
Toru Furusawa28988892017-10-30 17:28:40 -070081 description "none";
82 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080083
Ai Hamano06163902018-12-06 09:18:20 +090084 /**************************
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070085 * definitions of references
Ai Hamano06163902018-12-06 09:18:20 +090086 **************************/
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080087 grouping connectivity-service-ref {
hirokid8fd7862018-10-09 15:24:24 +090088 leaf connectivity-service-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080089 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090090 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080091 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070092 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080093 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070094 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080095 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070096 grouping connectivity-service-end-point-ref {
Ai Hamano06163902018-12-06 09:18:20 +090097 uses connectivity-service-ref;
98 leaf connectivity-service-end-point-local-id {
99 type leafref {
100 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
101 }
102 description "none";
103 }
104 description "none";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700105 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800106 grouping connection-end-point-ref {
hirokid8fd7862018-10-09 15:24:24 +0900107 uses tapi-topology:node-edge-point-ref;
108 leaf connection-end-point-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800109 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900110 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 -0800111 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700112 description "none";
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 HIGUCHI348bba72018-03-08 13:46:48 -0800116 grouping connection-ref {
hirokid8fd7862018-10-09 15:24:24 +0900117 leaf connection-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800118 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900119 path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:uuid';
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800120 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700121 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800122 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700123 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800124 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800125 grouping switch-control-ref {
126 uses connection-ref;
hirokid8fd7862018-10-09 15:24:24 +0900127 leaf switch-control-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800128 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900129 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 -0800130 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700131 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800132 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700133 description "none";
134 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700135 grouping route-ref {
Ai Hamano06163902018-12-06 09:18:20 +0900136 uses connection-ref;
hirokid8fd7862018-10-09 15:24:24 +0900137 leaf route-local-id {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700138 type leafref {
hirokid8fd7862018-10-09 15:24:24 +0900139 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 -0700140 }
141 description "none";
142 }
143 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800144 }
145
Ai Hamano06163902018-12-06 09:18:20 +0900146 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -0700147 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +0900148 **************************/
149 grouping connection {
150 list connection-end-point {
151 uses connection-end-point-ref;
152 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
153 config false;
154 min-elements 2;
Toru Furusawa28988892017-10-30 17:28:40 -0700155 description "none";
156 }
Ai Hamano06163902018-12-06 09:18:20 +0900157 list lower-connection {
158 uses connection-ref;
159 key 'connection-uuid';
160 config false;
161 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).
162 Aggregation is used as for the Node/Topology to allow changes in hierarchy.
163 Connection aggregation reflects Node/Topology aggregation.
164 The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
165 }
166 list supported-client-link {
167 uses tapi-topology:link-ref;
168 key 'topology-uuid link-uuid';
169 config false;
170 description "none";
171 }
172 list route {
173 key 'local-id';
174 config false;
175 uses route;
176 description "none";
177 }
178 list switch-control {
179 key 'uuid';
180 config false;
181 uses switch-control;
182 description "none";
183 }
184 leaf direction {
185 type tapi-common:forwarding-direction;
186 config false;
187 description "none";
188 }
189 leaf layer-protocol-name {
190 type tapi-common:layer-protocol-name;
191 config false;
192 description "none";
193 }
194 uses tapi-common:resource-spec;
195 uses tapi-common:operational-state-pac;
196 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.
197 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
198 }
199 grouping connection-end-point {
200 leaf layer-protocol-name {
201 type tapi-common:layer-protocol-name;
202 config false;
203 description "none";
204 }
205 leaf layer-protocol-qualifier {
206 type tapi-common:layer-protocol-qualifier;
207 config false;
208 description "none";
209 }
210 container parent-node-edge-point {
211 uses tapi-topology:node-edge-point-ref;
212 config false;
213 description "none";
214 }
215 list client-node-edge-point {
216 uses tapi-topology:node-edge-point-ref;
217 key 'topology-uuid node-uuid node-edge-point-uuid';
218 config false;
219 description "none";
220 }
221 list aggregated-connection-end-point {
222 uses connection-end-point-ref;
223 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
224 config false;
225 description "none";
226 }
227 leaf connection-port-direction {
228 type tapi-common:port-direction;
229 config false;
230 description "The orientation of defined flow at the EndPoint.";
231 }
232 leaf connection-port-role {
233 type tapi-common:port-role;
234 config false;
235 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. ";
236 }
237 uses tapi-common:resource-spec;
238 uses tapi-common:operational-state-pac;
239 uses tapi-common:termination-pac;
240 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
241 The structure of LTP supports all transport protocols including circuit and packet forms.";
242 }
243 grouping connectivity-constraint {
244 leaf service-layer {
245 type tapi-common:layer-protocol-name;
246 description "none";
247 }
248 leaf service-type {
249 type service-type;
250 description "none";
251 }
252 leaf service-level {
253 type string;
254 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
255 }
256 container requested-capacity {
257 uses tapi-common:capacity;
258 description "none";
259 }
260 leaf connectivity-direction {
261 type tapi-common:forwarding-direction;
262 description "none";
263 }
264 container schedule {
265 uses tapi-common:time-range;
266 description "none";
267 }
268 container coroute-inclusion {
269 uses connectivity-service-ref;
270 description "none";
271 }
272 list diversity-exclusion {
273 uses connectivity-service-ref;
274 key 'connectivity-service-uuid';
275 description "none";
276 }
277 description "none";
278 }
279 grouping connectivity-service {
280 list end-point {
281 key 'local-id';
282 min-elements 2;
283 uses connectivity-service-end-point;
284 description "none";
285 }
286 list connection {
287 uses connection-ref;
288 key 'connection-uuid';
289 config false;
290 description "none";
291 }
292 uses tapi-common:service-spec;
293 uses connectivity-constraint;
294 uses tapi-path-computation:routing-constraint;
295 uses tapi-path-computation:topology-constraint;
296 uses resilience-constraint;
297 uses tapi-common:admin-state-pac;
298 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.
299 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
300 }
301 grouping connectivity-service-end-point {
302 leaf layer-protocol-name {
303 type tapi-common:layer-protocol-name;
304 description "none";
305 }
306 leaf layer-protocol-qualifier {
307 type tapi-common:layer-protocol-qualifier;
308 description "none";
309 }
310 container service-interface-point {
311 uses tapi-common:service-interface-point-ref;
312 description "none";
313 }
314 list connection-end-point {
315 uses connection-end-point-ref;
316 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
317 config false;
318 description "none";
319 }
320 container capacity {
321 uses tapi-common:capacity;
322 description "none";
323 }
324 leaf direction {
325 type tapi-common:port-direction;
326 description "The orientation of defined flow at the EndPoint.";
327 }
328 leaf role {
329 type tapi-common:port-role;
330 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. ";
331 }
332 leaf protection-role {
333 type protection-role;
334 description "To specify the protection role of this Port when create or update ConnectivityService.";
335 }
336 uses tapi-common:local-class;
337 uses tapi-common:admin-state-pac;
338 description "The association of the FC to LTPs is made via EndPoints.
339 The EndPoint (EP) object class models the access to the FC function.
340 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
341 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
342 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
343 The EP replaces the Protection Unit of a traditional protection model.
344 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
345 }
346 grouping route {
347 list connection-end-point {
348 uses connection-end-point-ref;
349 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
350 config false;
351 min-elements 2;
352 description "none";
353 }
354 uses tapi-common:local-class;
355 description "The FC Route (FcRoute) object class models the individual routes of an FC.
356 The route of an FC object is represented by a list of FCs at a lower level.
357 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
358 }
359 grouping connectivity-context {
360 list connectivity-service {
361 key 'uuid';
362 uses connectivity-service;
363 description "none";
364 }
365 list connection {
366 key 'uuid';
367 config false;
368 uses connection;
369 description "none";
370 }
371 description "none";
372 }
373 grouping switch {
374 list selected-connection-end-point {
375 uses connection-end-point-ref;
376 key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
377 min-elements 1;
378 description "none";
379 }
380 list selected-route {
381 uses route-ref;
382 key 'connection-uuid route-local-id';
383 min-elements 1;
384 description "none";
385 }
386 leaf selection-control {
387 type selection-control;
388 description "Degree of administrative control applied to the switch selection.";
389 }
390 leaf selection-reason {
391 type selection-reason;
392 config false;
393 description "The reason for the current switch selection.";
394 }
395 leaf switch-direction {
396 type tapi-common:port-direction;
397 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
398 }
399 uses tapi-common:local-class;
400 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).
401 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.
402 The FC switch represents and defines a protection switch structure encapsulated in the FC.
403 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.
404 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.
405 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
406 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).
407 It may be locked out (prevented from switching), force switched or manual switched.
408 It will indicate switch state and change of state.
409 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').
410 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.
411 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
412 }
413 grouping switch-control {
414 list sub-switch-control {
415 uses switch-control-ref;
416 key 'connection-uuid switch-control-uuid';
417 description "none";
418 }
419 list switch {
420 key 'local-id';
421 uses switch;
422 description "none";
423 }
424 uses tapi-common:resource-spec;
425 uses resilience-constraint;
426 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.";
427 }
428 grouping resilience-constraint {
429 container resilience-type {
430 uses tapi-topology:resilience-type;
431 description "none";
432 }
433 leaf restoration-coordinate-type {
434 type coordinate-type;
435 description " The coordination mechanism between multi-layers.";
436 }
437 leaf restore-priority {
438 type uint64;
439 description "none";
440 }
441 leaf reversion-mode {
442 type reversion-mode;
443 description "Indcates whether the protection scheme is revertive or non-revertive.";
444 }
445 leaf wait-to-revert-time {
446 type uint64;
447 default "15";
448 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.";
449 }
450 leaf hold-off-time {
451 type uint64;
452 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
453 }
454 leaf is-lock-out {
455 type boolean;
456 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
457 This overrides all other protection control states including forced.
458 If the item is locked out then it cannot be used under any circumstances.
459 Note: Only relevant when part of a protection scheme.";
460 }
461 leaf is-frozen {
462 type boolean;
463 description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
464 Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
465 All administrative controls of any aspect of protection are rejected.";
466 }
467 leaf is-coordinated-switching-both-ends {
468 type boolean;
469 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
470 }
471 leaf max-switch-times {
472 type uint64;
473 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
474 }
475 leaf-list preferred-restoration-layer {
476 type tapi-common:layer-protocol-name;
477 description "Indicate which layer this resilience parameters package configured for.";
478 }
479 description "A list of control parameters to apply to a switch.";
480 }
481 grouping cep-list {
482 list connection-end-point {
483 key 'uuid';
484 uses connection-end-point;
485 description "none";
486 }
487 description "none";
488 }
489
490 /**************************
491 * package type-definitions
492 **************************/
493 typedef service-type {
494 type enumeration {
495 enum POINT_TO_POINT_CONNECTIVITY {
496 description "none";
497 }
498 enum POINT_TO_MULTIPOINT_CONNECTIVITY {
499 description "none";
500 }
501 enum MULTIPOINT_CONNECTIVITY {
502 description "none";
503 }
504 enum ROOTED_MULTIPOINT_CONNECTIVITY {
505 description "none";
506 }
507 }
508 description "none";
509 }
510 typedef reversion-mode {
511 type enumeration {
512 enum REVERTIVE {
513 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).";
514 }
515 enum NON-REVERTIVE {
516 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
517 }
518 }
519 description "The reversion mode associated with protection.";
520 }
521 typedef selection-control {
522 type enumeration {
523 enum LOCK_OUT {
524 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
525 This overrides all other protection control states including forced.
526 If the item is locked out then it cannot be used under any circumstances.
527 Note: Only relevant when part of a protection scheme.";
528 }
529 enum NORMAL {
530 description "none";
531 }
532 enum MANUAL {
533 description "none";
534 }
535 enum FORCED {
536 description "none";
537 }
538 }
539 description "Possible degrees of administrative control applied to the Route selection.";
540 }
541 typedef selection-reason {
542 type enumeration {
543 enum LOCKOUT {
544 description "none";
545 }
546 enum NORMAL {
547 description "none";
548 }
549 enum MANUAL {
550 description "none";
551 }
552 enum FORCED {
553 description "none";
554 }
555 enum WAIT_TO_REVERT {
556 description "none";
557 }
558 enum SIGNAL_DEGRADE {
559 description "none";
560 }
561 enum SIGNAL_FAIL {
562 description "none";
563 }
564 }
565 description "The cause of the current route selection.";
566 }
567 typedef coordinate-type {
568 type enumeration {
569 enum NO_COORDINATE {
570 description "none";
571 }
572 enum HOLD_OFF_TIME {
573 description "none";
574 }
575 enum WAIT_FOR_NOTIFICATION {
576 description "none";
577 }
578 }
579 description "none";
580 }
581 typedef protection-role {
582 type enumeration {
583 enum WORK {
584 description "none";
585 }
586 enum PROTECT {
587 description "none";
588 }
589 enum PROTECTED {
590 description "none";
591 }
592 enum NA {
593 description "none";
594 }
595 enum WORK_RESTORE {
596 description "none";
597 }
598 enum PROTECT_RESTORE {
599 description "none";
600 }
601 }
602 description "none";
603 }
604
605 /**************************
606 * package interfaces
607 **************************/
608 rpc get-connection-details {
609 description "none";
610 input {
611 leaf connection-id-or-name {
612 type string;
613 description "none";
614 }
615 }
616 output {
617 container connection {
618 uses connection;
619 description "none";
620 }
621 }
622 }
623 rpc get-connectivity-service-list {
624 description "none";
625 output {
626 list service {
627 key 'uuid';
628 uses connectivity-service;
629 description "none";
630 }
631 }
632 }
633 rpc get-connectivity-service-details {
634 description "none";
635 input {
636 leaf service-id-or-name {
637 type string;
638 description "none";
639 }
640 }
641 output {
642 container service {
643 uses connectivity-service;
644 description "none";
645 }
646 }
647 }
648 rpc create-connectivity-service {
649 description "none";
650 input {
Toru Furusawa28988892017-10-30 17:28:40 -0700651 list end-point {
652 key 'local-id';
653 min-elements 2;
654 uses connectivity-service-end-point;
655 description "none";
656 }
Ai Hamano06163902018-12-06 09:18:20 +0900657 container connectivity-constraint {
658 uses connectivity-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700659 description "none";
660 }
Ai Hamano06163902018-12-06 09:18:20 +0900661 container routing-constraint {
662 uses tapi-path-computation:routing-constraint;
663 description "none";
664 }
665 container topology-constraint {
666 uses tapi-path-computation:topology-constraint;
667 description "none";
668 }
669 container resilience-constraint {
670 uses resilience-constraint;
671 description "none";
672 }
673 leaf state {
674 type string;
675 description "none";
676 }
Toru Furusawa28988892017-10-30 17:28:40 -0700677 }
Ai Hamano06163902018-12-06 09:18:20 +0900678 output {
679 container service {
Toru Furusawa28988892017-10-30 17:28:40 -0700680 uses connectivity-service;
681 description "none";
682 }
Toru Furusawa28988892017-10-30 17:28:40 -0700683 }
Ai Hamano06163902018-12-06 09:18:20 +0900684 }
685 rpc update-connectivity-service {
686 description "none";
687 input {
688 leaf service-id-or-name {
689 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700690 description "none";
691 }
Ai Hamano06163902018-12-06 09:18:20 +0900692 list end-point {
Toru Furusawa28988892017-10-30 17:28:40 -0700693 key 'local-id';
Ai Hamano06163902018-12-06 09:18:20 +0900694 uses connectivity-service-end-point;
Toru Furusawa28988892017-10-30 17:28:40 -0700695 description "none";
696 }
Ai Hamano06163902018-12-06 09:18:20 +0900697 container connectivity-constraint {
698 uses connectivity-constraint;
699 description "none";
700 }
701 container routing-constraint {
702 uses tapi-path-computation:routing-constraint;
703 description "none";
704 }
705 container topology-constraint {
706 uses tapi-path-computation:topology-constraint;
707 description "none";
708 }
709 container resilience-constraint {
710 uses resilience-constraint;
711 description "none";
712 }
713 leaf state {
714 type string;
715 description "none";
716 }
Toru Furusawa28988892017-10-30 17:28:40 -0700717 }
Ai Hamano06163902018-12-06 09:18:20 +0900718 output {
719 container service {
720 uses connectivity-service;
Toru Furusawa28988892017-10-30 17:28:40 -0700721 description "none";
722 }
Toru Furusawa28988892017-10-30 17:28:40 -0700723 }
Ai Hamano06163902018-12-06 09:18:20 +0900724 }
725 rpc delete-connectivity-service {
726 description "none";
727 input {
728 leaf service-id-or-name {
729 type string;
730 description "none";
731 }
732 }
733 }
734 rpc get-connection-end-point-details {
735 description "none";
736 input {
737 leaf topology-id-or-name {
738 type string;
739 description "none";
740 }
741 leaf node-id-or-name {
742 type string;
743 description "none";
744 }
745 leaf nep-id-or-name {
746 type string;
747 description "none";
748 }
749 leaf cep-id-or-name {
750 type string;
751 description "none";
752 }
753 }
754 output {
755 container connection-end-point {
Toru Furusawa28988892017-10-30 17:28:40 -0700756 uses connection-end-point;
757 description "none";
758 }
Toru Furusawa28988892017-10-30 17:28:40 -0700759 }
Ai Hamano06163902018-12-06 09:18:20 +0900760 }
Toru Furusawa28988892017-10-30 17:28:40 -0700761}