blob: 9569c14f30d178e740184ae0a6e431fa1eeb9912 [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";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -07005 contact "
6 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
7 Project List: <mailto:transport-api@opennetworking.org>
8 Editor: Karthik Sethuraman
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08009 <mailto:karthik.sethuraman@necam.com>";
10 description "
11 This module contains TAPI Common Model definitions.
12 Source: TapiCommon.uml
13 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
14 License: This module is distributed under the Apache License 2.0
15 ";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080016 revision 2018-03-07 {
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070017 description "ONF Transport API version 2.0.2
18 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
19 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
20 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
21 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
22 }
23 revision 2018-02-16 {
24 description "ONF Transport API version 2.0.1
25 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
26 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
27 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
28 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
29 }
30 revision 2018-01-02 {
31 description "ONF Transport API version 2.0.0
32 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
33 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
34 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
35 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070036 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080037
38 /*************************
39 * definitions of refrences
40 *************************/
41 grouping service-interface-point-ref {
42 leaf service-interface-point-id {
43 type leafref {
44 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
45 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070046 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080047 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070048 description "none";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080049 }
50
Toru Furusawa28988892017-10-30 17:28:40 -070051 /***********************
52 * package object-classes
53 **********************/
54 grouping admin-state-pac {
55 leaf administrative-state {
56 type administrative-state;
57 description "none";
58 }
59 leaf operational-state {
60 type operational-state;
61 config false;
62 description "none";
63 }
64 leaf lifecycle-state {
65 type lifecycle-state;
66 config false;
67 description "none";
68 }
69 description "Provides state attributes that are applicable to an entity that can be administered. Such an entity also has operational and lifecycle aspects.";
70 }
71 grouping global-class {
72 leaf uuid {
73 type uuid;
74 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.
75 UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.
76 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}
77 Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
78 }
79 list name {
80 key 'value-name';
81 uses name-and-value;
82 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.";
83 }
84 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. ";
85 }
Toru Furusawa28988892017-10-30 17:28:40 -070086 grouping lifecycle-state-pac {
87 leaf lifecycle-state {
88 type lifecycle-state;
89 config false;
90 description "none";
91 }
92 description "Provides state attributes for an entity that has lifeccycle aspects only.";
93 }
94 grouping local-class {
95 leaf local-id {
96 type string;
97 description "none";
98 }
99 list name {
100 key 'value-name';
101 uses name-and-value;
102 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.";
103 }
104 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. ";
105 }
106 grouping operational-state-pac {
107 leaf operational-state {
108 type operational-state;
109 config false;
110 description "none";
111 }
112 leaf lifecycle-state {
113 type lifecycle-state;
114 config false;
115 description "none";
116 }
117 description "Provides state attributes that are applicable to an entity that reflects operational aspects. Such an entity is expected to also have lifecycle aspects.";
118 }
119 container context {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800120 uses tapi-context;
121 presence "Root container for all TAPI interaction";
Toru Furusawa28988892017-10-30 17:28:40 -0700122 description "none";
123 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800124 grouping tapi-context {
Toru Furusawa28988892017-10-30 17:28:40 -0700125 list service-interface-point {
126 key 'uuid';
127 min-elements 2;
128 uses service-interface-point;
129 description "none";
130 }
131 uses global-class;
132 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).";
133 }
134 grouping resource-spec {
135 uses global-class;
136 description "none";
137 }
138 grouping service-spec {
139 uses global-class;
140 description "none";
141 }
142 grouping service-interface-point {
wu6a418d22018-02-02 01:49:21 -0500143 leaf-list layer-protocol-name {
144 type layer-protocol-name;
145 config false;
Toru Furusawa28988892017-10-30 17:28:40 -0700146 min-elements 1;
wu6a418d22018-02-02 01:49:21 -0500147 description "Usage of layerProtocolName [>1] in the ServiceInterfacePoint should be considered experimental";
Toru Furusawa28988892017-10-30 17:28:40 -0700148 }
149 uses resource-spec;
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800150 uses admin-state-pac;
151 uses capacity-pac;
Toru Furusawa28988892017-10-30 17:28:40 -0700152 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
153 The structure of LTP supports all transport protocols including circuit and packet forms.";
154 }
155 grouping capacity-pac {
156 container total-potential-capacity {
157 config false;
158 uses capacity;
159 description "An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken.";
160 }
161 container available-capacity {
162 config false;
163 uses capacity;
164 description "Capacity available to be assigned.";
165 }
166 description "The TopologicalEntity derives capacity from the underlying realization.
167 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.
168 A TopologicalEntity may be directly used in the view or may be assigned to another view for use.
169 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.
170 Represents the capacity available to user (client) along with client interaction and usage.
171 A TopologicalEntity may reflect one or more client protocols and one or more members for each profile.";
172 }
wu6a418d22018-02-02 01:49:21 -0500173 grouping termination-pac {
174 leaf termination-direction {
175 type termination-direction;
176 config false;
177 description "The overall directionality of the LP.
178 - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss.
179 - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows
180 - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";
181 }
182 leaf termination-state {
183 type termination-state;
184 config false;
185 description "Indicates whether the layer is terminated and if so how.";
186 }
187 description "Each transport layer is represented by a LayerProtocol (LP) instance. The LayerProtocol instances it can be used for controlling termination and monitoring functionality.
188 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.
189 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. ";
190 }
Toru Furusawa28988892017-10-30 17:28:40 -0700191
192 /***********************
193 * package type-definitions
194 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -0700195 typedef administrative-state {
196 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500197 enum LOCKED {
Toru Furusawa28988892017-10-30 17:28:40 -0700198 description "Users are administratively prohibited from making use of the resource.";
199 }
wu6a418d22018-02-02 01:49:21 -0500200 enum UNLOCKED {
Toru Furusawa28988892017-10-30 17:28:40 -0700201 description "Users are allowed to use the resource";
202 }
203 }
204 description "The possible values of the administrativeState.";
205 }
206 typedef date-and-time {
207 type string;
208 description "This primitive type defines the date and time according to the following structure:
209 yyyyMMddhhmmss.s[Z|{+|-}HHMm] where:
210 yyyy 0000..9999 year
211 MM 01..12 month
212 dd 01..31 day
213 hh 00..23 hour
214 mm 00..59 minute
215 ss 00..59 second
216 s .0...9 tenth of second (set to .0 if EMS or NE cannot support this granularity)
217 Z Z indicates UTC (rather than local time)
218 {+|-} + or - delta from UTC
219 HH 00..23 time zone difference in hours
220 Mm 00..59 time zone difference in minutes.";
221 }
222 typedef directive-value {
223 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500224 enum MINIMIZE {
Toru Furusawa28988892017-10-30 17:28:40 -0700225 description "none";
226 }
wu6a418d22018-02-02 01:49:21 -0500227 enum MAXIMIZE {
Toru Furusawa28988892017-10-30 17:28:40 -0700228 description "none";
229 }
wu6a418d22018-02-02 01:49:21 -0500230 enum ALLOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700231 description "none";
232 }
wu6a418d22018-02-02 01:49:21 -0500233 enum DISALLOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700234 description "none";
235 }
wu6a418d22018-02-02 01:49:21 -0500236 enum DONT_CARE {
Toru Furusawa28988892017-10-30 17:28:40 -0700237 description "none";
238 }
239 }
240 description "none";
241 }
242 typedef forwarding-direction {
243 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500244 enum BIDIRECTIONAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700245 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)";
246 }
wu6a418d22018-02-02 01:49:21 -0500247 enum UNIDIRECTIONAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700248 description "The Forwarding entity has Ports that are either INPUT or OUTPUT. It has no BIDIRECTIONAL Ports.";
249 }
wu6a418d22018-02-02 01:49:21 -0500250 enum UNDEFINED_OR_UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700251 description "Not a normal state. The system is unable to determine the correct value.";
252 }
253 }
254 description "The directionality of a Forwarding entity.";
255 }
256 typedef layer-protocol-name {
wu6a418d22018-02-02 01:49:21 -0500257 type enumeration {
258 enum OTSiA {
259 description "Models the OTSiA layer as per ITU-T G.872 (2017) version 4";
260 }
261 enum OCH {
262 description "Models the legacy OCH layer as per ITU-T G.872";
263 }
264 enum OTU {
265 description "Models the OTU layer as per ITU-T G.872";
266 }
267 enum ODU {
268 description "Models the ODU layer as per ITU-T G.872";
269 }
270 enum ETH {
271 description "Models the ETH layer as per ITU-T G.8010";
272 }
273 enum ETY {
274 description "Models the ETY layer as per ITU-T G.8010";
275 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800276 enum DSR {
277 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.";
278 }
Toru Furusawa28988892017-10-30 17:28:40 -0700279 }
280 description "Provides a controlled list of layer protocol names and indicates the naming authority.
281 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.
282 Layer protocol names include:
283 - Layer 1 (L1): OTU, ODU
284 - Layer 2 (L2): Carrier Grade Ethernet (ETY, ETH), MPLS-TP (MT)
285 ";
286 }
287 typedef lifecycle-state {
288 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500289 enum PLANNED {
Toru Furusawa28988892017-10-30 17:28:40 -0700290 description "The resource is planned but is not present in the network.";
291 }
wu6a418d22018-02-02 01:49:21 -0500292 enum POTENTIAL_AVAILABLE {
Toru Furusawa28988892017-10-30 17:28:40 -0700293 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.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700294 o When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
295 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.";
Toru Furusawa28988892017-10-30 17:28:40 -0700296 }
wu6a418d22018-02-02 01:49:21 -0500297 enum POTENTIAL_BUSY {
298 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.
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700299 o When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
300 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.";
wu6a418d22018-02-02 01:49:21 -0500301 }
302 enum INSTALLED {
Toru Furusawa28988892017-10-30 17:28:40 -0700303 description "The resource is present in the network and is capable of providing the service expected.";
304 }
wu6a418d22018-02-02 01:49:21 -0500305 enum PENDING_REMOVAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700306 description "The resource has been marked for removal";
307 }
308 }
309 description "The possible values of the lifecycleState.";
310 }
311 grouping name-and-value {
312 leaf value-name {
313 type string;
314 description "The name of the value. The value need not have a name.";
315 }
316 leaf value {
317 type string;
318 description "The value";
319 }
320 description "A scoped name-value pair";
321 }
322 typedef operational-state {
323 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500324 enum DISABLED {
Toru Furusawa28988892017-10-30 17:28:40 -0700325 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.";
326 }
wu6a418d22018-02-02 01:49:21 -0500327 enum ENABLED {
Toru Furusawa28988892017-10-30 17:28:40 -0700328 description "The resource is partially or fully operable and available for use";
329 }
330 }
331 description "The possible values of the operationalState.";
332 }
333 typedef port-direction {
334 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500335 enum BIDIRECTIONAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700336 description "The Port has both an INPUT flow and an OUTPUT flow defined.";
337 }
wu6a418d22018-02-02 01:49:21 -0500338 enum INPUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700339 description "The Port only has definition for a flow into the Forwarding entity (i.e. an ingress flow).";
340 }
wu6a418d22018-02-02 01:49:21 -0500341 enum OUTPUT {
Toru Furusawa28988892017-10-30 17:28:40 -0700342 description "The Port only has definition for a flow out of the Forwarding entity (i.e. an egress flow).";
343 }
wu6a418d22018-02-02 01:49:21 -0500344 enum UNIDENTIFIED_OR_UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700345 description "Not a normal state. The system is unable to determine the correct value.";
346 }
347 }
348 description "The orientation of flow at the Port of a Forwarding entity";
349 }
350 typedef port-role {
351 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500352 enum SYMMETRIC {
Toru Furusawa28988892017-10-30 17:28:40 -0700353 description "none";
354 }
wu6a418d22018-02-02 01:49:21 -0500355 enum ROOT {
Toru Furusawa28988892017-10-30 17:28:40 -0700356 description "none";
357 }
wu6a418d22018-02-02 01:49:21 -0500358 enum LEAF {
Toru Furusawa28988892017-10-30 17:28:40 -0700359 description "none";
360 }
wu6a418d22018-02-02 01:49:21 -0500361 enum TRUNK {
Toru Furusawa28988892017-10-30 17:28:40 -0700362 description "none";
363 }
wu6a418d22018-02-02 01:49:21 -0500364 enum UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700365 description "none";
366 }
367 }
368 description "The role of an end in the context of the function of the forwarding entity that it bounds";
369 }
370 typedef termination-direction {
371 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500372 enum BIDIRECTIONAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700373 description "A Termination with both SINK and SOURCE flows.";
374 }
wu6a418d22018-02-02 01:49:21 -0500375 enum SINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700376 description "The flow is up the layer stack from the server side to the client side.
377 Considering an example of a Termination function within the termination entity, a SINK flow:
378 - will arrive at at the base of the termination function (the server side) where it is essentially at an INPUT to the termination component
379 - then will be decoded and deconstructed
380 - 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
381 A SINK termination is one that only supports a SINK flow.
382 A SINK termiation can be bound to an OUTPUT Port of a Forwarding entity";
383 }
wu6a418d22018-02-02 01:49:21 -0500384 enum SOURCE {
Toru Furusawa28988892017-10-30 17:28:40 -0700385 description "The flow is down the layer stack from the server side to the client side.
386 Considering an example of a Termination function within the termination entity, a SOURCE flow:
387 - will arrive at at the top of the termination function (the client side) where it is essentially at an INPUT to the termination component
388 - then will be assembled with various overheads etc and will be coded
389 - 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
390 A SOURCE termination is one that only supports a SOURCE flow.
391 A SOURCE termiation can be bound to an INPUT Port of a Forwarding entity";
392 }
wu6a418d22018-02-02 01:49:21 -0500393 enum UNDEFINED_OR_UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700394 description "Not a normal state. The system is unable to determine the correct value.";
395 }
396 }
397 description "The directionality of a termination entity";
398 }
399 typedef termination-state {
400 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500401 enum LP_CAN_NEVER_TERMINATE {
Toru Furusawa28988892017-10-30 17:28:40 -0700402 description "A non-flexible case that can never be terminated.";
403 }
wu6a418d22018-02-02 01:49:21 -0500404 enum LT_NOT_TERMINATED {
Toru Furusawa28988892017-10-30 17:28:40 -0700405 description "A flexible termination that can terminate but is currently not terminated.";
406 }
wu6a418d22018-02-02 01:49:21 -0500407 enum TERMINATED_SERVER_TO_CLIENT_FLOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700408 description "A flexible termination that is currently terminated for server to client flow only.";
409 }
wu6a418d22018-02-02 01:49:21 -0500410 enum TERMINATED_CLIENT_TO_SERVER_FLOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700411 description "A flexible termination that is currently terminated for client to server flow only.";
412 }
wu6a418d22018-02-02 01:49:21 -0500413 enum TERMINATED_BIDIRECTIONAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700414 description "A flexible termination that is currently terminated in both directions of flow.";
415 }
wu6a418d22018-02-02 01:49:21 -0500416 enum LT_PERMENANTLY_TERMINATED {
Toru Furusawa28988892017-10-30 17:28:40 -0700417 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).";
418 }
wu6a418d22018-02-02 01:49:21 -0500419 enum TERMINATION_STATE_UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700420 description "There TerminationState cannot be determined.";
421 }
422 }
423 description "Provides support for the range of behaviours and specific states that an LP can take with respect to termination of the signal.
424 Indicates to what degree the LayerTermination is terminated.";
425 }
426 typedef uuid {
427 type string;
428 description "The univeral ID value where the mechanism for generation is defned by some authority not directly referenced in the structure.
429 UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.
430 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}
431 Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
432 }
433 grouping capacity {
434 container total-size {
435 uses capacity-value;
436 description "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate.";
437 }
438 container bandwidth-profile {
439 uses bandwidth-profile;
440 description "none";
441 }
442 description "Information on capacity of a particular TopologicalEntity.";
443 }
444 grouping bandwidth-profile {
445 leaf bw-profile-type {
446 type bandwidth-profile-type;
447 description "none";
448 }
449 container committed-information-rate {
450 uses capacity-value;
451 description "none";
452 }
453 container committed-burst-size {
454 uses capacity-value;
455 description "none";
456 }
457 container peak-information-rate {
458 uses capacity-value;
459 description "none";
460 }
461 container peak-burst-size {
462 uses capacity-value;
463 description "none";
464 }
465 leaf color-aware {
466 type boolean;
467 description "none";
468 }
469 leaf coupling-flag {
470 type boolean;
471 description "none";
472 }
473 description "none";
474 }
475 grouping capacity-value {
476 leaf value {
477 type uint64;
478 description "none";
479 }
480 leaf unit {
481 type capacity-unit;
482 description "none";
483 }
484 description "The Capacity (Bandwidth) values that are applicable for digital layers.";
485 }
486 typedef capacity-unit {
487 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500488 enum TB {
489 description "Indicates that the integer CapacityValue is in TeraBytes";
490 }
491 enum TBPS {
492 description "Indicates that the integer CapacityValue is in Terabit-per-second";
493 }
494 enum GB {
495 description "Indicates that the integer CapacityValue is in GigaBytes";
496 }
497 enum GBPS {
Toru Furusawa28988892017-10-30 17:28:40 -0700498 description "Indicates that the integer CapacityValue is in Gigabit-per-second";
499 }
wu6a418d22018-02-02 01:49:21 -0500500 enum MB {
501 description "Indicates that the integer CapacityValue is in MegaBytes";
502 }
503 enum MBPS {
Toru Furusawa28988892017-10-30 17:28:40 -0700504 description "Indicates that the integer CapacityValue is in Megabit-per-second";
505 }
wu6a418d22018-02-02 01:49:21 -0500506 enum KB {
507 description "Indicates that the integer CapacityValue is in KiloBytes";
508 }
509 enum KBPS {
Toru Furusawa28988892017-10-30 17:28:40 -0700510 description "Indicates that the integer CapacityValue is in Kilobit-per-second";
511 }
512 }
513 description "none";
514 }
515 typedef bandwidth-profile-type {
516 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500517 enum MEF_10.x {
Toru Furusawa28988892017-10-30 17:28:40 -0700518 description "none";
519 }
wu6a418d22018-02-02 01:49:21 -0500520 enum RFC_2697 {
Toru Furusawa28988892017-10-30 17:28:40 -0700521 description "none";
522 }
wu6a418d22018-02-02 01:49:21 -0500523 enum RFC_2698 {
Toru Furusawa28988892017-10-30 17:28:40 -0700524 description "none";
525 }
wu6a418d22018-02-02 01:49:21 -0500526 enum RFC_4115 {
Toru Furusawa28988892017-10-30 17:28:40 -0700527 description "none";
528 }
529 }
530 description "none";
531 }
532 grouping time-range {
533 leaf end-time {
534 type date-and-time;
535 description "none";
536 }
537 leaf start-time {
538 type date-and-time;
539 description "none";
540 }
541 description "none";
542 }
543
544 /***********************
545 * package interfaces
546 **********************/
547 rpc get-service-interface-point-details {
548 description "none";
549 input {
550 leaf sip-id-or-name {
551 type string;
552 description "none";
553 }
554 }
555 output {
556 container sip {
557 uses service-interface-point;
558 description "none";
559 }
560 }
561 }
562 rpc get-service-interface-point-list {
563 description "none";
564 output {
565 list sip {
566 uses service-interface-point;
567 description "none";
568 }
569 }
570 }
571 rpc update-service-interface-point {
572 description "none";
573 input {
574 leaf sip-id-or-name {
575 type string;
576 description "none";
577 }
578 leaf state {
579 type administrative-state;
580 description "none";
581 }
582 }
583 }
584
585}