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