blob: 75c0231eaeaa66d76a9eca57ad1674e70a8e2104 [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";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070014 contact "
15 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
16 Project List: <mailto:transport-api@opennetworking.org>
17 Editor: Karthik Sethuraman
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080018 <mailto:karthik.sethuraman@necam.com>";
19 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";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080024 revision 2018-03-07 {
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070025 description "ONF Transport API version 2.0.2
26 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
27 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
28 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
29 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
30 }
31 revision 2018-02-16 {
32 description "ONF Transport API version 2.0.1
33 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
34 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
35 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
36 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
37 }
38 revision 2018-01-02 {
39 description "ONF Transport API version 2.0.0
40 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
41 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
42 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
43 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070044 }
45 augment "/tapi-common:context" {
46 uses connectivity-context;
47 description "Augments the base TAPI Context with ConnectivityService information";
48 }
49 augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
50 uses cep-list;
51 description "none";
52 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080053
54 /*************************
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070055 * definitions of references
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080056 *************************/
57 grouping connectivity-service-ref {
58 leaf connectivity-service-id {
59 type leafref {
60 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
61 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070062 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080063 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070064 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080065 }
66
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070067 grouping connectivity-service-end-point-ref {
68 uses connectivity-service-ref;
69 leaf connectivity-service-end-point-id {
70 type leafref {
71 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
72 }
73 description "none";
74 }
75 description "none";
76 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080077 grouping connection-end-point-ref {
78 uses tapi-topology:owned-node-edge-point-ref;
79 leaf connection-end-point-id {
80 type leafref {
81 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
82 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070083 description "none";
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 }
87
88 grouping connection-ref {
89 leaf connection-id {
90 type leafref {
91 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
92 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070093 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080094 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070095 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080096 }
97
98 grouping switch-control-ref {
99 uses connection-ref;
100 leaf switch-control-id {
101 type leafref {
102 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
103 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700104 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800105 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700106 description "none";
107 }
108
109 grouping route-ref {
110 uses connection-ref;
111 leaf route-id {
112 type leafref {
113 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
114 }
115 description "none";
116 }
117 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800118 }
119
Toru Furusawa28988892017-10-30 17:28:40 -0700120 /***********************
121 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700122 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -0700123 grouping connection {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800124 list connection-end-point {
125 uses connection-end-point-ref;
126 key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700127 config false;
128 min-elements 2;
129 description "none";
130 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700131 list lower-connection {
132 uses connection-ref;
133 key 'connection-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700134 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).
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700135 Aggregation is used as for the Node/Topology to allow changes in hierarchy.
136 Connection aggregation reflects Node/Topology aggregation.
Toru Furusawa28988892017-10-30 17:28:40 -0700137 The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
138 }
Toru Furusawa28988892017-10-30 17:28:40 -0700139 list route {
140 key 'local-id';
141 config false;
142 uses route;
143 description "none";
144 }
145 list switch-control {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800146 key 'uuid';
Toru Furusawa28988892017-10-30 17:28:40 -0700147 config false;
148 uses switch-control;
149 description "none";
150 }
Toru Furusawa28988892017-10-30 17:28:40 -0700151 leaf direction {
152 type tapi-common:forwarding-direction;
153 config false;
154 description "none";
155 }
156 leaf layer-protocol-name {
157 type tapi-common:layer-protocol-name;
158 config false;
159 description "none";
160 }
161 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500162 uses tapi-common:operational-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700163 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.
164 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
165 }
166 grouping connection-end-point {
wu6a418d22018-02-02 01:49:21 -0500167 leaf layer-protocol-name {
168 type tapi-common:layer-protocol-name;
169 config false;
170 description "none";
171 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700172 container connectivity-service-end-point {
173 uses connectivity-service-end-point-ref;
wu6a418d22018-02-02 01:49:21 -0500174 description "none";
175 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800176 list parent-node-edge-point {
177 uses tapi-topology:owned-node-edge-point-ref;
178 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700179 config false;
180 min-elements 1;
Toru Furusawa28988892017-10-30 17:28:40 -0700181 description "none";
182 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800183 list client-node-edge-point {
184 uses tapi-topology:owned-node-edge-point-ref;
185 key 'topology-id node-id owned-node-edge-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700186 config false;
187 description "none";
188 }
Toru Furusawa28988892017-10-30 17:28:40 -0700189 leaf connection-port-direction {
190 type tapi-common:port-direction;
191 config false;
192 description "The orientation of defined flow at the EndPoint.";
193 }
194 leaf connection-port-role {
195 type tapi-common:port-role;
196 config false;
197 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. ";
198 }
199 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500200 uses tapi-common:operational-state-pac;
201 uses tapi-common:termination-pac;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700202 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
Toru Furusawa28988892017-10-30 17:28:40 -0700203 The structure of LTP supports all transport protocols including circuit and packet forms.";
204 }
205 grouping connectivity-constraint {
206 leaf service-type {
207 type service-type;
Toru Furusawa28988892017-10-30 17:28:40 -0700208 description "none";
209 }
210 leaf service-level {
211 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700212 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
213 }
214 leaf is-exclusive {
215 type boolean;
216 default "true";
217 description "To distinguish if the resources are exclusive to the service - for example between EPL(isExclusive=true) and EVPL (isExclusive=false), or between EPLAN (isExclusive=true) and EVPLAN (isExclusive=false)";
218 }
219 container requested-capacity {
Toru Furusawa28988892017-10-30 17:28:40 -0700220 uses tapi-common:capacity;
221 description "none";
222 }
223 container schedule {
224 uses tapi-common:time-range;
225 description "none";
226 }
227 list cost-characteristic {
228 key 'cost-name';
Toru Furusawa28988892017-10-30 17:28:40 -0700229 uses tapi-topology:cost-characteristic;
230 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
231 }
232 list latency-characteristic {
233 key 'traffic-property-name';
Toru Furusawa28988892017-10-30 17:28:40 -0700234 uses tapi-topology:latency-characteristic;
235 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
236 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700237 container coroute-inclusion {
238 uses connectivity-service-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700239 description "none";
240 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800241 list diversity-exclusion {
242 uses connectivity-service-ref;
243 key 'connectivity-service-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700244 description "none";
245 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800246 uses route-compute-policy;
Toru Furusawa28988892017-10-30 17:28:40 -0700247 description "none";
248 }
249 grouping connectivity-service {
250 list end-point {
251 key 'local-id';
252 min-elements 2;
253 uses connectivity-service-end-point;
254 description "none";
255 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700256 list connection {
257 uses connection-ref;
258 key 'connection-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700259 config false;
260 description "none";
261 }
Toru Furusawa28988892017-10-30 17:28:40 -0700262 leaf direction {
263 type tapi-common:forwarding-direction;
264 description "none";
265 }
266 leaf layer-protocol-name {
267 type tapi-common:layer-protocol-name;
268 description "none";
269 }
Toru Furusawa28988892017-10-30 17:28:40 -0700270 uses tapi-common:service-spec;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800271 uses connectivity-constraint;
272 uses topology-constraint;
wu6a418d22018-02-02 01:49:21 -0500273 uses tapi-common:admin-state-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800274 uses resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700275 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.
276 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
277 }
278 grouping connectivity-service-end-point {
wu6a418d22018-02-02 01:49:21 -0500279 leaf layer-protocol-name {
280 type tapi-common:layer-protocol-name;
281 description "none";
282 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800283 container service-interface-point {
284 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700285 description "none";
286 }
Toru Furusawa28988892017-10-30 17:28:40 -0700287 container capacity {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800288 uses tapi-common:capacity;
Toru Furusawa28988892017-10-30 17:28:40 -0700289 description "none";
290 }
291 leaf direction {
292 type tapi-common:port-direction;
293 description "The orientation of defined flow at the EndPoint.";
294 }
295 leaf role {
296 type tapi-common:port-role;
297 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. ";
298 }
299 leaf protection-role {
300 type protection-role;
301 description "To specify the protection role of this Port when create or update ConnectivityService.";
302 }
303 uses tapi-common:local-class;
wu6a418d22018-02-02 01:49:21 -0500304 uses tapi-common:admin-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700305 description "The association of the FC to LTPs is made via EndPoints.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700306 The EndPoint (EP) object class models the access to the FC function.
307 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
308 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 -0700309 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700310 The EP replaces the Protection Unit of a traditional protection model.
Toru Furusawa28988892017-10-30 17:28:40 -0700311 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
312 }
313 grouping route {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700314 list connection-end-point {
315 uses connection-end-point-ref;
316 key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700317 config false;
318 min-elements 2;
319 description "none";
320 }
321 uses tapi-common:local-class;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700322 description "The FC Route (FcRoute) object class models the individual routes of an FC.
323 The route of an FC object is represented by a list of FCs at a lower level.
Toru Furusawa28988892017-10-30 17:28:40 -0700324 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
325 }
326 grouping connectivity-context {
327 list connectivity-service {
328 key 'uuid';
329 uses connectivity-service;
330 description "none";
331 }
332 list connection {
333 key 'uuid';
334 config false;
335 uses connection;
336 description "none";
337 }
338 description "none";
339 }
340 grouping switch {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800341 list selected-connection-end-point {
342 uses connection-end-point-ref;
343 key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700344 min-elements 1;
345 description "none";
346 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700347 list selected-route {
348 uses route-ref;
349 key 'connection-id route-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700350 min-elements 1;
351 description "none";
352 }
353 leaf selection-control {
354 type selection-control;
355 description "Degree of administrative control applied to the switch selection.";
356 }
357 leaf selection-reason {
358 type selection-reason;
359 config false;
360 description "The reason for the current switch selection.";
361 }
362 leaf switch-direction {
363 type tapi-common:port-direction;
364 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
365 }
366 uses tapi-common:local-class;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700367 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).
Toru Furusawa28988892017-10-30 17:28:40 -0700368 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.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700369 The FC switch represents and defines a protection switch structure encapsulated in the FC.
370 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.
Toru Furusawa28988892017-10-30 17:28:40 -0700371 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.
372 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
373 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).
374 It may be locked out (prevented from switching), force switched or manual switched.
375 It will indicate switch state and change of state.
376 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').
377 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.
378 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
379 }
380 grouping switch-control {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800381 list sub-switch-control {
382 uses switch-control-ref;
383 key 'connection-id switch-control-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700384 description "none";
385 }
386 list switch {
387 key 'local-id';
388 uses switch;
389 description "none";
390 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800391 uses tapi-common:resource-spec;
392 uses resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700393 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.";
394 }
395 grouping resilience-constraint {
396 container resilience-type {
397 uses tapi-topology:resilience-type;
398 description "none";
399 }
400 leaf restoration-coordinate-type {
401 type coordinate-type;
402 description " The coordination mechanism between multi-layers.";
403 }
404 leaf restore-priority {
405 type uint64;
406 description "none";
407 }
408 leaf reversion-mode {
409 type reversion-mode;
410 description "Indcates whether the protection scheme is revertive or non-revertive.";
411 }
412 leaf wait-to-revert-time {
413 type uint64;
414 default "15";
415 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.";
416 }
417 leaf hold-off-time {
418 type uint64;
419 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
420 }
421 leaf is-lock-out {
422 type boolean;
423 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
424 This overrides all other protection control states including forced.
425 If the item is locked out then it cannot be used under any circumstances.
426 Note: Only relevant when part of a protection scheme.";
427 }
428 leaf is-frozen {
429 type boolean;
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700430 description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
Toru Furusawa28988892017-10-30 17:28:40 -0700431 Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
432 All administrative controls of any aspect of protection are rejected.";
433 }
434 leaf is-coordinated-switching-both-ends {
435 type boolean;
436 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
437 }
438 leaf max-switch-times {
439 type uint64;
440 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
441 }
442 leaf layer-protocol {
443 type tapi-common:layer-protocol-name;
444 description "Indicate which layer this resilience parameters package configured for.";
445 }
Toru Furusawa28988892017-10-30 17:28:40 -0700446 description "A list of control parameters to apply to a switch.";
447 }
448 grouping topology-constraint {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800449 list include-topology {
450 uses tapi-topology:topology-ref;
451 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700452 config false;
453 description "none";
454 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800455 list avoid-topology {
456 uses tapi-topology:topology-ref;
457 key 'topology-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700458 config false;
459 description "none";
460 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800461 list include-path {
462 uses tapi-path-computation:path-ref;
463 key 'path-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700464 config false;
465 description "none";
466 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800467 list exclude-path {
468 uses tapi-path-computation:path-ref;
469 key 'path-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700470 config false;
471 description "none";
472 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800473 list include-link {
474 uses tapi-topology:link-ref;
475 key 'topology-id link-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700476 config false;
477 description "This is a loose constraint - that is it is unordered and could be a partial list ";
478 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800479 list exclude-link {
480 uses tapi-topology:link-ref;
481 key 'topology-id link-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700482 config false;
483 description "none";
484 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800485 list include-node {
486 uses tapi-topology:node-ref;
487 key 'topology-id node-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700488 config false;
489 description "This is a loose constraint - that is it is unordered and could be a partial list";
490 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800491 list exclude-node {
492 uses tapi-topology:node-ref;
493 key 'topology-id node-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700494 config false;
495 description "none";
496 }
497 leaf-list preferred-transport-layer {
498 type tapi-common:layer-protocol-name;
499 config false;
500 description "soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers";
501 }
Toru Furusawa28988892017-10-30 17:28:40 -0700502 description "none";
503 }
504 grouping cep-list {
505 list connection-end-point {
506 key 'uuid';
507 uses connection-end-point;
508 description "none";
509 }
510 description "none";
511 }
512 grouping route-compute-policy {
513 leaf route-objective-function {
514 type route-objective-function;
515 description "none";
516 }
517 leaf diversity-policy {
518 type diversity-policy;
519 description "none";
520 }
521 description "none";
522 }
523
524 /***********************
525 * package type-definitions
526 **********************/
527 typedef service-type {
528 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500529 enum POINT_TO_POINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700530 description "none";
531 }
wu6a418d22018-02-02 01:49:21 -0500532 enum POINT_TO_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700533 description "none";
534 }
wu6a418d22018-02-02 01:49:21 -0500535 enum MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700536 description "none";
537 }
wu6a418d22018-02-02 01:49:21 -0500538 enum ROOTED_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700539 description "none";
540 }
541 }
542 description "none";
543 }
544 typedef reversion-mode {
545 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500546 enum REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700547 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).";
548 }
wu6a418d22018-02-02 01:49:21 -0500549 enum NON-REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700550 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
551 }
552 }
553 description "The reversion mode associated with protection.";
554 }
555 typedef selection-control {
556 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500557 enum LOCK_OUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700558 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
559 This overrides all other protection control states including forced.
560 If the item is locked out then it cannot be used under any circumstances.
561 Note: Only relevant when part of a protection scheme.";
562 }
wu6a418d22018-02-02 01:49:21 -0500563 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700564 description "none";
565 }
wu6a418d22018-02-02 01:49:21 -0500566 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700567 description "none";
568 }
wu6a418d22018-02-02 01:49:21 -0500569 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700570 description "none";
571 }
572 }
573 description "Possible degrees of administrative control applied to the Route selection.";
574 }
575 typedef selection-reason {
576 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500577 enum LOCKOUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700578 description "none";
579 }
wu6a418d22018-02-02 01:49:21 -0500580 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700581 description "none";
582 }
wu6a418d22018-02-02 01:49:21 -0500583 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700584 description "none";
585 }
wu6a418d22018-02-02 01:49:21 -0500586 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700587 description "none";
588 }
wu6a418d22018-02-02 01:49:21 -0500589 enum WAIT_TO_REVERT {
Toru Furusawa28988892017-10-30 17:28:40 -0700590 description "none";
591 }
wu6a418d22018-02-02 01:49:21 -0500592 enum SIGNAL_DEGRADE {
Toru Furusawa28988892017-10-30 17:28:40 -0700593 description "none";
594 }
wu6a418d22018-02-02 01:49:21 -0500595 enum SIGNAL_FAIL {
Toru Furusawa28988892017-10-30 17:28:40 -0700596 description "none";
597 }
598 }
599 description "The cause of the current route selection.";
600 }
601 typedef coordinate-type {
602 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500603 enum NO_COORDINATE {
Toru Furusawa28988892017-10-30 17:28:40 -0700604 description "none";
605 }
wu6a418d22018-02-02 01:49:21 -0500606 enum HOLD_OFF_TIME {
Toru Furusawa28988892017-10-30 17:28:40 -0700607 description "none";
608 }
wu6a418d22018-02-02 01:49:21 -0500609 enum WAIT_FOR_NOTIFICATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700610 description "none";
611 }
612 }
613 description "none";
614 }
615 typedef route-objective-function {
616 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500617 enum MIN_WORK_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700618 description "none";
619 }
wu6a418d22018-02-02 01:49:21 -0500620 enum MIN_WORK_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700621 description "none";
622 }
wu6a418d22018-02-02 01:49:21 -0500623 enum MIN_WORK_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700624 description "none";
625 }
wu6a418d22018-02-02 01:49:21 -0500626 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700627 description "none";
628 }
wu6a418d22018-02-02 01:49:21 -0500629 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700630 description "none";
631 }
wu6a418d22018-02-02 01:49:21 -0500632 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700633 description "none";
634 }
wu6a418d22018-02-02 01:49:21 -0500635 enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700636 description "none";
637 }
638 }
639 description "none";
640 }
641 typedef diversity-policy {
642 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500643 enum SRLG {
Toru Furusawa28988892017-10-30 17:28:40 -0700644 description "none";
645 }
wu6a418d22018-02-02 01:49:21 -0500646 enum SRNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700647 description "none";
648 }
wu6a418d22018-02-02 01:49:21 -0500649 enum SNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700650 description "none";
651 }
wu6a418d22018-02-02 01:49:21 -0500652 enum NODE {
Toru Furusawa28988892017-10-30 17:28:40 -0700653 description "none";
654 }
wu6a418d22018-02-02 01:49:21 -0500655 enum LINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700656 description "none";
657 }
658 }
659 description "none";
660 }
661 typedef protection-role {
662 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500663 enum WORK {
Toru Furusawa28988892017-10-30 17:28:40 -0700664 description "none";
665 }
wu6a418d22018-02-02 01:49:21 -0500666 enum PROTECT {
Toru Furusawa28988892017-10-30 17:28:40 -0700667 description "none";
668 }
wu6a418d22018-02-02 01:49:21 -0500669 enum PROTECTED {
Toru Furusawa28988892017-10-30 17:28:40 -0700670 description "none";
671 }
wu6a418d22018-02-02 01:49:21 -0500672 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700673 description "none";
674 }
wu6a418d22018-02-02 01:49:21 -0500675 enum WORK_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700676 description "none";
677 }
wu6a418d22018-02-02 01:49:21 -0500678 enum PROTECT_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700679 description "none";
680 }
681 }
682 description "none";
683 }
684
685 /***********************
686 * package interfaces
687 **********************/
688 rpc get-connection-details {
689 description "none";
690 input {
691 leaf service-id-or-name {
692 type string;
693 description "none";
694 }
695 leaf connection-id-or-name {
696 type string;
697 description "none";
698 }
699 }
700 output {
701 container connection {
702 uses connection;
703 description "none";
704 }
705 }
706 }
707 rpc get-connectivity-service-list {
708 description "none";
709 output {
710 list service {
711 uses connectivity-service;
712 description "none";
713 }
714 }
715 }
716 rpc get-connectivity-service-details {
717 description "none";
718 input {
719 leaf service-id-or-name {
720 type string;
721 description "none";
722 }
723 }
724 output {
725 container service {
726 uses connectivity-service;
727 description "none";
728 }
729 }
730 }
731 rpc create-connectivity-service {
732 description "none";
733 input {
734 list end-point {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800735 key 'local-id';
Toru Furusawa28988892017-10-30 17:28:40 -0700736 min-elements 2;
737 uses connectivity-service-end-point;
738 description "none";
739 }
740 container conn-constraint {
741 uses connectivity-constraint;
742 description "none";
743 }
744 container topo-constraint {
745 uses topology-constraint;
746 description "none";
747 }
748 list resilience-constraint {
749 uses resilience-constraint;
750 description "none";
751 }
752 leaf state {
753 type string;
754 description "none";
755 }
756 }
757 output {
758 container service {
759 uses connectivity-service;
760 description "none";
761 }
762 }
763 }
764 rpc update-connectivity-service {
765 description "none";
766 input {
767 leaf service-id-or-name {
768 type string;
769 description "none";
770 }
771 container end-point {
772 uses connectivity-service-end-point;
773 description "none";
774 }
775 container conn-constraint {
776 uses connectivity-constraint;
777 description "none";
778 }
779 container topo-constraint {
780 uses topology-constraint;
781 description "none";
782 }
783 list resilience-constraint {
784 uses resilience-constraint;
785 description "none";
786 }
787 leaf state {
788 type string;
789 description "none";
790 }
791 }
792 output {
793 container service {
794 uses connectivity-service;
795 description "none";
796 }
797 }
798 }
799 rpc delete-connectivity-service {
800 description "none";
801 input {
802 leaf service-id-or-name {
803 type string;
804 description "none";
805 }
806 }
807 output {
808 container service {
809 uses connectivity-service;
810 description "none";
811 }
812 }
813 }
814
815}