Refactor folder structure.
[sim/o1-interface.git] / ntsimulator / yang / x-ran / xran-module-cap.yang
1 module xran-module-cap {
2   yang-version 1.1;
3   namespace "urn:xran:module-cap:1.0";
4   prefix "xran-module-cap";
5
6   organization "xRAN Forum";
7
8   contact
9     "www.xran.org";
10
11   description
12     "This module defines the module capabilities for
13     the xRAN Radio Unit.
14
15     Copyright 2018 the xRAN Forum.
16
17     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
18     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27     POSSIBILITY OF SUCH DAMAGE.
28
29     Redistribution and use in source and binary forms, with or without
30     modification, are permitted provided that the following conditions are met:
31
32     * Redistributions of source code must retain the above copyright notice,
33     this list of conditions and the above disclaimer.
34     * Redistributions in binary form must reproduce the above copyright notice,
35     this list of conditions and the above disclaimer in the documentation
36     and/or other materials provided with the distribution.
37     * Neither the Members of the xRAN Forum nor the names of its
38     contributors may be used to endorse or promote products derived from
39     this software without specific prior written permission.";
40
41   revision "2018-07-20" {
42     description
43       "version 1.0.0 - First release of the xRAN YANG M-Plane models.
44
45       This version of the model supports v01.00 of the corrsponding xRAN
46       M-Plane Specification.";
47     reference "XRAN-FH.MP.0-v01.00";
48   }
49
50   grouping compression-method-grouping {
51     description
52           "Grouping for compression method.";
53
54     leaf compression-method {
55       type enumeration {
56         enum BLOCK_FLOATING_POINT {
57           description
58             "Block floating point compression and decompression will be used";
59         }
60
61         enum BLOCK_SCALING {
62           description
63             "Block scaling compression and decompresion will be used";
64         }
65
66         enum U_LAW {
67           description
68             "u-Law compression and decompresion method will be used";
69         }
70
71         enum BEAMSPACE {
72           description
73             "Beamspace compression and decompression will be used";
74         }
75
76         enum MODULATION {
77           description
78             "Modulation compression and decompression will be used";
79         }
80       }
81           description
82             "Compresion method which can be supported by the RU";
83     }
84   }
85
86   container module-capability {
87     config false;
88     description
89       "module capability object responsible for providing module capability.";
90
91     container ru-capabilities {
92       description
93         "Structure representing set of capabilities.";
94
95       leaf ru-supported-category {
96         type enumeration {
97           enum CAT_A {
98             description
99               "Informs that precoding is supported in lls-CU";
100           }
101           enum CAT_B {
102             description
103               "Informs that precoding is supported in RU";
104           }
105         }
106
107         description
108           "Informs about which category RU supports";
109       }
110
111       leaf number-of-ru-ports {
112         type uint8;
113         description
114           "This value indicates the maximum number of simultaneous beams per RU.
115           This value is derived by the products of “numberOfPolarizations” and “numberOfPanels”
116           and “the maximum number of simultaneous beams per sub-carrier”.";
117       }
118
119       leaf number-of-antenna-ports {
120         type uint8;
121         description
122           "This value indicates the number of antenna ports supported at RU.
123           This parameter is used by the precoding control between lls-CU and UE.
124           This value conforms to 3GPP TS38.214, Section 5.2. Value 0 means “unused”.";
125       }
126
127       leaf max-power-per-pa-antenna {
128         type decimal64{
129           fraction-digits 4;
130         }
131         description
132           "This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
133       }
134
135       leaf min-power-per-pa-antenna {
136         type decimal64{
137           fraction-digits 4;
138         }
139         description
140           "This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
141       }
142
143       leaf fronthaul-split-option {
144         type uint8 {
145           range "7";
146         }
147         description
148           "This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
149       }
150
151       container format-of-iq-sample {
152         description
153           "Indicates module capabilities about IQ samples";
154
155         leaf dynamic-compression-supported {
156           type boolean;
157
158           description
159             "Informs if radio supports dynamic compression method";
160         }
161
162         leaf-list supported-bitwidths {
163           type uint8 {
164             range "1..16";
165           }
166
167           description
168             "List of supported bitwidths";
169         }
170
171         leaf realtime-variable-bit-width-supported {
172           type boolean;
173
174           description
175             "Informs if RU supports realtime variable bit with";
176         }
177
178         list compression-method-supported {
179           uses compression-method-grouping;
180           key "compression-method";
181           description
182             "List of supported compression methods by RU";
183         }
184
185         leaf variable-bit-width-per-channel-supported {
186           when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
187           type boolean;
188
189           description
190             "Informs if variable bit width per channel is supported or not";
191         }
192
193         leaf syminc-supported {
194           type boolean;
195
196           description
197             "Informs if symbol number increment command in a C-Plane is
198              supported or not";
199         }
200       }
201
202       list ul-mixed-num-required-guard-rbs {
203         key "scs-a scs-b";
204         description
205           "Required number of guard resource blocks for the combination of
206           subcarrier spacing values for uplink";
207         leaf scs-a{
208           type enumeration {
209             enum KHZ_15 {
210               value 0;
211                     description
212                     "15kHz sub carrier spacing";
213             }
214             enum KHZ_30 {
215               value 1;
216                   description
217                     "30kHz sub carrier spacing";
218             }
219             enum KHZ_60 {
220               value 2;
221                   description
222                     "60kHz sub carrier spacing";
223             }
224             enum KHZ_120 {
225               value 3;
226                   description
227                     "120kHz sub carrier spacing";
228             }
229             enum KHZ_240 {
230               value 4;
231                   description
232                     "240kHz sub carrier spacing";
233             }
234             enum KHZ_1_25 {
235               value 12;
236                     description
237                     "1,25kHz sub carrier spacing";
238             }
239             enum KHZ_5 {
240               value 14;
241                   description
242                     "5kHz sub carrier spacing";
243             }
244           }
245           description
246             "Sub-carrier spacing configuration";
247         }
248         leaf scs-b{
249           type enumeration {
250             enum KHZ_15 {
251               value 0;
252                     description
253                     "15kHz sub carrier spacing";
254             }
255             enum KHZ_30 {
256               value 1;
257                   description
258                     "30kHz sub carrier spacing";
259             }
260             enum KHZ_60 {
261               value 2;
262                   description
263                     "60kHz sub carrier spacing";
264             }
265             enum KHZ_120 {
266               value 3;
267                   description
268                     "120kHz sub carrier spacing";
269             }
270             enum KHZ_240 {
271               value 4;
272                   description
273                     "240kHz sub carrier spacing";
274             }
275             enum KHZ_1_25 {
276               value 12;
277                     description
278                     "1,25kHz sub carrier spacing";
279             }
280             enum KHZ_5 {
281               value 14;
282                   description
283                     "5kHz sub carrier spacing";
284             }
285           }
286           description
287             "Sub-carrier spacing configuration";
288         }
289         leaf number-of-guard-rbs-ul{
290           type uint8;
291           description
292             "This value indicates the required number of guard resource blocks
293              between the mixed numerologies, the RB using scs-a and the RB
294              using scs-b. It's number is based on scs-a";
295         }
296       }
297       list dl-mixed-num-required-guard-rbs {
298         key "scs-a scs-b";
299         description
300           "Required number of guard resource blocks for the combination of
301           subcarrier spacing values for downlink";
302           leaf scs-a{
303             type enumeration {
304               enum KHZ_15 {
305                 value 0;
306                       description
307                       "15kHz sub carrier spacing";
308               }
309               enum KHZ_30 {
310                 value 1;
311                     description
312                       "30kHz sub carrier spacing";
313               }
314               enum KHZ_60 {
315                 value 2;
316                     description
317                       "60kHz sub carrier spacing";
318               }
319               enum KHZ_120 {
320                 value 3;
321                     description
322                       "120kHz sub carrier spacing";
323               }
324               enum KHZ_240 {
325                 value 4;
326                     description
327                       "240kHz sub carrier spacing";
328               }
329               enum KHZ_1_25 {
330                 value 12;
331                       description
332                       "1,25kHz sub carrier spacing";
333               }
334               enum KHZ_5 {
335                 value 14;
336                     description
337                       "5kHz sub carrier spacing";
338               }
339             }
340             description
341               "Sub-carrier spacing configuration";
342           }
343           leaf scs-b{
344             type enumeration {
345               enum KHZ_15 {
346                 value 0;
347                       description
348                       "15kHz sub carrier spacing";
349               }
350               enum KHZ_30 {
351                 value 1;
352                     description
353                       "30kHz sub carrier spacing";
354               }
355               enum KHZ_60 {
356                 value 2;
357                     description
358                       "60kHz sub carrier spacing";
359               }
360               enum KHZ_120 {
361                 value 3;
362                     description
363                       "120kHz sub carrier spacing";
364               }
365               enum KHZ_240 {
366                 value 4;
367                     description
368                       "240kHz sub carrier spacing";
369               }
370               enum KHZ_1_25 {
371                 value 12;
372                       description
373                       "1,25kHz sub carrier spacing";
374               }
375               enum KHZ_5 {
376                 value 14;
377                     description
378                       "5kHz sub carrier spacing";
379               }
380             }
381             description
382               "Sub-carrier spacing configuration";
383           }
384         leaf number-of-guard-rbs-dl{
385           type uint8;
386           description
387             "This value indicates the required number of guard resource blocks
388              between the mixed numerologies, the RB using scs-a and the RB
389              using scs-b. It's number is based on scs-a";
390         }
391       }
392     }
393     list band-capabilities {
394       key band-number;
395       description
396         "Capabilities that are needed to be defined per each band";
397
398       leaf band-number {
399         type uint16;
400         description
401           "Band number";
402       }
403
404       leaf max-supported-frequency-dl {
405         type uint64;
406         description
407           "This value indicates Maximum supported downlink frequency. Value unit is Hz.";
408       }
409
410       leaf min-supported-frequency-dl {
411         type uint64;
412         description
413           "This value indicates Minimum supported downlink frequency. Value unit is Hz.";
414       }
415
416       leaf max-supported-bandwidth-dl {
417         type uint64;
418         description
419           "This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
420       }
421
422       leaf max-num-carriers-dl {
423         type uint32;
424         description
425           "This value indicates Maximum number of downlink carriers in module.";
426       }
427
428       leaf max-carrier-bandwidth-dl {
429         type uint64;
430         description
431           "This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
432       }
433
434       leaf min-carrier-bandwidth-dl {
435         type uint64;
436         description
437           "This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
438       }
439
440       leaf max-supported-frequency-ul {
441         type uint64;
442         description
443           "This value indicates Maximum supported uplink frequency. Value unit is Hz.";
444       }
445
446       leaf min-supported-frequency-ul {
447         type uint64;
448         description
449           "This value indicates Minimum supported uplink frequency. Value unit is Hz.";
450       }
451
452       leaf max-supported-bandwidth-ul {
453         type uint64;
454         description
455           "This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
456       }
457
458       leaf max-num-carriers-ul {
459         type uint32;
460         description
461           "This value indicates Maximum number of uplink carriers in module.";
462       }
463
464       leaf max-carrier-bandwidth-ul {
465         type uint64;
466         description
467           "This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
468       }
469
470       leaf min-carrier-bandwidth-ul {
471         type uint64;
472         description
473           "This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
474       }
475 //      leaf number-of-supported-streams {
476 //        when "/module-capability/ru-capabilities/ru-supported-category = 'CAT_A'"
477 //        type uint8;
478 //        description
479 //          "Number of supported spatial stream in case CAT-A is supported";
480 //      }
481 // Fixed me if they are necessary.
482
483       leaf max-num-component-carriers {
484         type uint8;
485         description "maximum number of component carriers supported by the RU";
486       }
487
488       leaf max-num-bands {
489         type uint16;
490         description "maximum number of bands supported by the RU";
491       }
492
493       leaf max-num-sectors {
494         type uint8;
495         description "maximum number of sectors supported by the RU";
496       }
497
498       leaf max-power-per-antenna {
499         type decimal64{
500           fraction-digits 4;
501         }
502         description
503           "This value indicates Maximum Power per band per antenna. Value unit is dBm.";
504       }
505
506       leaf min-power-per-antenna {
507         type decimal64{
508           fraction-digits 4;
509         }
510         description
511           "This value indicates Minimum Power per band per antenna. Value unit is dBm.";
512       }
513
514           leaf codebook-configuration_ng {
515           type uint8;
516           description
517             "This parameter informs the precoder codebook_ng that are used for precoding";
518         }
519
520           leaf codebook-configuration_n1 {
521           type uint8;
522           description
523             "This parameter informs the precoder codebook_n1 that are used for precoding";
524         }
525
526           leaf codebook-configuration_n2 {
527           type uint8;
528           description
529             "This parameter informs the precoder codebook_n2 that are used for precoding";
530       }
531     }
532   }
533 }