blob: 45f89de0f16f4d53326f95b86a63f2f12a5bb9b4 [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";
14 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>";
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";
24 revision 2018-02-16 {
25 description "ONF Transport API version 2.0.1
26 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
27 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
28 Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
29 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
30 <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070031 }
32 augment "/tapi-common:context" {
33 uses connectivity-context;
34 description "Augments the base TAPI Context with ConnectivityService information";
35 }
36 augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
37 uses cep-list;
38 description "none";
39 }
40 /***********************
41 * package object-classes
42 **********************/
43 grouping connection {
44 leaf-list connection-end-point {
45 type leafref {
46 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
47 }
48 config false;
49 min-elements 2;
50 description "none";
51 }
52 leaf-list lower-connection {
53 type leafref {
54 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
55 }
56 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).
57 Aggregation is used as for the Node/Topology to allow changes in hierarchy.
58 Connection aggregation reflects Node/Topology aggregation.
59 The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
60 }
Toru Furusawa28988892017-10-30 17:28:40 -070061 list route {
62 key 'local-id';
63 config false;
64 uses route;
65 description "none";
66 }
67 list switch-control {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080068 key 'uuid';
Toru Furusawa28988892017-10-30 17:28:40 -070069 config false;
70 uses switch-control;
71 description "none";
72 }
Toru Furusawa28988892017-10-30 17:28:40 -070073 leaf direction {
74 type tapi-common:forwarding-direction;
75 config false;
76 description "none";
77 }
78 leaf layer-protocol-name {
79 type tapi-common:layer-protocol-name;
80 config false;
81 description "none";
82 }
83 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -050084 uses tapi-common:operational-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -070085 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.
86 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
87 }
88 grouping connection-end-point {
wu6a418d22018-02-02 01:49:21 -050089 leaf layer-protocol-name {
90 type tapi-common:layer-protocol-name;
91 config false;
92 description "none";
93 }
94 leaf connectivity-service-end-point {
95 type leafref {
96 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
97 }
98 description "none";
99 }
100 leaf-list parent-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 }
Toru Furusawa28988892017-10-30 17:28:40 -0700104 config false;
105 min-elements 1;
Toru Furusawa28988892017-10-30 17:28:40 -0700106 description "none";
107 }
108 leaf-list client-node-edge-point {
109 type leafref {
110 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
111 }
112 config false;
113 description "none";
114 }
Toru Furusawa28988892017-10-30 17:28:40 -0700115 leaf connection-port-direction {
116 type tapi-common:port-direction;
117 config false;
118 description "The orientation of defined flow at the EndPoint.";
119 }
120 leaf connection-port-role {
121 type tapi-common:port-role;
122 config false;
123 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. ";
124 }
125 uses tapi-common:resource-spec;
wu6a418d22018-02-02 01:49:21 -0500126 uses tapi-common:operational-state-pac;
127 uses tapi-common:termination-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700128 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
129 The structure of LTP supports all transport protocols including circuit and packet forms.";
130 }
131 grouping connectivity-constraint {
132 leaf service-type {
133 type service-type;
Toru Furusawa28988892017-10-30 17:28:40 -0700134 description "none";
135 }
136 leaf service-level {
137 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700138 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
139 }
140 leaf is-exclusive {
141 type boolean;
142 default "true";
143 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)";
144 }
145 container requested-capacity {
Toru Furusawa28988892017-10-30 17:28:40 -0700146 uses tapi-common:capacity;
147 description "none";
148 }
149 container schedule {
150 uses tapi-common:time-range;
151 description "none";
152 }
153 list cost-characteristic {
154 key 'cost-name';
Toru Furusawa28988892017-10-30 17:28:40 -0700155 uses tapi-topology:cost-characteristic;
156 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
157 }
158 list latency-characteristic {
159 key 'traffic-property-name';
Toru Furusawa28988892017-10-30 17:28:40 -0700160 uses tapi-topology:latency-characteristic;
161 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
162 }
Toru Furusawa28988892017-10-30 17:28:40 -0700163 leaf coroute-inclusion {
164 type leafref {
165 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
166 }
Toru Furusawa28988892017-10-30 17:28:40 -0700167 description "none";
168 }
169 leaf-list diversity-exclusion {
170 type leafref {
171 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
172 }
Toru Furusawa28988892017-10-30 17:28:40 -0700173 description "none";
174 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800175 uses route-compute-policy;
Toru Furusawa28988892017-10-30 17:28:40 -0700176 description "none";
177 }
178 grouping connectivity-service {
179 list end-point {
180 key 'local-id';
181 min-elements 2;
182 uses connectivity-service-end-point;
183 description "none";
184 }
185 leaf-list connection {
186 type leafref {
187 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
188 }
189 config false;
190 description "none";
191 }
Toru Furusawa28988892017-10-30 17:28:40 -0700192 leaf direction {
193 type tapi-common:forwarding-direction;
194 description "none";
195 }
196 leaf layer-protocol-name {
197 type tapi-common:layer-protocol-name;
198 description "none";
199 }
Toru Furusawa28988892017-10-30 17:28:40 -0700200 uses tapi-common:service-spec;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800201 uses connectivity-constraint;
202 uses topology-constraint;
wu6a418d22018-02-02 01:49:21 -0500203 uses tapi-common:admin-state-pac;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800204 uses resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700205 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.
206 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
207 }
208 grouping connectivity-service-end-point {
wu6a418d22018-02-02 01:49:21 -0500209 leaf layer-protocol-name {
210 type tapi-common:layer-protocol-name;
211 description "none";
212 }
Toru Furusawa28988892017-10-30 17:28:40 -0700213 leaf service-interface-point {
214 type leafref {
215 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
216 }
217 description "none";
218 }
Toru Furusawa28988892017-10-30 17:28:40 -0700219 container capacity {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800220 uses tapi-common:capacity;
Toru Furusawa28988892017-10-30 17:28:40 -0700221 description "none";
222 }
223 leaf direction {
224 type tapi-common:port-direction;
225 description "The orientation of defined flow at the EndPoint.";
226 }
227 leaf role {
228 type tapi-common:port-role;
229 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. ";
230 }
231 leaf protection-role {
232 type protection-role;
233 description "To specify the protection role of this Port when create or update ConnectivityService.";
234 }
235 uses tapi-common:local-class;
wu6a418d22018-02-02 01:49:21 -0500236 uses tapi-common:admin-state-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700237 description "The association of the FC to LTPs is made via EndPoints.
238 The EndPoint (EP) object class models the access to the FC function.
239 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
240 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
241 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
242 The EP replaces the Protection Unit of a traditional protection model.
243 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
244 }
245 grouping route {
246 leaf-list connection-end-point {
247 type leafref {
248 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
249 }
250 config false;
251 min-elements 2;
252 description "none";
253 }
254 uses tapi-common:local-class;
255 description "The FC Route (FcRoute) object class models the individual routes of an FC.
256 The route of an FC object is represented by a list of FCs at a lower level.
257 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
258 }
259 grouping connectivity-context {
260 list connectivity-service {
261 key 'uuid';
262 uses connectivity-service;
263 description "none";
264 }
265 list connection {
266 key 'uuid';
267 config false;
268 uses connection;
269 description "none";
270 }
271 description "none";
272 }
273 grouping switch {
274 leaf-list selected-connection-end-point {
275 type leafref {
276 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
277 }
278 min-elements 1;
279 description "none";
280 }
281 leaf-list selected-route {
282 type leafref {
283 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
284 }
285 min-elements 1;
286 description "none";
287 }
288 leaf selection-control {
289 type selection-control;
290 description "Degree of administrative control applied to the switch selection.";
291 }
292 leaf selection-reason {
293 type selection-reason;
294 config false;
295 description "The reason for the current switch selection.";
296 }
297 leaf switch-direction {
298 type tapi-common:port-direction;
299 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
300 }
301 uses tapi-common:local-class;
302 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).
303 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.
304 The FC switch represents and defines a protection switch structure encapsulated in the FC.
305 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.
306 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.
307 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
308 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).
309 It may be locked out (prevented from switching), force switched or manual switched.
310 It will indicate switch state and change of state.
311 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').
312 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.
313 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
314 }
315 grouping switch-control {
316 leaf-list sub-switch-control {
317 type leafref {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800318 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
Toru Furusawa28988892017-10-30 17:28:40 -0700319 }
320 description "none";
321 }
322 list switch {
323 key 'local-id';
324 uses switch;
325 description "none";
326 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800327 uses tapi-common:resource-spec;
328 uses resilience-constraint;
Toru Furusawa28988892017-10-30 17:28:40 -0700329 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.";
330 }
331 grouping resilience-constraint {
332 container resilience-type {
333 uses tapi-topology:resilience-type;
334 description "none";
335 }
336 leaf restoration-coordinate-type {
337 type coordinate-type;
338 description " The coordination mechanism between multi-layers.";
339 }
340 leaf restore-priority {
341 type uint64;
342 description "none";
343 }
344 leaf reversion-mode {
345 type reversion-mode;
346 description "Indcates whether the protection scheme is revertive or non-revertive.";
347 }
348 leaf wait-to-revert-time {
349 type uint64;
350 default "15";
351 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.";
352 }
353 leaf hold-off-time {
354 type uint64;
355 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
356 }
357 leaf is-lock-out {
358 type boolean;
359 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
360 This overrides all other protection control states including forced.
361 If the item is locked out then it cannot be used under any circumstances.
362 Note: Only relevant when part of a protection scheme.";
363 }
364 leaf is-frozen {
365 type boolean;
366 description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
367 Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
368 All administrative controls of any aspect of protection are rejected.";
369 }
370 leaf is-coordinated-switching-both-ends {
371 type boolean;
372 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
373 }
374 leaf max-switch-times {
375 type uint64;
376 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
377 }
378 leaf layer-protocol {
379 type tapi-common:layer-protocol-name;
380 description "Indicate which layer this resilience parameters package configured for.";
381 }
Toru Furusawa28988892017-10-30 17:28:40 -0700382 description "A list of control parameters to apply to a switch.";
383 }
384 grouping topology-constraint {
385 leaf-list include-topology {
386 type leafref {
387 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
388 }
389 config false;
390 description "none";
391 }
392 leaf-list avoid-topology {
393 type leafref {
394 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
395 }
396 config false;
397 description "none";
398 }
399 leaf-list include-path {
400 type leafref {
401 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
402 }
403 config false;
404 description "none";
405 }
406 leaf-list exclude-path {
407 type leafref {
408 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
409 }
410 config false;
411 description "none";
412 }
413 leaf-list include-link {
414 type leafref {
415 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
416 }
417 config false;
418 description "This is a loose constraint - that is it is unordered and could be a partial list ";
419 }
420 leaf-list exclude-link {
421 type leafref {
422 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
423 }
424 config false;
425 description "none";
426 }
427 leaf-list include-node {
428 type leafref {
429 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
430 }
431 config false;
432 description "This is a loose constraint - that is it is unordered and could be a partial list";
433 }
434 leaf-list exclude-node {
435 type leafref {
436 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
437 }
438 config false;
439 description "none";
440 }
441 leaf-list preferred-transport-layer {
442 type tapi-common:layer-protocol-name;
443 config false;
444 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";
445 }
Toru Furusawa28988892017-10-30 17:28:40 -0700446 description "none";
447 }
448 grouping cep-list {
449 list connection-end-point {
450 key 'uuid';
451 uses connection-end-point;
452 description "none";
453 }
454 description "none";
455 }
456 grouping route-compute-policy {
457 leaf route-objective-function {
458 type route-objective-function;
459 description "none";
460 }
461 leaf diversity-policy {
462 type diversity-policy;
463 description "none";
464 }
465 description "none";
466 }
467
468 /***********************
469 * package type-definitions
470 **********************/
471 typedef service-type {
472 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500473 enum POINT_TO_POINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700474 description "none";
475 }
wu6a418d22018-02-02 01:49:21 -0500476 enum POINT_TO_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700477 description "none";
478 }
wu6a418d22018-02-02 01:49:21 -0500479 enum MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700480 description "none";
481 }
wu6a418d22018-02-02 01:49:21 -0500482 enum ROOTED_MULTIPOINT_CONNECTIVITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700483 description "none";
484 }
485 }
486 description "none";
487 }
488 typedef reversion-mode {
489 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500490 enum REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700491 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).";
492 }
wu6a418d22018-02-02 01:49:21 -0500493 enum NON-REVERTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700494 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
495 }
496 }
497 description "The reversion mode associated with protection.";
498 }
499 typedef selection-control {
500 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500501 enum LOCK_OUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700502 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
503 This overrides all other protection control states including forced.
504 If the item is locked out then it cannot be used under any circumstances.
505 Note: Only relevant when part of a protection scheme.";
506 }
wu6a418d22018-02-02 01:49:21 -0500507 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700508 description "none";
509 }
wu6a418d22018-02-02 01:49:21 -0500510 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700511 description "none";
512 }
wu6a418d22018-02-02 01:49:21 -0500513 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700514 description "none";
515 }
516 }
517 description "Possible degrees of administrative control applied to the Route selection.";
518 }
519 typedef selection-reason {
520 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500521 enum LOCKOUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700522 description "none";
523 }
wu6a418d22018-02-02 01:49:21 -0500524 enum NORMAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700525 description "none";
526 }
wu6a418d22018-02-02 01:49:21 -0500527 enum MANUAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700528 description "none";
529 }
wu6a418d22018-02-02 01:49:21 -0500530 enum FORCED {
Toru Furusawa28988892017-10-30 17:28:40 -0700531 description "none";
532 }
wu6a418d22018-02-02 01:49:21 -0500533 enum WAIT_TO_REVERT {
Toru Furusawa28988892017-10-30 17:28:40 -0700534 description "none";
535 }
wu6a418d22018-02-02 01:49:21 -0500536 enum SIGNAL_DEGRADE {
Toru Furusawa28988892017-10-30 17:28:40 -0700537 description "none";
538 }
wu6a418d22018-02-02 01:49:21 -0500539 enum SIGNAL_FAIL {
Toru Furusawa28988892017-10-30 17:28:40 -0700540 description "none";
541 }
542 }
543 description "The cause of the current route selection.";
544 }
545 typedef coordinate-type {
546 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500547 enum NO_COORDINATE {
Toru Furusawa28988892017-10-30 17:28:40 -0700548 description "none";
549 }
wu6a418d22018-02-02 01:49:21 -0500550 enum HOLD_OFF_TIME {
Toru Furusawa28988892017-10-30 17:28:40 -0700551 description "none";
552 }
wu6a418d22018-02-02 01:49:21 -0500553 enum WAIT_FOR_NOTIFICATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700554 description "none";
555 }
556 }
557 description "none";
558 }
559 typedef route-objective-function {
560 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500561 enum MIN_WORK_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700562 description "none";
563 }
wu6a418d22018-02-02 01:49:21 -0500564 enum MIN_WORK_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700565 description "none";
566 }
wu6a418d22018-02-02 01:49:21 -0500567 enum MIN_WORK_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700568 description "none";
569 }
wu6a418d22018-02-02 01:49:21 -0500570 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
Toru Furusawa28988892017-10-30 17:28:40 -0700571 description "none";
572 }
wu6a418d22018-02-02 01:49:21 -0500573 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
Toru Furusawa28988892017-10-30 17:28:40 -0700574 description "none";
575 }
wu6a418d22018-02-02 01:49:21 -0500576 enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
Toru Furusawa28988892017-10-30 17:28:40 -0700577 description "none";
578 }
wu6a418d22018-02-02 01:49:21 -0500579 enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
Toru Furusawa28988892017-10-30 17:28:40 -0700580 description "none";
581 }
582 }
583 description "none";
584 }
585 typedef diversity-policy {
586 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500587 enum SRLG {
Toru Furusawa28988892017-10-30 17:28:40 -0700588 description "none";
589 }
wu6a418d22018-02-02 01:49:21 -0500590 enum SRNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700591 description "none";
592 }
wu6a418d22018-02-02 01:49:21 -0500593 enum SNG {
Toru Furusawa28988892017-10-30 17:28:40 -0700594 description "none";
595 }
wu6a418d22018-02-02 01:49:21 -0500596 enum NODE {
Toru Furusawa28988892017-10-30 17:28:40 -0700597 description "none";
598 }
wu6a418d22018-02-02 01:49:21 -0500599 enum LINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700600 description "none";
601 }
602 }
603 description "none";
604 }
605 typedef protection-role {
606 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500607 enum WORK {
Toru Furusawa28988892017-10-30 17:28:40 -0700608 description "none";
609 }
wu6a418d22018-02-02 01:49:21 -0500610 enum PROTECT {
Toru Furusawa28988892017-10-30 17:28:40 -0700611 description "none";
612 }
wu6a418d22018-02-02 01:49:21 -0500613 enum PROTECTED {
Toru Furusawa28988892017-10-30 17:28:40 -0700614 description "none";
615 }
wu6a418d22018-02-02 01:49:21 -0500616 enum NA {
Toru Furusawa28988892017-10-30 17:28:40 -0700617 description "none";
618 }
wu6a418d22018-02-02 01:49:21 -0500619 enum WORK_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700620 description "none";
621 }
wu6a418d22018-02-02 01:49:21 -0500622 enum PROTECT_RESTORE {
Toru Furusawa28988892017-10-30 17:28:40 -0700623 description "none";
624 }
625 }
626 description "none";
627 }
628
629 /***********************
630 * package interfaces
631 **********************/
632 rpc get-connection-details {
633 description "none";
634 input {
635 leaf service-id-or-name {
636 type string;
637 description "none";
638 }
639 leaf connection-id-or-name {
640 type string;
641 description "none";
642 }
643 }
644 output {
645 container connection {
646 uses connection;
647 description "none";
648 }
649 }
650 }
651 rpc get-connectivity-service-list {
652 description "none";
653 output {
654 list service {
655 uses connectivity-service;
656 description "none";
657 }
658 }
659 }
660 rpc get-connectivity-service-details {
661 description "none";
662 input {
663 leaf service-id-or-name {
664 type string;
665 description "none";
666 }
667 }
668 output {
669 container service {
670 uses connectivity-service;
671 description "none";
672 }
673 }
674 }
675 rpc create-connectivity-service {
676 description "none";
677 input {
678 list end-point {
679 min-elements 2;
680 uses connectivity-service-end-point;
681 description "none";
682 }
683 container conn-constraint {
684 uses connectivity-constraint;
685 description "none";
686 }
687 container topo-constraint {
688 uses topology-constraint;
689 description "none";
690 }
691 list resilience-constraint {
692 uses resilience-constraint;
693 description "none";
694 }
695 leaf state {
696 type string;
697 description "none";
698 }
699 }
700 output {
701 container service {
702 uses connectivity-service;
703 description "none";
704 }
705 }
706 }
707 rpc update-connectivity-service {
708 description "none";
709 input {
710 leaf service-id-or-name {
711 type string;
712 description "none";
713 }
714 container end-point {
715 uses connectivity-service-end-point;
716 description "none";
717 }
718 container conn-constraint {
719 uses connectivity-constraint;
720 description "none";
721 }
722 container topo-constraint {
723 uses topology-constraint;
724 description "none";
725 }
726 list resilience-constraint {
727 uses resilience-constraint;
728 description "none";
729 }
730 leaf state {
731 type string;
732 description "none";
733 }
734 }
735 output {
736 container service {
737 uses connectivity-service;
738 description "none";
739 }
740 }
741 }
742 rpc delete-connectivity-service {
743 description "none";
744 input {
745 leaf service-id-or-name {
746 type string;
747 description "none";
748 }
749 }
750 output {
751 container service {
752 uses connectivity-service;
753 description "none";
754 }
755 }
756 }
757
758}