TAPI topology creation for 100GE Transponder
[transportpce.git] / tapimodels / src / main / yang / tapi-common@2018-12-10.yang
1 module tapi-common {\r
2     namespace "urn:onf:otcc:yang:tapi-common";\r
3     prefix tapi-common;\r
4     organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
5     contact "\r
6          Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>\r
7          Project List: <mailto:transport-api@opennetworking.org>\r
8          Editor: Karthik Sethuraman\r
9                  <mailto:karthik.sethuraman@necam.com>";\r
10     description "\r
11         This module contains TAPI Common Model definitions.\r
12         Source: TapiCommon.uml\r
13         - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
14         - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
15           <https://github.com/OpenNetworkingFoundation/EagleUmlYang>\r
16           and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
17           <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>\r
18         - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
19           As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
20         - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
21           The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.\r
22           YANG models included in this release may not be backward compatible with previous TAPI releases.\r
23         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
24         License: This module is distributed under the Apache License 2.0";\r
25     revision 2018-12-10 {\r
26         description "ONF Transport API version 2.1.1.\r
27                    Changes included in this TAPI release (v2.1.1) are listed in\r
28                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";\r
29         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
30                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
31     }\r
32     revision 2018-10-16 {\r
33         description "ONF Transport API version 2.1.0.\r
34                    Changes included in this TAPI release (v2.1.0) are listed in\r
35                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";\r
36         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
37                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
38     }\r
39     revision 2018-03-07 {\r
40         description "ONF Transport API version 2.0.2\r
41         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
42         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";\r
43         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
44                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";\r
45     }\r
46     revision 2018-02-16 {\r
47         description "ONF Transport API version 2.0.1\r
48         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
49         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";\r
50         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
51                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";\r
52     }\r
53     revision 2018-01-02 {\r
54         description "ONF Transport API version 2.0.0\r
55         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
56         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";\r
57         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
58                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";\r
59     }\r
60 \r
61    /**************************\r
62     * definitions of refrences\r
63     **************************/\r
64     grouping service-interface-point-ref {\r
65         leaf service-interface-point-uuid {\r
66             type leafref {\r
67                 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';\r
68             }\r
69             description "none";\r
70         }\r
71         description "none";\r
72     }\r
73 \r
74    /**************************\r
75     * package object-classes\r
76     **************************/\r
77     grouping admin-state-pac {\r
78         leaf administrative-state {\r
79             type administrative-state;\r
80             description "none";\r
81         }\r
82         leaf operational-state {\r
83             type operational-state;\r
84             config false;\r
85             description "none";\r
86         }\r
87         leaf lifecycle-state {\r
88             type lifecycle-state;\r
89             config false;\r
90             description "none";\r
91         }\r
92         description "Provides state attributes that are applicable to an entity that can be administered. Such an entity also has operational and lifecycle aspects.";\r
93     }\r
94     grouping global-class {\r
95         leaf uuid {\r
96             type uuid;\r
97             description "UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity.\r
98                 UUID here uses string representation as defined in RFC 4122.  The canonical representation uses lowercase characters.\r
99                 Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\r
100                 Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
101         }\r
102         list name {\r
103             key 'value-name';\r
104             uses name-and-value;\r
105             description "List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.";\r
106         }\r
107         description "The TAPI GlobalComponent serves as the super class for all TAPI entities that can be directly retrieved by their ID. As such, these are first class entities and their ID is expected to be globally unique. ";\r
108     }\r
109     grouping lifecycle-state-pac {\r
110         leaf lifecycle-state {\r
111             type lifecycle-state;\r
112             config false;\r
113             description "none";\r
114         }\r
115         description "Provides state attributes for an entity that has lifeccycle aspects only.";\r
116     }\r
117     grouping local-class {\r
118         leaf local-id {\r
119             type string;\r
120             description "none";\r
121         }\r
122         list name {\r
123             key 'value-name';\r
124             uses name-and-value;\r
125             description "List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.";\r
126         }\r
127         description "The TAPI GlobalComponent serves as the super class for all TAPI entities that can be directly retrieved by their ID. As such, these are first class entities and their ID is expected to be globally unique. ";\r
128     }\r
129     grouping operational-state-pac {\r
130         leaf operational-state {\r
131             type operational-state;\r
132             config false;\r
133             description "none";\r
134         }\r
135         leaf lifecycle-state {\r
136             type lifecycle-state;\r
137             config false;\r
138             description "none";\r
139         }\r
140         description "Provides state attributes that are applicable to an entity that reflects operational aspects. Such an entity is expected to also have lifecycle aspects.";\r
141     }\r
142     container context {\r
143         uses tapi-context;\r
144         presence "Root container for all TAPI interaction";\r
145         description "none";\r
146     }\r
147     grouping tapi-context {\r
148         list service-interface-point {\r
149             key 'uuid';\r
150             uses service-interface-point;\r
151             description "none";\r
152         }\r
153         uses global-class;\r
154         description "The Network Control Domain (NCD) object class represents the scope of control that a particular SDN controller has with respect to a particular network, (i.e., encompassing a designated set of interconnected (virtual) network elements).";\r
155     }\r
156     grouping resource-spec {\r
157         uses global-class;\r
158         description "none";\r
159     }\r
160     grouping service-spec {\r
161         uses global-class;\r
162         description "none";\r
163     }\r
164     grouping service-interface-point {\r
165         leaf layer-protocol-name {\r
166             type layer-protocol-name;\r
167             config false;\r
168             description "Usage of layerProtocolName [>1]  in the ServiceInterfacePoint should be considered experimental";\r
169         }\r
170         leaf-list supported-layer-protocol-qualifier {\r
171             type layer-protocol-qualifier;\r
172             config false;\r
173             min-elements 1;\r
174             description "none";\r
175         }\r
176         uses resource-spec;\r
177         uses admin-state-pac;\r
178         uses capacity-pac;\r
179         description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.\r
180             The structure of LTP supports all transport protocols including circuit and packet forms.";\r
181     }\r
182     grouping capacity-pac {\r
183         container total-potential-capacity {\r
184             config false;\r
185             uses capacity;\r
186             description "An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken.";\r
187         }\r
188         container available-capacity {\r
189             config false;\r
190             uses capacity;\r
191             description "Capacity available to be assigned.";\r
192         }\r
193         description "The TopologicalEntity derives capacity from the underlying realization.\r
194             A TopologicalEntity may be an abstraction and virtualization of a subset of the underlying capability offered in a view or may be directly reflecting the underlying realization.\r
195             A TopologicalEntity may be directly used in the view or may be assigned to another view for use.\r
196             The clients supported by a multi-layer TopologicalEntity may interact such that the resources used by one client may impact those available to another. This is derived from the LTP spec details.\r
197             Represents the capacity available to user (client) along with client interaction and usage.\r
198             A TopologicalEntity may reflect one or more client protocols and one or more members for each profile.";\r
199     }\r
200     grouping termination-pac {\r
201         leaf termination-direction {\r
202             type termination-direction;\r
203             config false;\r
204             description "The overall directionality of the LP.\r
205                 - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss.\r
206                 - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows\r
207                 - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";\r
208         }\r
209         leaf termination-state {\r
210             type termination-state;\r
211             config false;\r
212             description "Indicates whether the layer is terminated and if so how.";\r
213         }\r
214         description "Each transport layer is represented by a LayerProtocol (LP) instance. The LayerProtocol instances it can be used for controlling termination and monitoring functionality.\r
215             It can also be used for controlling the adaptation (i.e. encapsulation and/or multiplexing of client signal), tandem connection monitoring, traffic conditioning and/or shaping functionality at an intermediate point along a connection.\r
216             Where the client â€“ server relationship is fixed 1:1 and immutable, the layers can be encapsulated in a single LTP instance. Where the is a n:1 relationship between client and server, the layers must be split over two separate instances of LTP. ";\r
217     }\r
218 \r
219    /**************************\r
220     * package type-definitions\r
221     **************************/\r
222     identity LAYER_PROTOCOL_QUALIFIER {\r
223         description "none";\r
224     }\r
225     typedef administrative-state {\r
226         type enumeration {\r
227             enum LOCKED {\r
228                 description "Users are administratively prohibited from making use of the resource.";\r
229             }\r
230             enum UNLOCKED {\r
231                 description "Users are allowed to use the resource";\r
232             }\r
233         }\r
234         description "The possible values of the administrativeState.";\r
235     }\r
236     typedef date-and-time {\r
237         type string;\r
238         description "This primitive type defines the date and time according to the following structure:\r
239             yyyyMMddhhmmss.s[Z|{+|-}HHMm] where:\r
240             yyyy    0000..9999    year\r
241             MM    01..12            month\r
242             dd        01..31            day\r
243             hh        00..23            hour\r
244             mm    00..59            minute\r
245             ss        00..59            second\r
246             s        .0...9            tenth of second (set to .0 if EMS or NE cannot support this granularity)\r
247             Z        Z                indicates UTC (rather than local time)\r
248             {+|-}    + or -            delta from UTC\r
249             HH        00..23            time zone difference in hours\r
250             Mm    00..59            time zone difference in minutes.";\r
251     }\r
252     typedef directive-value {\r
253         type enumeration {\r
254             enum MINIMIZE {\r
255                 description "none";\r
256             }\r
257             enum MAXIMIZE {\r
258                 description "none";\r
259             }\r
260             enum ALLOW {\r
261                 description "none";\r
262             }\r
263             enum DISALLOW {\r
264                 description "none";\r
265             }\r
266             enum DONT_CARE {\r
267                 description "none";\r
268             }\r
269         }\r
270         description "none";\r
271     }\r
272     typedef forwarding-direction {\r
273         type enumeration {\r
274             enum BIDIRECTIONAL {\r
275                 description "The Fowarding entity supports both BIDIRECTIONAL flows at all Ports (i.e. all Ports have both an INPUT flow and an OUTPUT flow defined)";\r
276             }\r
277             enum UNIDIRECTIONAL {\r
278                 description "The Forwarding entity has Ports that are either INPUT or OUTPUT. It has no BIDIRECTIONAL Ports.";\r
279             }\r
280             enum UNDEFINED_OR_UNKNOWN {\r
281                 description "Not a normal state. The system is unable to determine the correct value.";\r
282             }\r
283         }\r
284         description "The directionality of a Forwarding entity.";\r
285     }\r
286     typedef layer-protocol-name {\r
287         type enumeration {\r
288             enum ODU {\r
289                 description "Models the ODU layer as per ITU-T G.872";\r
290             }\r
291             enum ETH {\r
292                 description "Models the ETH layer as per ITU-T G.8010";\r
293             }\r
294             enum DSR {\r
295                 description "Models a Digital Signal of an unspecified rate. This value can be used when the intent is to respresent an generic digital layer signal without making any statement on its format or overhead (processing) capabilities.";\r
296             }\r
297             enum PHOTONIC_MEDIA {\r
298                 description "Models the OCH, OTSi, OTSiA, OTSiG, OMS, OTS and Media channels as per ITU-T G.872 (2017) version 4";\r
299             }\r
300         }\r
301         description "Provides a controlled list of layer protocol names and indicates the naming authority.\r
302             Note that it is expected that attributes will be added to this structure to convey the naming authority name, the name of the layer protocol using a human readable string and any particular standard reference.\r
303             Layer protocol names include:\r
304             -    Layer 1 (L1): OTU, ODU\r
305             -    Layer 2 (L2): Carrier Grade Ethernet (ETY, ETH), MPLS-TP (MT)\r
306             ";\r
307     }\r
308     typedef lifecycle-state {\r
309         type enumeration {\r
310             enum PLANNED {\r
311                 description "The resource is planned but is not present in the network.";\r
312             }\r
313             enum POTENTIAL_AVAILABLE {\r
314                 description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.\r
315                     o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.\r
316                     o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";\r
317             }\r
318             enum POTENTIAL_BUSY {\r
319                 description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.\r
320                     o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.\r
321                     o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";\r
322             }\r
323             enum INSTALLED {\r
324                 description "The resource is present in the network and is capable of providing the service expected.";\r
325             }\r
326             enum PENDING_REMOVAL {\r
327                 description "The resource has been marked for removal";\r
328             }\r
329         }\r
330         description "The possible values of the lifecycleState.";\r
331     }\r
332     grouping name-and-value {\r
333         leaf value-name {\r
334             type string;\r
335             description "The name of the value. The value need not have a name.";\r
336         }\r
337         leaf value {\r
338             type string;\r
339             description "The value";\r
340         }\r
341         description "A scoped name-value pair";\r
342     }\r
343     typedef operational-state {\r
344         type enumeration {\r
345             enum DISABLED {\r
346                 description "The resource is unable to meet the SLA of the user of the resource. If no (explicit) SLA is defined the resource is disabled if it is totally inoperable and unable to provide service to the user.";\r
347             }\r
348             enum ENABLED {\r
349                 description "The resource is partially or fully operable and available for use";\r
350             }\r
351         }\r
352         description "The possible values of the operationalState.";\r
353     }\r
354     typedef port-direction {\r
355         type enumeration {\r
356             enum BIDIRECTIONAL {\r
357                 description "The Port has both an INPUT flow and an OUTPUT flow defined.";\r
358             }\r
359             enum INPUT {\r
360                 description "The Port only has definition for a flow into the Forwarding entity (i.e. an ingress flow).";\r
361             }\r
362             enum OUTPUT {\r
363                 description "The Port only has definition for a flow out of the Forwarding entity (i.e. an egress flow).";\r
364             }\r
365             enum UNIDENTIFIED_OR_UNKNOWN {\r
366                 description "Not a normal state. The system is unable to determine the correct value.";\r
367             }\r
368         }\r
369         description "The orientation of flow at the Port of a Forwarding entity";\r
370     }\r
371     typedef port-role {\r
372         type enumeration {\r
373             enum SYMMETRIC {\r
374                 description "none";\r
375             }\r
376             enum ROOT {\r
377                 description "none";\r
378             }\r
379             enum LEAF {\r
380                 description "none";\r
381             }\r
382             enum TRUNK {\r
383                 description "none";\r
384             }\r
385             enum UNKNOWN {\r
386                 description "none";\r
387             }\r
388         }\r
389         description "The role of an end in the context of the function of the forwarding entity that it bounds";\r
390     }\r
391     typedef termination-direction {\r
392         type enumeration {\r
393             enum BIDIRECTIONAL {\r
394                 description "A Termination with both SINK and SOURCE flows.";\r
395             }\r
396             enum SINK {\r
397                 description "The flow is up the layer stack from the server side to the client side.\r
398                     Considering an example of a Termination function within the termination entity, a SINK flow:\r
399                     - will arrive at at the base of the termination function (the server side) where it is essentially at an INPUT to the termination component\r
400                     - then will be decoded and deconstructed\r
401                     - then relevant parts of the flow will be sent out of the termination function (the client side) where it is essentially at an OUTPUT from the termination component\r
402                     A SINK termination is one that only supports a SINK flow.\r
403                     A SINK termiation can be bound to an OUTPUT Port of a Forwarding entity";\r
404             }\r
405             enum SOURCE {\r
406                 description "The flow is down the layer stack from the server side to the client side.\r
407                     Considering an example of a Termination function within the termination entity, a SOURCE flow:\r
408                     - will arrive at at the top of the termination function (the client side) where it is essentially at an INPUT to the termination component\r
409                     - then will be assembled with various overheads etc and will be coded\r
410                     - then coded form of the assembly of flow will be sent out of the termination function (the server side) where it is essentially at an OUTPUT from the termination component\r
411                     A SOURCE termination is one that only supports a SOURCE flow.\r
412                     A SOURCE termiation can be bound to an INPUT Port of a Forwarding entity";\r
413             }\r
414             enum UNDEFINED_OR_UNKNOWN {\r
415                 description "Not a normal state. The system is unable to determine the correct value.";\r
416             }\r
417         }\r
418         description "The directionality of a termination entity";\r
419     }\r
420     typedef termination-state {\r
421         type enumeration {\r
422             enum LP_CAN_NEVER_TERMINATE {\r
423                 description "A non-flexible case that can never be terminated.";\r
424             }\r
425             enum LT_NOT_TERMINATED {\r
426                 description "A flexible termination that can terminate but is currently not terminated.";\r
427             }\r
428             enum TERMINATED_SERVER_TO_CLIENT_FLOW {\r
429                 description "A flexible termination that is currently terminated for server to client flow only.";\r
430             }\r
431             enum TERMINATED_CLIENT_TO_SERVER_FLOW {\r
432                 description "A flexible termination that is currently terminated for client to server flow only.";\r
433             }\r
434             enum TERMINATED_BIDIRECTIONAL {\r
435                 description "A flexible termination that is currently terminated in both directions of flow.";\r
436             }\r
437             enum LT_PERMENANTLY_TERMINATED {\r
438                 description "A non-flexible termination that is always terminated (in both directions of flow for a bidirectional case and in the one direction of flow for both unidirectional cases).";\r
439             }\r
440             enum TERMINATION_STATE_UNKNOWN {\r
441                 description "There TerminationState cannot be determined.";\r
442             }\r
443         }\r
444         description "Provides support for the range of behaviours and specific states that an LP can take with respect to termination of the signal.\r
445             Indicates to what degree the LayerTermination is terminated.";\r
446     }\r
447     typedef uuid {\r
448         type string;\r
449         description "The univeral ID value where the mechanism for generation is defned by some authority not directly referenced in the structure.\r
450             UUID here uses string representation as defined in RFC 4122.  The canonical representation uses lowercase characters.\r
451             Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\r
452             Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
453     }\r
454     grouping capacity {\r
455         container total-size {\r
456             uses capacity-value;\r
457             description "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate.";\r
458         }\r
459         container bandwidth-profile {\r
460             uses bandwidth-profile;\r
461             description "none";\r
462         }\r
463         description "Information on capacity of a particular TopologicalEntity.";\r
464     }\r
465     grouping bandwidth-profile {\r
466         leaf bw-profile-type {\r
467             type bandwidth-profile-type;\r
468             description "none";\r
469         }\r
470         container committed-information-rate {\r
471             uses capacity-value;\r
472             description "none";\r
473         }\r
474         container committed-burst-size {\r
475             uses capacity-value;\r
476             description "none";\r
477         }\r
478         container peak-information-rate {\r
479             uses capacity-value;\r
480             description "none";\r
481         }\r
482         container peak-burst-size {\r
483             uses capacity-value;\r
484             description "none";\r
485         }\r
486         leaf color-aware {\r
487             type boolean;\r
488             description "none";\r
489         }\r
490         leaf coupling-flag {\r
491             type boolean;\r
492             description "none";\r
493         }\r
494         description "none";\r
495     }\r
496     grouping capacity-value {\r
497         leaf value {\r
498             type uint64;\r
499             description "none";\r
500         }\r
501         leaf unit {\r
502             type capacity-unit;\r
503             description "none";\r
504         }\r
505         description "The Capacity (Bandwidth) values that are applicable for digital layers.";\r
506     }\r
507     typedef capacity-unit {\r
508         type enumeration {\r
509             enum TB {\r
510                 description "Indicates that the integer CapacityValue is in TeraBytes";\r
511             }\r
512             enum TBPS {\r
513                 description "Indicates that the integer CapacityValue is in Terabit-per-second";\r
514             }\r
515             enum GB {\r
516                 description "Indicates that the integer CapacityValue is in GigaBytes";\r
517             }\r
518             enum GBPS {\r
519                 description "Indicates that the integer CapacityValue is in Gigabit-per-second";\r
520             }\r
521             enum MB {\r
522                 description "Indicates that the integer CapacityValue is in MegaBytes";\r
523             }\r
524             enum MBPS {\r
525                 description "Indicates that the integer CapacityValue is in Megabit-per-second";\r
526             }\r
527             enum KB {\r
528                 description "Indicates that the integer CapacityValue is in KiloBytes";\r
529             }\r
530             enum KBPS {\r
531                 description "Indicates that the integer CapacityValue is in Kilobit-per-second";\r
532             }\r
533             enum GHz {\r
534                 description "none";\r
535             }\r
536             enum MHz {\r
537                 description "none";\r
538             }\r
539         }\r
540         description "none";\r
541     }\r
542     typedef bandwidth-profile-type {\r
543         type enumeration {\r
544             enum MEF_10.x {\r
545                 description "none";\r
546             }\r
547             enum RFC_2697 {\r
548                 description "none";\r
549             }\r
550             enum RFC_2698 {\r
551                 description "none";\r
552             }\r
553             enum RFC_4115 {\r
554                 description "none";\r
555             }\r
556         }\r
557         description "none";\r
558     }\r
559     grouping time-range {\r
560         leaf end-time {\r
561             type date-and-time;\r
562             description "none";\r
563         }\r
564         leaf start-time {\r
565             type date-and-time;\r
566             description "none";\r
567         }\r
568         description "none";\r
569     }\r
570     grouping time-period {\r
571         leaf value {\r
572             type uint64;\r
573             description "none";\r
574         }\r
575         leaf unit {\r
576             type time-unit;\r
577             description "none";\r
578         }\r
579         description "none";\r
580     }\r
581     typedef time-unit {\r
582         type enumeration {\r
583             enum YEARS {\r
584                 description "none";\r
585             }\r
586             enum MONTHS {\r
587                 description "none";\r
588             }\r
589             enum DAYS {\r
590                 description "none";\r
591             }\r
592             enum HOURS {\r
593                 description "none";\r
594             }\r
595             enum MINUTES {\r
596                 description "none";\r
597             }\r
598             enum SECONDS {\r
599                 description "none";\r
600             }\r
601             enum MILLISECONDS {\r
602                 description "none";\r
603             }\r
604             enum MICROSECONDS {\r
605                 description "none";\r
606             }\r
607             enum NANOSECONDS {\r
608                 description "none";\r
609             }\r
610             enum PICOSECONDS {\r
611                 description "none";\r
612             }\r
613         }\r
614         description "none";\r
615     }\r
616     grouping time-interval {\r
617         list period {\r
618             key 'unit';\r
619             min-elements 1;\r
620             max-elements 5;\r
621             uses time-period;\r
622             description "none";\r
623         }\r
624         description "none";\r
625     }\r
626     typedef layer-protocol-qualifier {\r
627         type identityref {\r
628             base LAYER_PROTOCOL_QUALIFIER;\r
629         }\r
630         description "This enumeration is used to qualify the sub-layers (if applicable) for a specific LayerProtocol.\r
631             This extensible enumeration is intentionally empty in the common module and will be augmented with layer-specific values in the respective technology-specific modules.\r
632             Examples:\r
633             - LayerProtocolName := OPTICAL_DATA_UNIT\r
634             LayerProtocolQualifier := 'ODU_FLEX', 'ODU_0', 'ODU_1', 'ODU_2', 'ODU_2E', 'ODU_3', 'ODU_4'', 'ODU_CBR'', 'ODU_GFP'', 'ODU_GFP_HAO', etc\r
635             - LayerProtocolName := DIGITAL_SIGNAL_RATE\r
636             LayerProtocolQualifier := 'GBE', '10_GBE_WAN', '10_GBE_LAN', '100_GBE', 'FC_100', 'FC_200', 'FC_400', 'FC_800', 'FC_1200', 'FC_1600', 'FC_3200', 'STM_1', 'STM_4', 'STM_16', 'STM_64', 'STM_256', 'OC_3', 'OC_12', 'OC_48', 'OC_192', 'OC_768', 'OTU_1', 'OTU_2', 'OTU_2E', 'OTU_3', 'OTU_4', 'GPON', 'XGPON', 'IB_SDR', 'IB_DDR', 'IB_QDR', 'SBCON_ESCON', 'DVB_ASI', 'SDI', 'SDI_1G5', 'SDI_3G', etc\r
637             - LayerProtocolName := PHOTONIC_MEDIA\r
638             LayerProtocolQualifier := OCH, OTSi, OTSiA, NMC, NMCA, SMC, SMCA, OMS, OTS\r
639             ";\r
640     }\r
641 \r
642    /**************************\r
643     * package interfaces\r
644     **************************/\r
645     rpc get-service-interface-point-details {\r
646         description "none";\r
647         input {\r
648             leaf sip-id-or-name {\r
649                 type string;\r
650                 description "none";\r
651             }\r
652         }\r
653         output {\r
654             container sip {\r
655                 uses service-interface-point;\r
656                 description "none";\r
657             }\r
658         }\r
659     }\r
660     rpc get-service-interface-point-list {\r
661         description "none";\r
662         output {\r
663             list sip {\r
664                 key 'uuid';\r
665                 uses service-interface-point;\r
666                 description "none";\r
667             }\r
668         }\r
669     }\r
670     rpc update-service-interface-point {\r
671         description "none";\r
672         input {\r
673             leaf sip-id-or-name {\r
674                 type string;\r
675                 description "none";\r
676             }\r
677             leaf state {\r
678                 type administrative-state;\r
679                 description "none";\r
680             }\r
681         }\r
682     }\r
683 }\r