blob: 8f223d03480ff6d84239a9bcf2b503206a6693cb [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-connectivity {
2 namespace "urn:onf:params:xml:ns:yang:tapi-connectivity";
3 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 }
13 organization "Open Networking Foundation (ONF) / Open Transport Working Group(OTWG) / Transport API (TAPI) Project";
14 contact "
15 WG Web: TAPI SDK Project <http://opensourcesdn.org/projects/project-snowmass/>
16 WG List: TAPI Discussion list <mailto: transport-api@login.opennetworking.org>,
17 WG Chair: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>,
18 Editor: Ricard Vilalta <mailto:ricard.vilalta@cttc.es>";
19 description "none";
20 revision 2017-05-31 {
21 description "TAPI SDK 2.0-alpha";
22 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020 and RFC 6087";
23 }
24 augment "/tapi-common:context" {
25 uses connectivity-context;
26 description "Augments the base TAPI Context with ConnectivityService information";
27 }
28 augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
29 uses cep-list;
30 description "none";
31 }
32 /***********************
33 * package object-classes
34 **********************/
35 grouping connection {
36 leaf-list connection-end-point {
37 type leafref {
38 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
39 }
40 config false;
41 min-elements 2;
42 description "none";
43 }
44 leaf-list lower-connection {
45 type leafref {
46 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
47 }
48 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).
49 Aggregation is used as for the Node/Topology to allow changes in hierarchy.
50 Connection aggregation reflects Node/Topology aggregation.
51 The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
52 }
Toru Furusawa28988892017-10-30 17:28:40 -070053 list route {
54 key 'local-id';
55 config false;
56 uses route;
57 description "none";
58 }
59 list switch-control {
60 key 'local-id';
61 config false;
62 uses switch-control;
63 description "none";
64 }
Toru Furusawa28988892017-10-30 17:28:40 -070065 leaf direction {
66 type tapi-common:forwarding-direction;
67 config false;
68 description "none";
69 }
70 leaf layer-protocol-name {
71 type tapi-common:layer-protocol-name;
72 config false;
73 description "none";
74 }
75 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -050076 uses tapi-common:operational-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -070077 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.
78 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
79 }
80 grouping connection-end-point {
wu6a418d22018-02-02 01:49:21 -050081 leaf layer-protocol-name {
82 type tapi-common:layer-protocol-name;
83 config false;
84 description "none";
85 }
86 leaf connectivity-service-end-point {
87 type leafref {
88 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
89 }
90 description "none";
91 }
92 leaf-list parent-node-edge-point {
93 type leafref {
94 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
95 }
Toru Furusawa28988892017-10-30 17:28:40 -070096 config false;
97 min-elements 1;
Toru Furusawa28988892017-10-30 17:28:40 -070098 description "none";
99 }
100 leaf-list client-node-edge-point {
101 type leafref {
102 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
103 }
104 config false;
105 description "none";
106 }
Toru Furusawa28988892017-10-30 17:28:40 -0700107 leaf connection-port-direction {
108 type tapi-common:port-direction;
109 config false;
110 description "The orientation of defined flow at the EndPoint.";
111 }
112 leaf connection-port-role {
113 type tapi-common:port-role;
114 config false;
115 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. ";
116 }
117 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500118 uses tapi-common:operational-state-pac;
119 uses tapi-common:termination-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700120 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
121 The structure of LTP supports all transport protocols including circuit and packet forms.";
122 }
123 grouping connectivity-constraint {
124 leaf service-type {
125 type service-type;
126 config false;
127 description "none";
128 }
129 leaf service-level {
130 type string;
131 config false;
132 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
133 }
134 leaf is-exclusive {
135 type boolean;
136 default "true";
137 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)";
138 }
139 container requested-capacity {
140 config false;
141 uses tapi-common:capacity;
142 description "none";
143 }
144 container schedule {
145 uses tapi-common:time-range;
146 description "none";
147 }
148 list cost-characteristic {
149 key 'cost-name';
150 config false;
151 uses tapi-topology:cost-characteristic;
152 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
153 }
154 list latency-characteristic {
155 key 'traffic-property-name';
156 config false;
157 uses tapi-topology:latency-characteristic;
158 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
159 }
Toru Furusawa28988892017-10-30 17:28:40 -0700160 leaf coroute-inclusion {
161 type leafref {
162 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
163 }
164 config false;
165 description "none";
166 }
167 leaf-list diversity-exclusion {
168 type leafref {
169 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
170 }
171 config false;
172 description "none";
173 }
wu6a418d22018-02-02 01:49:21 -0500174 uses tapi-connectivity:route-compute-policy;
Toru Furusawa28988892017-10-30 17:28:40 -0700175 description "none";
176 }
177 grouping connectivity-service {
178 list end-point {
179 key 'local-id';
180 min-elements 2;
181 uses connectivity-service-end-point;
182 description "none";
183 }
184 leaf-list connection {
185 type leafref {
186 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
187 }
188 config false;
189 description "none";
190 }
Toru Furusawa28988892017-10-30 17:28:40 -0700191 leaf direction {
192 type tapi-common:forwarding-direction;
193 description "none";
194 }
195 leaf layer-protocol-name {
196 type tapi-common:layer-protocol-name;
197 description "none";
198 }
Toru Furusawa28988892017-10-30 17:28:40 -0700199 uses tapi-common:service-spec;
wu6a418d22018-02-02 01:49:21 -0500200 uses tapi-connectivity:connectivity-constraint;
201 uses tapi-connectivity:topology-constraint;
202 uses tapi-common:admin-state-pac;
203 uses tapi-connectivity:resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700204 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.
205 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
206 }
207 grouping connectivity-service-end-point {
wu6a418d22018-02-02 01:49:21 -0500208 leaf layer-protocol-name {
209 type tapi-common:layer-protocol-name;
210 description "none";
211 }
Toru Furusawa28988892017-10-30 17:28:40 -0700212 leaf service-interface-point {
213 type leafref {
214 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
215 }
216 description "none";
217 }
Toru Furusawa28988892017-10-30 17:28:40 -0700218 container capacity {
219 uses tapi-common:capacity-pac;
220 description "none";
221 }
222 leaf direction {
223 type tapi-common:port-direction;
224 description "The orientation of defined flow at the EndPoint.";
225 }
226 leaf role {
227 type tapi-common:port-role;
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 leaf protection-role {
231 type protection-role;
232 description "To specify the protection role of this Port when create or update ConnectivityService.";
233 }
234 uses tapi-common:local-class;
wu6a418d22018-02-02 01:49:21 -0500235 uses tapi-common:admin-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700236 description "The association of the FC to LTPs is made via EndPoints.
237 The EndPoint (EP) object class models the access to the FC function.
238 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
239 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
240 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
241 The EP replaces the Protection Unit of a traditional protection model.
242 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
243 }
244 grouping route {
245 leaf-list connection-end-point {
246 type leafref {
247 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
248 }
249 config false;
250 min-elements 2;
251 description "none";
252 }
253 uses tapi-common:local-class;
254 description "The FC Route (FcRoute) object class models the individual routes of an FC.
255 The route of an FC object is represented by a list of FCs at a lower level.
256 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
257 }
258 grouping connectivity-context {
259 list connectivity-service {
260 key 'uuid';
261 uses connectivity-service;
262 description "none";
263 }
264 list connection {
265 key 'uuid';
266 config false;
267 uses connection;
268 description "none";
269 }
270 description "none";
271 }
272 grouping switch {
273 leaf-list selected-connection-end-point {
274 type leafref {
275 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
276 }
277 min-elements 1;
278 description "none";
279 }
280 leaf-list selected-route {
281 type leafref {
282 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
283 }
284 min-elements 1;
285 description "none";
286 }
287 leaf selection-control {
288 type selection-control;
289 description "Degree of administrative control applied to the switch selection.";
290 }
291 leaf selection-reason {
292 type selection-reason;
293 config false;
294 description "The reason for the current switch selection.";
295 }
296 leaf switch-direction {
297 type tapi-common:port-direction;
298 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
299 }
300 uses tapi-common:local-class;
301 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).
302 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.
303 The FC switch represents and defines a protection switch structure encapsulated in the FC.
304 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.
305 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.
306 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
307 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).
308 It may be locked out (prevented from switching), force switched or manual switched.
309 It will indicate switch state and change of state.
310 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').
311 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.
312 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
313 }
314 grouping switch-control {
315 leaf-list sub-switch-control {
316 type leafref {
317 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:local-id';
318 }
319 description "none";
320 }
321 list switch {
322 key 'local-id';
323 uses switch;
324 description "none";
325 }
Toru Furusawa28988892017-10-30 17:28:40 -0700326 uses tapi-common:local-class;
wu6a418d22018-02-02 01:49:21 -0500327 uses tapi-connectivity:resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700328 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.";
329 }
330 grouping resilience-constraint {
331 container resilience-type {
332 uses tapi-topology:resilience-type;
333 description "none";
334 }
335 leaf restoration-coordinate-type {
336 type coordinate-type;
337 description " The coordination mechanism between multi-layers.";
338 }
339 leaf restore-priority {
340 type uint64;
341 description "none";
342 }
343 leaf reversion-mode {
344 type reversion-mode;
345 description "Indcates whether the protection scheme is revertive or non-revertive.";
346 }
347 leaf wait-to-revert-time {
348 type uint64;
349 default "15";
350 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.";
351 }
352 leaf hold-off-time {
353 type uint64;
354 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
355 }
356 leaf is-lock-out {
357 type boolean;
358 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
359 This overrides all other protection control states including forced.
360 If the item is locked out then it cannot be used under any circumstances.
361 Note: Only relevant when part of a protection scheme.";
362 }
363 leaf is-frozen {
364 type boolean;
365 description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
366 Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
367 All administrative controls of any aspect of protection are rejected.";
368 }
369 leaf is-coordinated-switching-both-ends {
370 type boolean;
371 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
372 }
373 leaf max-switch-times {
374 type uint64;
375 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
376 }
377 leaf layer-protocol {
378 type tapi-common:layer-protocol-name;
379 description "Indicate which layer this resilience parameters package configured for.";
380 }
Toru Furusawa28988892017-10-30 17:28:40 -0700381 description "A list of control parameters to apply to a switch.";
382 }
383 grouping topology-constraint {
384 leaf-list include-topology {
385 type leafref {
386 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
387 }
388 config false;
389 description "none";
390 }
391 leaf-list avoid-topology {
392 type leafref {
393 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
394 }
395 config false;
396 description "none";
397 }
398 leaf-list include-path {
399 type leafref {
400 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
401 }
402 config false;
403 description "none";
404 }
405 leaf-list exclude-path {
406 type leafref {
407 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
408 }
409 config false;
410 description "none";
411 }
412 leaf-list include-link {
413 type leafref {
414 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
415 }
416 config false;
417 description "This is a loose constraint - that is it is unordered and could be a partial list ";
418 }
419 leaf-list exclude-link {
420 type leafref {
421 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
422 }
423 config false;
424 description "none";
425 }
426 leaf-list include-node {
427 type leafref {
428 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
429 }
430 config false;
431 description "This is a loose constraint - that is it is unordered and could be a partial list";
432 }
433 leaf-list exclude-node {
434 type leafref {
435 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
436 }
437 config false;
438 description "none";
439 }
440 leaf-list preferred-transport-layer {
441 type tapi-common:layer-protocol-name;
442 config false;
443 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";
444 }
Toru Furusawa28988892017-10-30 17:28:40 -0700445 description "none";
446 }
447 grouping cep-list {
448 list connection-end-point {
449 key 'uuid';
450 uses connection-end-point;
451 description "none";
452 }
453 description "none";
454 }
455 grouping route-compute-policy {
456 leaf route-objective-function {
457 type route-objective-function;
458 description "none";
459 }
460 leaf diversity-policy {
461 type diversity-policy;
462 description "none";
463 }
464 description "none";
465 }
466
467 /***********************
468 * package type-definitions
469 **********************/
470 typedef service-type {
471 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500472 enum POINT_TO_POINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700473 description "none";
474 }
wu6a418d22018-02-02 01:49:21 -0500475 enum POINT_TO_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700476 description "none";
477 }
wu6a418d22018-02-02 01:49:21 -0500478 enum MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700479 description "none";
480 }
wu6a418d22018-02-02 01:49:21 -0500481 enum ROOTED_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700482 description "none";
483 }
484 }
485 description "none";
486 }
487 typedef reversion-mode {
488 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500489 enum REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700490 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).";
491 }
wu6a418d22018-02-02 01:49:21 -0500492 enum NON-REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700493 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
494 }
495 }
496 description "The reversion mode associated with protection.";
497 }
498 typedef selection-control {
499 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500500 enum LOCK_OUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700501 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
502 This overrides all other protection control states including forced.
503 If the item is locked out then it cannot be used under any circumstances.
504 Note: Only relevant when part of a protection scheme.";
505 }
wu6a418d22018-02-02 01:49:21 -0500506 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700507 description "none";
508 }
wu6a418d22018-02-02 01:49:21 -0500509 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700510 description "none";
511 }
wu6a418d22018-02-02 01:49:21 -0500512 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700513 description "none";
514 }
515 }
516 description "Possible degrees of administrative control applied to the Route selection.";
517 }
518 typedef selection-reason {
519 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500520 enum LOCKOUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700521 description "none";
522 }
wu6a418d22018-02-02 01:49:21 -0500523 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700524 description "none";
525 }
wu6a418d22018-02-02 01:49:21 -0500526 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700527 description "none";
528 }
wu6a418d22018-02-02 01:49:21 -0500529 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700530 description "none";
531 }
wu6a418d22018-02-02 01:49:21 -0500532 enum WAIT_TO_REVERT {
Toru Furusawa28988892017-10-30 17:28:40 -0700533 description "none";
534 }
wu6a418d22018-02-02 01:49:21 -0500535 enum SIGNAL_DEGRADE {
Toru Furusawa28988892017-10-30 17:28:40 -0700536 description "none";
537 }
wu6a418d22018-02-02 01:49:21 -0500538 enum SIGNAL_FAIL {
Toru Furusawa28988892017-10-30 17:28:40 -0700539 description "none";
540 }
541 }
542 description "The cause of the current route selection.";
543 }
544 typedef coordinate-type {
545 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500546 enum NO_COORDINATE {
Toru Furusawa28988892017-10-30 17:28:40 -0700547 description "none";
548 }
wu6a418d22018-02-02 01:49:21 -0500549 enum HOLD_OFF_TIME {
Toru Furusawa28988892017-10-30 17:28:40 -0700550 description "none";
551 }
wu6a418d22018-02-02 01:49:21 -0500552 enum WAIT_FOR_NOTIFICATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700553 description "none";
554 }
555 }
556 description "none";
557 }
558 typedef route-objective-function {
559 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500560 enum MIN_WORK_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700561 description "none";
562 }
wu6a418d22018-02-02 01:49:21 -0500563 enum MIN_WORK_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700564 description "none";
565 }
wu6a418d22018-02-02 01:49:21 -0500566 enum MIN_WORK_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700567 description "none";
568 }
wu6a418d22018-02-02 01:49:21 -0500569 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700570 description "none";
571 }
wu6a418d22018-02-02 01:49:21 -0500572 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700573 description "none";
574 }
wu6a418d22018-02-02 01:49:21 -0500575 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700576 description "none";
577 }
wu6a418d22018-02-02 01:49:21 -0500578 enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700579 description "none";
580 }
581 }
582 description "none";
583 }
584 typedef diversity-policy {
585 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500586 enum SRLG {
Toru Furusawa28988892017-10-30 17:28:40 -0700587 description "none";
588 }
wu6a418d22018-02-02 01:49:21 -0500589 enum SRNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700590 description "none";
591 }
wu6a418d22018-02-02 01:49:21 -0500592 enum SNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700593 description "none";
594 }
wu6a418d22018-02-02 01:49:21 -0500595 enum NODE {
Toru Furusawa28988892017-10-30 17:28:40 -0700596 description "none";
597 }
wu6a418d22018-02-02 01:49:21 -0500598 enum LINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700599 description "none";
600 }
601 }
602 description "none";
603 }
604 typedef protection-role {
605 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500606 enum WORK {
Toru Furusawa28988892017-10-30 17:28:40 -0700607 description "none";
608 }
wu6a418d22018-02-02 01:49:21 -0500609 enum PROTECT {
Toru Furusawa28988892017-10-30 17:28:40 -0700610 description "none";
611 }
wu6a418d22018-02-02 01:49:21 -0500612 enum PROTECTED {
Toru Furusawa28988892017-10-30 17:28:40 -0700613 description "none";
614 }
wu6a418d22018-02-02 01:49:21 -0500615 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700616 description "none";
617 }
wu6a418d22018-02-02 01:49:21 -0500618 enum WORK_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700619 description "none";
620 }
wu6a418d22018-02-02 01:49:21 -0500621 enum PROTECT_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700622 description "none";
623 }
624 }
625 description "none";
626 }
627
628 /***********************
629 * package interfaces
630 **********************/
631 rpc get-connection-details {
632 description "none";
633 input {
634 leaf service-id-or-name {
635 type string;
636 description "none";
637 }
638 leaf connection-id-or-name {
639 type string;
640 description "none";
641 }
642 }
643 output {
644 container connection {
645 uses connection;
646 description "none";
647 }
648 }
649 }
650 rpc get-connectivity-service-list {
651 description "none";
652 output {
653 list service {
654 uses connectivity-service;
655 description "none";
656 }
657 }
658 }
659 rpc get-connectivity-service-details {
660 description "none";
661 input {
662 leaf service-id-or-name {
663 type string;
664 description "none";
665 }
666 }
667 output {
668 container service {
669 uses connectivity-service;
670 description "none";
671 }
672 }
673 }
674 rpc create-connectivity-service {
675 description "none";
676 input {
677 list end-point {
678 min-elements 2;
679 uses connectivity-service-end-point;
680 description "none";
681 }
682 container conn-constraint {
683 uses connectivity-constraint;
684 description "none";
685 }
686 container topo-constraint {
687 uses topology-constraint;
688 description "none";
689 }
690 list resilience-constraint {
691 uses resilience-constraint;
692 description "none";
693 }
694 leaf state {
695 type string;
696 description "none";
697 }
698 }
699 output {
700 container service {
701 uses connectivity-service;
702 description "none";
703 }
704 }
705 }
706 rpc update-connectivity-service {
707 description "none";
708 input {
709 leaf service-id-or-name {
710 type string;
711 description "none";
712 }
713 container end-point {
714 uses connectivity-service-end-point;
715 description "none";
716 }
717 container conn-constraint {
718 uses connectivity-constraint;
719 description "none";
720 }
721 container topo-constraint {
722 uses topology-constraint;
723 description "none";
724 }
725 list resilience-constraint {
726 uses resilience-constraint;
727 description "none";
728 }
729 leaf state {
730 type string;
731 description "none";
732 }
733 }
734 output {
735 container service {
736 uses connectivity-service;
737 description "none";
738 }
739 }
740 }
741 rpc delete-connectivity-service {
742 description "none";
743 input {
744 leaf service-id-or-name {
745 type string;
746 description "none";
747 }
748 }
749 output {
750 container service {
751 uses connectivity-service;
752 description "none";
753 }
754 }
755 }
756
757}