blob: b5fecaa9eef18013dbc075e51263c7513b98f8fd [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-common {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-common";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-common;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08004 organization "ONF OTCC (Open Transport Configuration & Control) Project";
hirokid8fd7862018-10-09 15:24:24 +09005 contact "
6 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
7 Project List: <mailto:transport-api@opennetworking.org>
8 Editor: Karthik Sethuraman
9 <mailto:karthik.sethuraman@necam.com>";
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080010 description "
11 This module contains TAPI Common Model definitions.
12 Source: TapiCommon.uml
hiroki96ab3c22018-12-11 14:10:52 -080013 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
14 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
15 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
16 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
17 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
18 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
19 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
20 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
21 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
22 YANG models included in this release may not be backward compatible with previous TAPI releases.
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080023 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
hiroki96ab3c22018-12-11 14:10:52 -080024 License: This module is distributed under the Apache License 2.0";
25 revision 2018-12-10 {
26 description "ONF Transport API version 2.1.1.
27 Changes included in this TAPI release (v2.1.1) are listed in
28 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
29 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
30 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
31 }
hirokid8fd7862018-10-09 15:24:24 +090032 revision 2018-10-16 {
33 description "ONF Transport API version 2.1.0.
hiroki96ab3c22018-12-11 14:10:52 -080034 Changes included in this TAPI release (v2.1.0) are listed in
35 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090036 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
hirokid8fd7862018-10-09 15:24:24 +090037 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
38 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080039 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090040 description "ONF Transport API version 2.0.2
41 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070042 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
Ai Hamano06163902018-12-06 09:18:20 +090043 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070044 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
45 }
46 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090047 description "ONF Transport API version 2.0.1
48 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070049 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
Ai Hamano06163902018-12-06 09:18:20 +090050 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070051 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
52 }
53 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090054 description "ONF Transport API version 2.0.0
55 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070056 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090057 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070058 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070059 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080060
Ai Hamano06163902018-12-06 09:18:20 +090061 /**************************
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080062 * definitions of refrences
Ai Hamano06163902018-12-06 09:18:20 +090063 **************************/
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080064 grouping service-interface-point-ref {
hirokid8fd7862018-10-09 15:24:24 +090065 leaf service-interface-point-uuid {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080066 type leafref {
67 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
68 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070069 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080070 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070071 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080072 }
73
Ai Hamano06163902018-12-06 09:18:20 +090074 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -070075 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +090076 **************************/
77 grouping admin-state-pac {
78 leaf administrative-state {
79 type administrative-state;
80 description "none";
Toru Furusawa28988892017-10-30 17:28:40 -070081 }
Ai Hamano06163902018-12-06 09:18:20 +090082 leaf operational-state {
83 type operational-state;
84 config false;
85 description "none";
Toru Furusawa28988892017-10-30 17:28:40 -070086 }
Ai Hamano06163902018-12-06 09:18:20 +090087 leaf lifecycle-state {
88 type lifecycle-state;
89 config false;
90 description "none";
91 }
92 description "Provides state attributes that are applicable to an entity that can be administered. Such an entity also has operational and lifecycle aspects.";
93 }
94 grouping global-class {
95 leaf uuid {
96 type uuid;
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.
98 UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.
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}
100 Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
101 }
102 list name {
103 key 'value-name';
104 uses name-and-value;
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.";
106 }
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. ";
108 }
109 grouping lifecycle-state-pac {
110 leaf lifecycle-state {
111 type lifecycle-state;
112 config false;
113 description "none";
114 }
115 description "Provides state attributes for an entity that has lifeccycle aspects only.";
116 }
117 grouping local-class {
118 leaf local-id {
119 type string;
120 description "none";
121 }
122 list name {
123 key 'value-name';
124 uses name-and-value;
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.";
126 }
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. ";
128 }
129 grouping operational-state-pac {
130 leaf operational-state {
131 type operational-state;
132 config false;
133 description "none";
134 }
135 leaf lifecycle-state {
136 type lifecycle-state;
137 config false;
138 description "none";
139 }
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.";
141 }
142 container context {
143 uses tapi-context;
144 presence "Root container for all TAPI interaction";
145 description "none";
146 }
147 grouping tapi-context {
148 list service-interface-point {
149 key 'uuid';
150 uses service-interface-point;
151 description "none";
152 }
153 uses global-class;
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).";
155 }
156 grouping resource-spec {
157 uses global-class;
158 description "none";
159 }
160 grouping service-spec {
161 uses global-class;
162 description "none";
163 }
164 grouping service-interface-point {
165 leaf layer-protocol-name {
166 type layer-protocol-name;
167 config false;
168 description "Usage of layerProtocolName [>1] in the ServiceInterfacePoint should be considered experimental";
169 }
170 leaf-list supported-layer-protocol-qualifier {
171 type layer-protocol-qualifier;
172 config false;
173 min-elements 1;
174 description "none";
175 }
176 uses resource-spec;
177 uses admin-state-pac;
178 uses capacity-pac;
179 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
180 The structure of LTP supports all transport protocols including circuit and packet forms.";
181 }
182 grouping capacity-pac {
183 container total-potential-capacity {
184 config false;
185 uses capacity;
186 description "An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken.";
187 }
188 container available-capacity {
189 config false;
190 uses capacity;
191 description "Capacity available to be assigned.";
192 }
193 description "The TopologicalEntity derives capacity from the underlying realization.
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.
195 A TopologicalEntity may be directly used in the view or may be assigned to another view for use.
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.
197 Represents the capacity available to user (client) along with client interaction and usage.
198 A TopologicalEntity may reflect one or more client protocols and one or more members for each profile.";
199 }
200 grouping termination-pac {
201 leaf termination-direction {
202 type termination-direction;
203 config false;
204 description "The overall directionality of the LP.
205 - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss.
206 - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows
207 - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";
208 }
209 leaf termination-state {
210 type termination-state;
211 config false;
212 description "Indicates whether the layer is terminated and if so how.";
213 }
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.
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.
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. ";
217 }
218
219 /**************************
220 * package type-definitions
221 **************************/
222 identity LAYER_PROTOCOL_QUALIFIER {
223 description "none";
224 }
225 typedef administrative-state {
226 type enumeration {
227 enum LOCKED {
228 description "Users are administratively prohibited from making use of the resource.";
229 }
230 enum UNLOCKED {
231 description "Users are allowed to use the resource";
232 }
233 }
234 description "The possible values of the administrativeState.";
235 }
236 typedef date-and-time {
237 type string;
238 description "This primitive type defines the date and time according to the following structure:
239 yyyyMMddhhmmss.s[Z|{+|-}HHMm] where:
240 yyyy 0000..9999 year
241 MM 01..12 month
242 dd 01..31 day
243 hh 00..23 hour
244 mm 00..59 minute
245 ss 00..59 second
246 s .0...9 tenth of second (set to .0 if EMS or NE cannot support this granularity)
247 Z Z indicates UTC (rather than local time)
248 {+|-} + or - delta from UTC
249 HH 00..23 time zone difference in hours
250 Mm 00..59 time zone difference in minutes.";
251 }
252 typedef directive-value {
253 type enumeration {
254 enum MINIMIZE {
Toru Furusawa28988892017-10-30 17:28:40 -0700255 description "none";
256 }
Ai Hamano06163902018-12-06 09:18:20 +0900257 enum MAXIMIZE {
258 description "none";
259 }
260 enum ALLOW {
261 description "none";
262 }
263 enum DISALLOW {
264 description "none";
265 }
266 enum DONT_CARE {
267 description "none";
268 }
Toru Furusawa28988892017-10-30 17:28:40 -0700269 }
Ai Hamano06163902018-12-06 09:18:20 +0900270 description "none";
271 }
272 typedef forwarding-direction {
273 type enumeration {
274 enum BIDIRECTIONAL {
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)";
276 }
277 enum UNIDIRECTIONAL {
278 description "The Forwarding entity has Ports that are either INPUT or OUTPUT. It has no BIDIRECTIONAL Ports.";
279 }
280 enum UNDEFINED_OR_UNKNOWN {
281 description "Not a normal state. The system is unable to determine the correct value.";
282 }
283 }
284 description "The directionality of a Forwarding entity.";
285 }
286 typedef layer-protocol-name {
287 type enumeration {
288 enum ODU {
289 description "Models the ODU layer as per ITU-T G.872";
290 }
291 enum ETH {
292 description "Models the ETH layer as per ITU-T G.8010";
293 }
294 enum DSR {
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.";
296 }
297 enum PHOTONIC_MEDIA {
298 description "Models the OCH, OTSi, OTSiA, OTSiG, OMS, OTS and Media channels as per ITU-T G.872 (2017) version 4";
299 }
300 }
301 description "Provides a controlled list of layer protocol names and indicates the naming authority.
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.
303 Layer protocol names include:
304 - Layer 1 (L1): OTU, ODU
305 - Layer 2 (L2): Carrier Grade Ethernet (ETY, ETH), MPLS-TP (MT)
306 ";
307 }
308 typedef lifecycle-state {
309 type enumeration {
310 enum PLANNED {
311 description "The resource is planned but is not present in the network.";
312 }
313 enum POTENTIAL_AVAILABLE {
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.
315 o When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
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.";
317 }
318 enum POTENTIAL_BUSY {
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.
320 o When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
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.";
322 }
323 enum INSTALLED {
324 description "The resource is present in the network and is capable of providing the service expected.";
325 }
326 enum PENDING_REMOVAL {
327 description "The resource has been marked for removal";
328 }
329 }
330 description "The possible values of the lifecycleState.";
331 }
332 grouping name-and-value {
333 leaf value-name {
334 type string;
335 description "The name of the value. The value need not have a name.";
336 }
337 leaf value {
338 type string;
339 description "The value";
340 }
341 description "A scoped name-value pair";
342 }
343 typedef operational-state {
344 type enumeration {
345 enum DISABLED {
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.";
347 }
348 enum ENABLED {
349 description "The resource is partially or fully operable and available for use";
350 }
351 }
352 description "The possible values of the operationalState.";
353 }
354 typedef port-direction {
355 type enumeration {
356 enum BIDIRECTIONAL {
357 description "The Port has both an INPUT flow and an OUTPUT flow defined.";
358 }
359 enum INPUT {
360 description "The Port only has definition for a flow into the Forwarding entity (i.e. an ingress flow).";
361 }
362 enum OUTPUT {
363 description "The Port only has definition for a flow out of the Forwarding entity (i.e. an egress flow).";
364 }
365 enum UNIDENTIFIED_OR_UNKNOWN {
366 description "Not a normal state. The system is unable to determine the correct value.";
367 }
368 }
369 description "The orientation of flow at the Port of a Forwarding entity";
370 }
371 typedef port-role {
372 type enumeration {
373 enum SYMMETRIC {
374 description "none";
375 }
376 enum ROOT {
377 description "none";
378 }
379 enum LEAF {
380 description "none";
381 }
382 enum TRUNK {
383 description "none";
384 }
385 enum UNKNOWN {
386 description "none";
387 }
388 }
389 description "The role of an end in the context of the function of the forwarding entity that it bounds";
390 }
391 typedef termination-direction {
392 type enumeration {
393 enum BIDIRECTIONAL {
394 description "A Termination with both SINK and SOURCE flows.";
395 }
396 enum SINK {
397 description "The flow is up the layer stack from the server side to the client side.
398 Considering an example of a Termination function within the termination entity, a SINK flow:
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
400 - then will be decoded and deconstructed
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
402 A SINK termination is one that only supports a SINK flow.
403 A SINK termiation can be bound to an OUTPUT Port of a Forwarding entity";
404 }
405 enum SOURCE {
406 description "The flow is down the layer stack from the server side to the client side.
407 Considering an example of a Termination function within the termination entity, a SOURCE flow:
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
409 - then will be assembled with various overheads etc and will be coded
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
411 A SOURCE termination is one that only supports a SOURCE flow.
412 A SOURCE termiation can be bound to an INPUT Port of a Forwarding entity";
413 }
414 enum UNDEFINED_OR_UNKNOWN {
415 description "Not a normal state. The system is unable to determine the correct value.";
416 }
417 }
418 description "The directionality of a termination entity";
419 }
420 typedef termination-state {
421 type enumeration {
422 enum LP_CAN_NEVER_TERMINATE {
423 description "A non-flexible case that can never be terminated.";
424 }
425 enum LT_NOT_TERMINATED {
426 description "A flexible termination that can terminate but is currently not terminated.";
427 }
428 enum TERMINATED_SERVER_TO_CLIENT_FLOW {
429 description "A flexible termination that is currently terminated for server to client flow only.";
430 }
431 enum TERMINATED_CLIENT_TO_SERVER_FLOW {
432 description "A flexible termination that is currently terminated for client to server flow only.";
433 }
434 enum TERMINATED_BIDIRECTIONAL {
435 description "A flexible termination that is currently terminated in both directions of flow.";
436 }
437 enum LT_PERMENANTLY_TERMINATED {
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).";
439 }
440 enum TERMINATION_STATE_UNKNOWN {
441 description "There TerminationState cannot be determined.";
442 }
443 }
444 description "Provides support for the range of behaviours and specific states that an LP can take with respect to termination of the signal.
445 Indicates to what degree the LayerTermination is terminated.";
446 }
447 typedef uuid {
448 type string;
449 description "The univeral ID value where the mechanism for generation is defned by some authority not directly referenced in the structure.
450 UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.
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}
452 Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
453 }
454 grouping capacity {
455 container total-size {
456 uses capacity-value;
457 description "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate.";
458 }
459 container bandwidth-profile {
460 uses bandwidth-profile;
461 description "none";
462 }
463 description "Information on capacity of a particular TopologicalEntity.";
464 }
465 grouping bandwidth-profile {
466 leaf bw-profile-type {
467 type bandwidth-profile-type;
468 description "none";
469 }
470 container committed-information-rate {
471 uses capacity-value;
472 description "none";
473 }
474 container committed-burst-size {
475 uses capacity-value;
476 description "none";
477 }
478 container peak-information-rate {
479 uses capacity-value;
480 description "none";
481 }
482 container peak-burst-size {
483 uses capacity-value;
484 description "none";
485 }
486 leaf color-aware {
487 type boolean;
488 description "none";
489 }
490 leaf coupling-flag {
491 type boolean;
492 description "none";
493 }
494 description "none";
495 }
496 grouping capacity-value {
497 leaf value {
498 type uint64;
499 description "none";
500 }
501 leaf unit {
502 type capacity-unit;
503 description "none";
504 }
505 description "The Capacity (Bandwidth) values that are applicable for digital layers.";
506 }
507 typedef capacity-unit {
508 type enumeration {
509 enum TB {
510 description "Indicates that the integer CapacityValue is in TeraBytes";
511 }
512 enum TBPS {
513 description "Indicates that the integer CapacityValue is in Terabit-per-second";
514 }
515 enum GB {
516 description "Indicates that the integer CapacityValue is in GigaBytes";
517 }
518 enum GBPS {
519 description "Indicates that the integer CapacityValue is in Gigabit-per-second";
520 }
521 enum MB {
522 description "Indicates that the integer CapacityValue is in MegaBytes";
523 }
524 enum MBPS {
525 description "Indicates that the integer CapacityValue is in Megabit-per-second";
526 }
527 enum KB {
528 description "Indicates that the integer CapacityValue is in KiloBytes";
529 }
530 enum KBPS {
531 description "Indicates that the integer CapacityValue is in Kilobit-per-second";
532 }
533 enum GHz {
534 description "none";
535 }
536 enum MHz {
537 description "none";
538 }
539 }
540 description "none";
541 }
542 typedef bandwidth-profile-type {
543 type enumeration {
544 enum MEF_10.x {
545 description "none";
546 }
547 enum RFC_2697 {
548 description "none";
549 }
550 enum RFC_2698 {
551 description "none";
552 }
553 enum RFC_4115 {
554 description "none";
555 }
556 }
557 description "none";
558 }
559 grouping time-range {
560 leaf end-time {
561 type date-and-time;
562 description "none";
563 }
564 leaf start-time {
565 type date-and-time;
566 description "none";
567 }
568 description "none";
569 }
570 grouping time-period {
571 leaf value {
572 type uint64;
573 description "none";
574 }
575 leaf unit {
576 type time-unit;
577 description "none";
578 }
579 description "none";
580 }
581 typedef time-unit {
582 type enumeration {
583 enum YEARS {
584 description "none";
585 }
586 enum MONTHS {
587 description "none";
588 }
589 enum DAYS {
590 description "none";
591 }
592 enum HOURS {
593 description "none";
594 }
595 enum MINUTES {
596 description "none";
597 }
598 enum SECONDS {
599 description "none";
600 }
601 enum MILLISECONDS {
602 description "none";
603 }
604 enum MICROSECONDS {
605 description "none";
606 }
607 enum NANOSECONDS {
608 description "none";
609 }
610 enum PICOSECONDS {
611 description "none";
612 }
613 }
614 description "none";
615 }
616 grouping time-interval {
617 list period {
618 key 'unit';
619 min-elements 1;
620 max-elements 5;
621 uses time-period;
622 description "none";
623 }
624 description "none";
625 }
626 typedef layer-protocol-qualifier {
627 type identityref {
628 base LAYER_PROTOCOL_QUALIFIER;
629 }
630 description "This enumeration is used to qualify the sub-layers (if applicable) for a specific LayerProtocol.
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.
632 Examples:
633 - LayerProtocolName := OPTICAL_DATA_UNIT
634 LayerProtocolQualifier := 'ODU_FLEX', 'ODU_0', 'ODU_1', 'ODU_2', 'ODU_2E', 'ODU_3', 'ODU_4'', 'ODU_CBR'', 'ODU_GFP'', 'ODU_GFP_HAO', etc
635 - LayerProtocolName := DIGITAL_SIGNAL_RATE
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
637 - LayerProtocolName := PHOTONIC_MEDIA
638 LayerProtocolQualifier := OCH, OTSi, OTSiA, NMC, NMCA, SMC, SMCA, OMS, OTS
639 ";
640 }
641
642 /**************************
643 * package interfaces
644 **************************/
645 rpc get-service-interface-point-details {
646 description "none";
647 input {
648 leaf sip-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700649 type string;
650 description "none";
651 }
Toru Furusawa28988892017-10-30 17:28:40 -0700652 }
Ai Hamano06163902018-12-06 09:18:20 +0900653 output {
654 container sip {
655 uses service-interface-point;
Toru Furusawa28988892017-10-30 17:28:40 -0700656 description "none";
657 }
Toru Furusawa28988892017-10-30 17:28:40 -0700658 }
Ai Hamano06163902018-12-06 09:18:20 +0900659 }
660 rpc get-service-interface-point-list {
661 description "none";
662 output {
663 list sip {
Toru Furusawa28988892017-10-30 17:28:40 -0700664 key 'uuid';
Toru Furusawa28988892017-10-30 17:28:40 -0700665 uses service-interface-point;
666 description "none";
667 }
Toru Furusawa28988892017-10-30 17:28:40 -0700668 }
Ai Hamano06163902018-12-06 09:18:20 +0900669 }
670 rpc update-service-interface-point {
671 description "none";
672 input {
673 leaf sip-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700674 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700675 description "none";
676 }
Ai Hamano06163902018-12-06 09:18:20 +0900677 leaf state {
678 type administrative-state;
Toru Furusawa28988892017-10-30 17:28:40 -0700679 description "none";
680 }
Toru Furusawa28988892017-10-30 17:28:40 -0700681 }
Ai Hamano06163902018-12-06 09:18:20 +0900682 }
Toru Furusawa28988892017-10-30 17:28:40 -0700683}