0202846753205565816e0b396258ed7681d4a661
[ccsdk/features.git] /
1 module tapi-topology {\r
2     namespace "urn:onf:otcc:yang:tapi-topology";\r
3     prefix tapi-topology;\r
4     import tapi-common {\r
5         prefix tapi-common;\r
6     }\r
7     organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
8     contact "
9         Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
10         Project List: <mailto:transport-api@opennetworking.org>
11         Editor: Karthik Sethuraman
12                 <mailto:karthik.sethuraman@necam.com>";\r
13     description "\r
14         This module contains TAPI Topology Model definitions.\r
15         Source: TapiTopology.uml\r
16         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
17         License: This module is distributed under the Apache License 2.0";\r
18     revision 2018-08-31 {\r
19         description "ONF Transport API version 2.1.0
20         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
21         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";\r
22         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
23                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
24     }\r
25     revision 2018-03-07 {\r
26         description "ONF Transport API version 2.0.2
27         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
28         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";\r
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/TAPI/tree/v2.0.2/UML>";\r
31     }\r
32     revision 2018-02-16 {\r
33         description "ONF Transport API version 2.0.1
34         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
35         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";\r
36         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
37                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";\r
38     }\r
39     revision 2018-01-02 {\r
40         description "ONF Transport API version 2.0.0
41         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
42         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";\r
43         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
44                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";\r
45     }\r
46     augment "/tapi-common:context" {\r
47         uses topology-context-g;\r
48         description "Augments the base TAPI Context with TopologyService information";\r
49     }\r
50 \r
51     /*************************\r
52     * definitions of refrences\r
53     *************************/\r
54 \r
55     grouping topology-ref-g {\r
56         leaf topology-uuid {\r
57             type leafref {\r
58                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';\r
59             }\r
60             description "none";\r
61         }\r
62         description "none";\r
63     }\r
64 \r
65     grouping link-ref-g {\r
66         uses topology-ref-g;\r
67         leaf link-uuid {\r
68             type leafref {\r
69                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';\r
70             }\r
71             description "none";\r
72         }\r
73         description "none";\r
74     }\r
75 \r
76     grouping node-ref-g {\r
77         uses topology-ref-g;\r
78         leaf node-uuid {\r
79             type leafref {\r
80                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';\r
81             }\r
82             description "none";\r
83         }\r
84         description "none";\r
85     }\r
86 \r
87     grouping node-edge-point-ref-g {\r
88         uses node-ref-g;\r
89         leaf node-edge-point-uuid {\r
90             type leafref {\r
91                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';\r
92             }\r
93             description "none";\r
94         }\r
95         description "none";\r
96     }\r
97 \r
98     grouping node-rule-group-ref-g {\r
99         uses node-ref-g;\r
100         leaf node-rule-group-uuid {\r
101             type leafref {\r
102                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';\r
103             }\r
104             description "none";\r
105         }\r
106         description "none";\r
107     }\r
108 \r
109     /***********************\r
110     * package object-classes\r
111     **********************/ \r
112         grouping link-g {\r
113             list node-edge-point {\r
114                 uses node-edge-point-ref-g;\r
115                 key 'topology-uuid node-uuid node-edge-point-uuid';\r
116                 config false;\r
117                 min-elements 2;\r
118                 description "none";\r
119             }\r
120             leaf-list layer-protocol-name {\r
121                 type tapi-common:layer-protocol-name;\r
122                 config false;\r
123                 min-elements 1;\r
124                 description "none";\r
125             }\r
126             leaf direction {\r
127                 type tapi-common:forwarding-direction;\r
128                 config false;\r
129                 description "The directionality of the Link. \r
130                     Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL). \r
131                     Is not present in more complex cases.";\r
132             }\r
133             container resilience-type {\r
134                 uses resilience-type-g;\r
135                 description "none";\r
136             }\r
137             uses tapi-common:resource-spec-g;\r
138             uses tapi-common:admin-state-pac-g;\r
139             uses tapi-common:capacity-pac-g;\r
140             uses transfer-cost-pac-g;\r
141             uses transfer-integrity-pac-g;\r
142             uses transfer-timing-pac-g;\r
143             uses risk-parameter-pac-g;\r
144             uses validation-pac-g;\r
145             uses layer-protocol-transition-pac-g;\r
146             description "The Link object class models effective adjacency between two or more ForwardingDomains (FD). ";\r
147         }\r
148         grouping node-g {\r
149             list owned-node-edge-point {\r
150                 key 'uuid';\r
151                 config false;\r
152                 uses node-edge-point-g;\r
153                 description "none";\r
154             }\r
155             list aggregated-node-edge-point {\r
156                 uses node-edge-point-ref-g;\r
157                 key 'topology-uuid node-uuid node-edge-point-uuid';\r
158                 config false;\r
159                 description "none";\r
160             }\r
161             list node-rule-group {\r
162                 key 'uuid';\r
163                 uses node-rule-group-g;\r
164                 description "none";\r
165             }\r
166             container encap-topology {\r
167                 uses topology-ref-g;\r
168                 config false;\r
169                 description "none";\r
170             }\r
171             leaf-list layer-protocol-name {\r
172                 type tapi-common:layer-protocol-name;\r
173                 config false;\r
174                 min-elements 1;\r
175                 description "none";\r
176             }\r
177             uses tapi-common:resource-spec-g;\r
178             uses tapi-common:admin-state-pac-g;\r
179             uses tapi-common:capacity-pac-g;\r
180             uses transfer-cost-pac-g;\r
181             uses transfer-integrity-pac-g;\r
182             uses transfer-timing-pac-g;\r
183             description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. \r
184                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";\r
185         }\r
186         grouping topology-g {\r
187             list node {\r
188                 key 'uuid';\r
189                 config false;\r
190                 uses node-g;\r
191                 description "none";\r
192             }\r
193             list link {\r
194                 key 'uuid';\r
195                 config false;\r
196                 uses link-g;\r
197                 description "none";\r
198             }\r
199             leaf-list layer-protocol-name {\r
200                 type tapi-common:layer-protocol-name;\r
201                 config false;\r
202                 min-elements 1;\r
203                 description "none";\r
204             }\r
205             uses tapi-common:resource-spec-g;\r
206             description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. \r
207                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";\r
208         }\r
209         grouping layer-protocol-transition-pac-g {\r
210             leaf-list transitioned-layer-protocol-name {\r
211                 type string;\r
212                 min-elements 2;\r
213                 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";\r
214             }\r
215             description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation. \r
216                 This abstraction is relevant when considering multi-layer routing. \r
217                 The layer protocols of the LTP and the order of their application to the signal is still relevant and need to be accounted for. This is derived from the LTP spec details.\r
218                 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.\r
219                 Links that included details in this Pac are often referred to as Transitional Links.";\r
220         }\r
221         grouping node-edge-point-g {\r
222             leaf layer-protocol-name {\r
223                 type tapi-common:layer-protocol-name;\r
224                 config false;\r
225                 description "none";\r
226             }\r
227             leaf-list supported-cep-layer-protocol-qualifier {\r
228                 type tapi-common:layer-protocol-qualifier;\r
229                 min-elements 1;\r
230                 description "none";\r
231             }\r
232             list aggregated-node-edge-point {\r
233                 uses node-edge-point-ref-g;\r
234                 key 'topology-uuid node-uuid node-edge-point-uuid';\r
235                 config false;\r
236                 description "none";\r
237             }\r
238             list mapped-service-interface-point {\r
239                 uses tapi-common:service-interface-point-ref-g;\r
240                 key 'service-interface-point-uuid';\r
241                 config false;\r
242                 description "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental";\r
243             }\r
244             leaf link-port-direction {\r
245                 type tapi-common:port-direction;\r
246                 config false;\r
247                 description "The orientation of defined flow at the LinkEnd.";\r
248             }\r
249             leaf link-port-role {\r
250                 type tapi-common:port-role;\r
251                 config false;\r
252                 description "Each LinkEnd of the Link has a role (e.g., symmetric, hub, spoke, leaf, root)  in the context of the Link with respect to the Link function. ";\r
253             }\r
254             uses tapi-common:resource-spec-g;\r
255             uses tapi-common:admin-state-pac-g;\r
256             uses tapi-common:termination-pac-g;\r
257             uses tapi-common:capacity-pac-g;\r
258             description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. \r
259                 The structure of LTP supports all transport protocols including circuit and packet forms.";\r
260         }\r
261         grouping risk-parameter-pac-g {\r
262             list risk-characteristic {\r
263                 key 'risk-characteristic-name';\r
264                 config false;\r
265                 min-elements 1;\r
266                 uses risk-characteristic-g;\r
267                 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";\r
268             }\r
269             description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization. \r
270                 The risk characteristics propagate from the physical realization to the client and from the server layer to the client layer, this propagation may be modified by protection.\r
271                 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.\r
272                 The realization can be partitioned into segments which have some relevant common failure modes.\r
273                 There is a risk of failure/degradation of each segment of the underlying realization.\r
274                 Each segment is a part of a larger physical/geographical unit that behaves as one with respect to failure (i.e. a failure will have a high probability of impacting the whole unit (e.g. all cables in the same duct).\r
275                 Disruptions to that larger physical/geographical unit will impact (cause failure/errors to) all TopologicalEntities that use any part of that larger physical/geographical entity.\r
276                 Any TopologicalEntity that uses any part of that larger physical/geographical unit will suffer impact and hence each TopologicalEntity shares risk.\r
277                 The identifier of each physical/geographical unit that is involved in the realization of each segment of a Topological entity can be listed in the RiskParameter_Pac of that TopologicalEntity.\r
278                 A segment has one or more risk characteristic.\r
279                 Shared risk between two TopologicalEntities compromises the integrity of any solution that use one of those TopologicalEntity as a backup for the other.\r
280                 Where two TopologicalEntities have a common risk characteristic they have an elevated probability of failing simultaneously compared to two TopologicalEntities that do not share risk characteristics.";\r
281         }\r
282         grouping transfer-cost-pac-g {\r
283             list cost-characteristic {\r
284                 key 'cost-name';\r
285                 config false;\r
286                 min-elements 1;\r
287                 uses cost-characteristic-g;\r
288                 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";\r
289             }\r
290             description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization. \r
291                 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity\r
292                 There may be many perspectives from which cost may be considered  for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms. \r
293                 Using an entity will incur a cost. ";\r
294         }\r
295         grouping transfer-integrity-pac-g {\r
296             leaf error-characteristic {\r
297                 type string;\r
298                 config false;\r
299                 description "Describes the degree to which the signal propagated can be errored. \r
300                     Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";\r
301             }\r
302             leaf loss-characteristic {\r
303                 type string;\r
304                 config false;\r
305                 description "Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow.\r
306                     Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips).";\r
307             }\r
308             leaf repeat-delivery-characteristic {\r
309                 type string;\r
310                 config false;\r
311                 description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). \r
312                     It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay.";\r
313             }\r
314             leaf delivery-order-characteristic {\r
315                 type string;\r
316                 config false;\r
317                 description "Describes the degree to which packets will be delivered out of sequence.\r
318                     Does not apply to TDM as the TDM protocols maintain strict order.";\r
319             }\r
320             leaf unavailable-time-characteristic {\r
321                 type string;\r
322                 config false;\r
323                 description "Describes the duration for which there may be no valid signal propagated.";\r
324             }\r
325             leaf server-integrity-process-characteristic {\r
326                 type string;\r
327                 config false;\r
328                 description "Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity.";\r
329             }\r
330             description "Transfer intergrity characteristic covers expected/specified/acceptable characteristic of degradation of the transfered signal.\r
331                 It includes all aspects of possible degradation of signal content as well as any damage of any form to the total TopologicalEntity and to the carried signals.\r
332                 Note that the statement is of total impact to the TopologicalEntity so any partial usage of the TopologicalEntity (e.g. a signal that does not use full capacity) will only suffer its portion of the impact.";\r
333         }\r
334         grouping transfer-timing-pac-g {\r
335             list latency-characteristic {\r
336                 key 'traffic-property-name';\r
337                 config false;\r
338                 min-elements 1;\r
339                 uses latency-characteristic-g;\r
340                 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";\r
341             }\r
342             description "A TopologicalEntity will suffer effects from the underlying physical realization related to the timing of the information passed by the TopologicalEntity.";\r
343         }\r
344         grouping validation-pac-g {\r
345             list validation-mechanism {\r
346                 key 'validation-mechanism';\r
347                 config false;\r
348                 min-elements 1;\r
349                 uses validation-mechanism-g;\r
350                 description "Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity.";\r
351             }\r
352             description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";\r
353         }\r
354         grouping network-topology-service-g {\r
355             list topology {\r
356                 uses topology-ref-g;\r
357                 key 'topology-uuid';\r
358                 config false;\r
359                 description "none";\r
360             }\r
361             uses tapi-common:service-spec-g;\r
362             description "none";\r
363         }\r
364         grouping topology-context-g {\r
365             container nw-topology-service {\r
366                 config false;\r
367                 uses network-topology-service-g;\r
368                 description "none";\r
369             }\r
370             list topology {\r
371                 key 'uuid';\r
372                 config false;\r
373                 uses topology-g;\r
374                 description "none";\r
375             }\r
376             description "none";\r
377         }\r
378         grouping inter-rule-group-g {\r
379             list rule {\r
380                 key 'local-id';\r
381                 min-elements 1;\r
382                 uses rule-g;\r
383                 description "none";\r
384             }\r
385             list associated-node-rule-group {\r
386                 uses node-rule-group-ref-g;\r
387                 key 'topology-uuid node-uuid node-rule-group-uuid';\r
388                 min-elements 2;\r
389                 description "none";\r
390             }\r
391             uses tapi-common:resource-spec-g;\r
392             uses tapi-common:capacity-pac-g;\r
393             uses transfer-cost-pac-g;\r
394             uses transfer-timing-pac-g;\r
395             uses risk-parameter-pac-g;\r
396             description "none";\r
397         }\r
398         grouping node-rule-group-g {\r
399             list rule {\r
400                 key 'local-id';\r
401                 min-elements 1;\r
402                 uses rule-g;\r
403                 description "none";\r
404             }\r
405             list node-edge-point {\r
406                 uses node-edge-point-ref-g;\r
407                 key 'topology-uuid node-uuid node-edge-point-uuid';\r
408                 min-elements 1;\r
409                 description "none";\r
410             }\r
411             list composed-rule-group {\r
412                 uses node-rule-group-ref-g;\r
413                 key 'topology-uuid node-uuid node-rule-group-uuid';\r
414                 description "none";\r
415             }\r
416             list inter-rule-group {\r
417                 key 'uuid';\r
418                 uses inter-rule-group-g;\r
419                 description "none";\r
420             }\r
421             uses tapi-common:resource-spec-g;\r
422             uses tapi-common:capacity-pac-g;\r
423             uses transfer-cost-pac-g;\r
424             uses transfer-timing-pac-g;\r
425             uses risk-parameter-pac-g;\r
426             description "none";\r
427         }\r
428         grouping rule-g {\r
429             leaf rule-type {\r
430                 type rule-type;\r
431                 description "none";\r
432             }\r
433             leaf forwarding-rule {\r
434                 type forwarding-rule;\r
435                 description "none";\r
436             }\r
437             leaf override-priority {\r
438                 type uint64;\r
439                 description "none";\r
440             }\r
441             uses tapi-common:local-class-g;\r
442             description "none";\r
443         }\r
444 \r
445     /***********************\r
446     * package type-definitions\r
447     **********************/ \r
448         grouping cost-characteristic-g {\r
449             leaf cost-name {\r
450                 type string;\r
451                 description "The cost characteristic will related to some aspect of the TopologicalEntity (e.g. $ cost, routing weight). This aspect will be conveyed by the costName.";\r
452             }\r
453             leaf cost-value {\r
454                 type string;\r
455                 description "The specific cost.";\r
456             }\r
457             leaf cost-algorithm {\r
458                 type string;\r
459                 description "The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm.";\r
460             }\r
461             description "The information for a particular cost characteristic.";\r
462         }\r
463         grouping latency-characteristic-g {\r
464             leaf traffic-property-name {\r
465                 type string;\r
466                 description "The identifier of the specific traffic property to which the queuing latency applies.";\r
467             }\r
468             leaf fixed-latency-characteristic {\r
469                 type string;\r
470                 config false;\r
471                 description "A TopologicalEntity suffers delay caused by the realization of the servers (e.g. distance related; FEC encoding etc.) along with some client specific processing. This is the total average latency effect of the TopologicalEntity";\r
472             }\r
473             leaf queing-latency-characteristic {\r
474                 type string;\r
475                 description "The specific queuing latency for the traffic property.";\r
476             }\r
477             leaf jitter-characteristic {\r
478                 type string;\r
479                 config false;\r
480                 description "High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency.\r
481                     Applies to TDM systems (and not packet).";\r
482             }\r
483             leaf wander-characteristic {\r
484                 type string;\r
485                 config false;\r
486                 description "Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency.\r
487                     Applies to TDM systems (and not packet).";\r
488             }\r
489             description "Provides information on latency characteristic for a particular stated trafficProperty.";\r
490         }\r
491         grouping risk-characteristic-g {\r
492             leaf risk-characteristic-name {\r
493                 type string;\r
494                 description "The name of the risk characteristic. The characteristic may be related to a specific degree of closeness. \r
495                     For example a particular characteristic may apply to failures that are localized (e.g. to one side of a road) where as another characteristic may relate to failures that have a broader impact (e.g. both sides of a road that crosses a bridge).\r
496                     Depending upon the importance of the traffic being routed different risk characteristics will be evaluated.";\r
497             }\r
498             leaf-list risk-identifier-list {\r
499                 type string;\r
500                 min-elements 1;\r
501                 description "A list of the identifiers of each physical/geographic unit (with the specific risk characteristic) that is related to a segment of the TopologicalEntity.";\r
502             }\r
503             description "The information for a particular risk characteristic where there is a list of risk identifiers related to that characteristic.";\r
504         }\r
505         grouping validation-mechanism-g {\r
506             leaf validation-mechanism {\r
507                 type string;\r
508                 description "Name of mechanism used to validate adjacency";\r
509             }\r
510             leaf layer-protocol-adjacency-validated {\r
511                 type string;\r
512                 description "State of validatiion";\r
513             }\r
514             leaf validation-robustness {\r
515                 type string;\r
516                 description "Quality of validation (i.e. how likely is the stated validation to be invalid)";\r
517             }\r
518             description "Identifies the validation mechanism and describes the characteristics of that mechanism";\r
519         }\r
520         typedef forwarding-rule {\r
521             type enumeration {\r
522                 enum MAY_FORWARD_ACROSS_GROUP {\r
523                     description "none";\r
524                 }\r
525                 enum MUST_FORWARD_ACROSS_GROUP {\r
526                     description "none";\r
527                 }\r
528                 enum CANNOT_FORWARD_ACROSS_GROUP {\r
529                     description "none";\r
530                 }\r
531                 enum NO_STATEMENT_ON_FORWARDING {\r
532                     description "none";\r
533                 }\r
534             }\r
535             description "none";\r
536         }\r
537         typedef rule-type {\r
538             type enumeration {\r
539                 enum FORWARDING {\r
540                     description "none";\r
541                 }\r
542                 enum CAPACITY {\r
543                     description "none";\r
544                 }\r
545                 enum COST {\r
546                     description "none";\r
547                 }\r
548                 enum TIMING {\r
549                     description "none";\r
550                 }\r
551                 enum RISK {\r
552                     description "none";\r
553                 }\r
554                 enum GROUPING {\r
555                     description "none";\r
556                 }\r
557             }\r
558             description "none";\r
559         }\r
560         grouping resilience-type-g {\r
561             leaf restoration-policy {\r
562                 type restoration-policy;\r
563                 description "none";\r
564             }\r
565             leaf protection-type {\r
566                 type protection-type;\r
567                 description "none";\r
568             }\r
569             description "none";\r
570         }\r
571         typedef restoration-policy {\r
572             type enumeration {\r
573                 enum PER_DOMAIN_RESTORATION {\r
574                     description "none";\r
575                 }\r
576                 enum END_TO_END_RESTORATION {\r
577                     description "none";\r
578                 }\r
579                 enum NA {\r
580                     description "none";\r
581                 }\r
582             }\r
583             description "none";\r
584         }\r
585         typedef protection-type {\r
586             type enumeration {\r
587                 enum NO_PROTECTON {\r
588                     description "none";\r
589                 }\r
590                 enum ONE_PLUS_ONE_PROTECTION {\r
591                     description "none";\r
592                 }\r
593                 enum ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION {\r
594                     description "none";\r
595                 }\r
596                 enum PERMANENT_ONE_PLUS_ONE_PROTECTION {\r
597                     description "none";\r
598                 }\r
599                 enum ONE_FOR_ONE_PROTECTION {\r
600                     description "none";\r
601                 }\r
602                 enum DYNAMIC_RESTORATION {\r
603                     description "none";\r
604                 }\r
605                 enum PRE_COMPUTED_RESTORATION {\r
606                     description "none";\r
607                 }\r
608             }\r
609             description "none";\r
610         }\r
611 \r
612     /***********************\r
613     * package interfaces\r
614     **********************/ \r
615         rpc get-topology-details {\r
616             description "none";\r
617             input {\r
618                 leaf topology-id-or-name {\r
619                     type string;\r
620                     description "none";\r
621                 }\r
622             }\r
623             output {\r
624                 container topology {\r
625                     uses topology-g;\r
626                     description "none";\r
627                 }\r
628             }\r
629         }\r
630         rpc get-node-details {\r
631             description "none";\r
632             input {\r
633                 leaf topology-id-or-name {\r
634                     type string;\r
635                     description "none";\r
636                 }\r
637                 leaf node-id-or-name {\r
638                     type string;\r
639                     description "none";\r
640                 }\r
641             }\r
642             output {\r
643                 container node {\r
644                     uses node-g;\r
645                     description "none";\r
646                 }\r
647             }\r
648         }\r
649         rpc get-node-edge-point-details {\r
650             description "none";\r
651             input {\r
652                 leaf topology-id-or-name {\r
653                     type string;\r
654                     description "none";\r
655                 }\r
656                 leaf node-id-or-name {\r
657                     type string;\r
658                     description "none";\r
659                 }\r
660                 leaf ep-id-or-name {\r
661                     type string;\r
662                     description "none";\r
663                 }\r
664             }\r
665             output {\r
666                 container node-edge-point {\r
667                     uses node-edge-point-g;\r
668                     description "none";\r
669                 }\r
670             }\r
671         }\r
672         rpc get-link-details {\r
673             description "none";\r
674             input {\r
675                 leaf topology-id-or-name {\r
676                     type string;\r
677                     description "none";\r
678                 }\r
679                 leaf link-id-or-name {\r
680                     type string;\r
681                     description "none";\r
682                 }\r
683             }\r
684             output {\r
685                 container link {\r
686                     uses link-g;\r
687                     description "none";\r
688                 }\r
689             }\r
690         }\r
691         rpc get-topology-list {\r
692             description "none";\r
693             output {\r
694                 list topology {\r
695                     uses topology-g;\r
696                     description "none";\r
697                 }\r
698             }\r
699         }\r
700 \r
701 }\r