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