Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / o-ran-module-cap@2020-12-10.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     revision-date 2020-08-10;
9   }
10
11   organization "O-RAN Alliance";
12
13   contact
14     "www.o-ran.org";
15
16   description
17     "This module defines the module capabilities for
18     the O-RAN Radio Unit.
19
20     Copyright 2020 the O-RAN Alliance.
21
22     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
23     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
26     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32     POSSIBILITY OF SUCH DAMAGE.
33
34     Redistribution and use in source and binary forms, with or without
35     modification, are permitted provided that the following conditions are met:
36
37     * Redistributions of source code must retain the above copyright notice,
38     this list of conditions and the above disclaimer.
39     * Redistributions in binary form must reproduce the above copyright notice,
40     this list of conditions and the above disclaimer in the documentation
41     and/or other materials provided with the distribution.
42     * Neither the Members of the O-RAN Alliance nor the names of its
43     contributors may be used to endorse or promote products derived from
44     this software without specific prior written permission.";
45
46   revision "2020-12-10" {
47     description
48       "version 5.0.0
49
50       1) added support for optimising coupling-via-frequency-and-time-with-priorities
51       by adding enhancement to existing method through a new leaf node";
52
53     reference "ORAN-WG4.M.0-v05.00";
54   }
55
56   revision "2020-08-10" {
57     description
58       "version 4.0.0
59
60       1) added RO capability to expose O-RU's ability to support udCompLen record in U-Plane section header fields
61       2) feature indicating support for static PRACH configuration introduced
62       3) feature indicating support for static SRS configuration introduced
63       4) feature indicating support for TDD pattern configuration introduced
64       5) backward compatible change to introduce new O-RU's features related
65       to Section Description Priority to serve for CUS-Plane C";
66
67     reference "ORAN-WG4.M.0-v04.00";
68   }
69
70   revision "2020-04-17" {
71     description
72       "version 3.0.0
73
74       1) Adding optional little endian support
75       2) Added support for Dynamic Spectrum Sharing feature
76       3) Enable number-of-ru-ports to be different between dl and ul
77       4) Enable regularizationFactor to be signalled outside of section type 6
78       5) Enable PRACH preamble formats supported to be signalled by O-RU
79       6) adding support for selective RE sending
80       7) supporting new section extension for grouping multiple ports
81       8) signalling to enable O-RU to ndicate is requires unique ecpri sequence id
82         for eAxC_IDs serving for UL and DL for the same carrier component";
83
84     reference "ORAN-WG4.M.0-v03.00";
85   }
86
87   revision "2019-07-03" {
88     description
89       "version 1.1.0
90
91       1) backward compatible change to introduce new RW leafs for use in
92       constraints in uplane-config and laa models.
93       2) removing unnecessary relations to band 46 in uplink";
94
95     reference "ORAN-WG4.M.0-v01.00";
96   }
97
98   revision "2019-02-04" {
99     description
100       "version 1.0.0
101
102       1) imported model from xRAN
103       2) changed namespace and reference from xran to o-ran";
104
105     reference "ORAN-WG4.M.0-v01.00";
106   }
107
108   feature LAA {
109     description
110       "Indicates that the Radio Unit supports LAA.";
111   }
112
113   feature EAXC-ID-GROUP-SUPPORTED {
114     description
115       "indicates that the Radio Unit supports EAXC-ID-GROUP-SUPPORTED.";
116   }
117
118   feature TRANSPORT-FRAGMENTATION {
119     description
120       "This leaf is used to indicate whether the O-RU supports O-RAN Radio Transport Fragmentation";
121   }
122
123   feature DSS_LTE_NR {
124     description
125       "Indicates that the Radio Unit supports Dynamic Spectrum Sharing between LTE and NR.";
126   }
127
128   feature PRACH-STATIC-CONFIGURATION-SUPPORTED {
129     description
130       "This leaf is used to indicate O-RU's support for configuration of PRACH (Physical Random Access Channel) pattern in the static manner, so that PRACH U-Plane traffic can be processed by RU without receiving C-Plane messages conveying the PRACH configuration.";
131   }
132
133   feature SRS-STATIC-CONFIGURATION-SUPPORTED {
134     description
135       "This leaf is used to indicate O-RU's support for configuration of SRS (Sounding Reference Signal Channel) pattern in the static manner, so that SRS U-Plane traffic can be processed by RU without receiving C-Plane messages conveying the SRS configuration.";
136   }
137
138   feature CONFIGURABLE-TDD-PATTERN-SUPPORTED {
139     description
140       "This leaf is used to indicate O-RU's support for configurable TDD pattern.";
141   }
142
143   typedef sub-band-string {
144     type string {
145       pattern [ABCD];
146     }
147     description "Sub bands definition";
148   }
149
150   typedef scs-config-type {
151     type enumeration {
152       enum KHZ_15 {
153         value 0;
154         description
155           "15kHz sub carrier spacing";
156       }
157       enum KHZ_30 {
158         value 1;
159         description
160           "30kHz sub carrier spacing";
161       }
162       enum KHZ_60 {
163         value 2;
164         description
165           "60kHz sub carrier spacing";
166       }
167       enum KHZ_120 {
168         value 3;
169         description
170           "120kHz sub carrier spacing";
171       }
172       enum KHZ_240 {
173         value 4;
174         description
175           "240kHz sub carrier spacing";
176       }
177       enum KHZ_1_25 {
178         value 12;
179         description
180           "1,25kHz sub carrier spacing";
181       }
182       enum KHZ_3_75 {
183         value 13;
184         description
185           "3.75kHz sub carrier spacing";
186       }
187       enum KHZ_5 {
188         value 14;
189         description
190           "5kHz sub carrier spacing";
191       }
192       enum KHZ_7_5 {
193         value 15;
194         description
195           "7.5kHz sub carrier spacing";
196       }
197     }
198
199     description
200       "Scs configuration type definition";
201   }
202
203   grouping compression-method-grouping {
204     description
205       "Grouping for compression method.";
206
207     leaf compression-method {
208       type enumeration {
209         enum BLOCK_FLOATING_POINT {
210           description
211             "Block floating point compression and decompression will be used";
212         }
213
214         enum BLOCK_SCALING {
215           description
216             "Block scaling compression and decompresion will be used";
217         }
218
219         enum U_LAW {
220           description
221             "u-Law compression and decompresion method will be used";
222         }
223
224         enum BEAMSPACE {
225           description
226             "Beamspace compression and decompression will be used";
227         }
228
229         enum MODULATION {
230           description
231             "Modulation compression and decompression will be used";
232         }
233
234         enum BLOCK-FLOATING-POINT-SELECTIVE-RE-SENDING {
235           description
236             "block floating point with selective re sending
237             compression and decompression will be used";
238         }
239         enum MODULATION-COMPRESSION-SELECTIVE-RE-SENDING {
240           description
241             "modulation compression with selective re sending
242             compression and decompression will be used";
243         }
244       }
245       description
246         "Compresion method which can be supported by the O-RU.
247         An O-RU may further refine the applicability of compression
248         methods per endpoint using o-ran-uplane-conf.yang model";
249     }
250   }
251
252   grouping sub-band-max-min-ul-dl-frequency {
253     description
254     "Grouping for defining max and min supported frequency - dl and ul.";
255
256     leaf max-supported-frequency-dl {
257       type uint64;
258       description
259         "This value indicates Maximum supported downlink frequency in the
260         LAA subband. Value unit is Hz.";
261     }
262
263     leaf min-supported-frequency-dl {
264       type uint64;
265       description
266         "This value indicates Minimum supported downlink frequency in the
267         LAA subband. Value unit is Hz.";
268     }
269   }
270
271   grouping format-of-iq-sample {
272     description
273       "Indicates module capabilities about IQ samples";
274
275     leaf dynamic-compression-supported {
276       type boolean;
277
278       description
279         "Informs if radio supports dynamic compression method";
280     }
281
282     leaf realtime-variable-bit-width-supported {
283       type boolean;
284
285       description
286         "Informs if O-RU supports realtime variable bit with";
287     }
288
289     list compression-method-supported {
290       uses cf:compression-details;
291
292       leaf-list fs-offset {
293         if-feature cf:CONFIGURABLE-FS-OFFSET;
294         type uint8;
295         default 0;
296         description
297           "List of fs offset values supported with this IQ format / compression method;
298            fs-offset adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format.
299            Please refer to CU-Plane specification for details";
300       }
301
302       description
303         "List of supported compression methods by O-RU
304          Note: if O-RU supports different compression methods per endpoint
305                then please refer to endpoints to have information what
306                exactly is supported on paticular endpoint";
307     }
308
309     leaf variable-bit-width-per-channel-supported {
310       when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
311       type boolean;
312
313       description
314         "Informs if variable bit width per channel is supported or not";
315     }
316
317     leaf syminc-supported {
318       type boolean;
319
320       description
321         "Informs if symbol number increment command in a C-Plane is
322          supported or not";
323     }
324
325     leaf regularization-factor-se-supported {
326       type boolean;
327
328       description
329         "Informs if regularizationFactor in section type 5 is
330          supported(true) or not(false)";
331     }
332
333     leaf little-endian-supported {
334       type boolean;
335       default false;
336
337       description
338         "All O-RUs support bigendian byte order. This node informs if module supports the
339         the optional capability for little endian byte order for C/U plane data flows.
340
341         Note - little endian support does not invalidate bigendian support.";
342     }
343
344   }
345
346   grouping scs-a-b {
347     description
348       "Grouping for scs-a and scs-b";
349     leaf scs-a{
350       type scs-config-type;
351       description
352         "Sub-carrier spacing configuration";
353     }
354     leaf scs-b{
355       type scs-config-type;
356       description
357         "Sub-carrier spacing configuration";
358     }
359   }
360
361   grouping ul-mixed-num-required-guard-rbs {
362     description
363       "Required number of guard resource blocks for the combination of
364       subcarrier spacing values for uplink";
365     uses scs-a-b;
366     leaf number-of-guard-rbs-ul{
367       type uint8;
368       description
369         "This value indicates the required number of guard resource blocks
370          between the mixed numerologies, the RB using scs-a and the RB
371          using scs-b. It's number is based on scs-a";
372     }
373   }
374
375   grouping dl-mixed-num-required-guard-rbs {
376     description
377       "Required number of guard resource blocks for the combination of
378       subcarrier spacing values for uplink";
379     uses scs-a-b;
380     leaf number-of-guard-rbs-dl{
381       type uint8;
382       description
383         "This value indicates the required number of guard resource blocks
384          between the mixed numerologies, the RB using scs-a and the RB
385          using scs-b. It's number is based on scs-a";
386     }
387   }
388
389   grouping ru-capabilities {
390     description
391       "Structure representing set of capabilities.";
392
393     leaf ru-supported-category {
394       type enumeration {
395         enum CAT_A {
396           description
397             "Informs that precoding is not supported in O-RU";
398         }
399         enum CAT_B {
400           description
401             "Informs that precoding is supported in O-RU";
402         }
403       }
404
405       description
406         "Informs about which category O-RU supports";
407     }
408
409     leaf number-of-ru-ports {
410       type uint8;
411       status deprecated;
412       description
413         "Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
414          - 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.
415          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.
416          In case there are specific endpoints that support non-time-managed traffic only
417          - the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
418     }
419     leaf number-of-ru-ports-ul {
420       type uint8;
421       description
422         "Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
423          - the number of O-RU ports for uplink is the product of number of spatial streams (leaf number-of-spatial-streams) and number of numerologies O-RU supports.
424          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.
425          In case there are specific endpoints that support non-time-managed traffic only
426          - the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
427     }
428     leaf number-of-ru-ports-dl {
429       type uint8;
430       description
431         "Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
432          - the number of O-RU ports for downlink is the product of number of spatial streams (leaf number-of-spatial-streams) and number of numerologies O-RU supports.
433          For example, if the number of spatial streams is 4 then the number of O-RU ports is 8 when SSB and non-SSB are processed in the different endpoints.
434          In case there are specific endpoints that support non-time-managed traffic only
435          - the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
436     }
437
438     leaf number-of-spatial-streams {
439       type uint8;
440       description
441         "This value indicates the number of spatial streams supported at O-RU for DL and UL.
442          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.";
443     }
444
445     leaf max-power-per-pa-antenna {
446       type decimal64{
447         fraction-digits 4;
448       }
449       description
450         "This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
451     }
452
453     leaf min-power-per-pa-antenna {
454       type decimal64{
455         fraction-digits 4;
456       }
457       description
458         "This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
459     }
460
461     leaf fronthaul-split-option {
462       type uint8 {
463         range "7";
464       }
465       description
466         "This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
467     }
468
469     container format-of-iq-sample {
470       description
471         "Indicates module capabilities about IQ samples";
472
473       uses format-of-iq-sample;
474     }
475
476     list ul-mixed-num-required-guard-rbs {
477       key "scs-a scs-b";
478       description
479         "List of required number of guard resource blocks
480         for the combination of subcarrier spacing values for downlink";
481
482       uses ul-mixed-num-required-guard-rbs;
483     }
484     list dl-mixed-num-required-guard-rbs {
485       key "scs-a scs-b";
486       description
487         "List of required number of guard resource blocks
488         for the combination of subcarrier spacing values for uplink";
489
490       uses dl-mixed-num-required-guard-rbs;
491     }
492
493     leaf energy-saving-by-transmission-blanks {
494       type boolean;
495       mandatory true;
496       description
497         "Parameter informs if unit supports energy saving by transmission blanking";
498     }
499     container eaxcid-grouping-capabilities {
500       if-feature o-ran-module-cap:EAXC-ID-GROUP-SUPPORTED;
501       description
502         "a container with parameters for eaxcid grouping";
503       leaf max-num-tx-eaxc-id-groups {
504         type uint8;
505         description
506           "Maximum number of configurable tx-eaxc-id-group supported by O-RU.";
507       }
508       leaf max-num-tx-eaxc-ids-per-group {
509         type uint8;
510         description
511           "Maximum number of member-tx-eaxc-id in single tx-eaxc-id-group supported by O-RU.";
512       }
513       leaf max-num-rx-eaxc-id-groups {
514         type uint8;
515         description
516           "the maximum number of groups with the eAxC IDs those are assigned to low-level-rx-links.";
517       }
518       leaf max-num-rx-eaxc-ids-per-group {
519         type uint8;
520         description
521           "the maximum number of eAxC IDs per rx-eaxc-id-group.";
522       }
523     }
524
525     leaf dynamic-transport-delay-management-supported {
526       type boolean;
527       mandatory true;
528       description
529         "Parameter informs if unit supports dynamic transport delay management through eCPRI Msg 5";
530     }
531
532     leaf support-only-unique-ecpri-seqid-per-eaxc {
533       type boolean;
534       default false;
535       description
536         "Parameter informs if O-RU expects unique ecpri sequence id for eAxC_IDs serving
537         for UL and DL for the same carrier component.
538
539         Note: If this is set to TRUE, the O-DU can decide to either use different eAxC_IDs for UL and
540         DL or can generate unique sequence ID per eAxC_ID.
541
542         TAKE NOTE: This leaf is backwards compatible from an O-RU persepctive BUT an O-RU that
543         sets this leaf to TRUE may result in incompatibilities when operating with an O-DU
544         designed according to the O-RAN CUS-Plane Specification v02.00, e.g., if the O-DU is
545         incapable of using different eAxC values between UL and DL";
546     }
547
548     container coupling-methods {
549       description
550         "O-RU's capabilities related to supported C-Plane and U-Plane coupling methods";
551
552       leaf coupling-via-frequency-and-time {
553         type boolean;
554         description
555           "Coupling via frequency and time; see methods of coupling of C-plane and U-plane in CUS-Plane specification";
556       }
557
558       leaf coupling-via-frequency-and-time-with-priorities {
559         type boolean;
560         description
561           "Coupling via Frequency and time with priorities; see methods of coupling of C-plane and U-plane in CUS-Plane specification.
562           Note: If coupling-via-frequency-and-time-with-priorities is 'true' then coupling-via-frequency-and-time shall also be 'true'.";
563       }
564
565       leaf coupling-via-frequency-and-time-with-priorities-optimized {
566         type boolean;
567         description
568           "Coupling via Frequency and time with priorities optimized; see methods of coupling of C-plane and U-plane in CUS-Plane specification.
569           Note: If coupling-via-frequency-and-time-with-priorities-optmized is 'true' then coupling-via-frequency-and-time shall also be 'true'.";
570       }
571     }
572
573     leaf ud-comp-len-supported {
574       type boolean;
575       description
576         "This property informs if O-RU supports optional field udCompLen in U-Plane messages.
577          Only in case this leaf is present and its value is TRUE, O-RU supports U-Plane messages
578          containing udCompLen field in section header.";
579     }
580   }
581
582   grouping sub-band-info {
583     description "container for collection of leafs for LAA subband 46";
584     list sub-band-frequency-ranges {
585       key sub-band;
586       description "frequency information on a per sub-band basis";
587       leaf sub-band {
588         type sub-band-string;
589         description "Sub band when band 46";
590       }
591       uses sub-band-max-min-ul-dl-frequency;
592     }
593     leaf number-of-laa-scarriers {
594       type uint8;
595       description
596         "This value indicates the number of LAA secondary carriers supported at O-RU.";
597     }
598
599     leaf maximum-laa-buffer-size {
600       type uint16;
601       description
602         "Maximum O-RU buffer size in Kilobytes (KB) per CC. This parameter is
603          needed at the O-DU to know how much data can be sent in advance
604          and stored at the O-RU to address the LBT uncertainity.";
605     }
606
607     leaf maximum-processing-time {
608       type uint16;
609       units microseconds;
610       description
611         "Maximum O-RU Processing time in microseconds at the O-RU to handle the
612          received/transmitted packets from/to the O-DU. This parameter is
613          needed at the O-DU to determine the time where it needs to send
614          the data to the O-RU.";
615     }
616
617     leaf self-configure {
618       type boolean;
619       description "This value indicates that the O-RU can manage the contention window locally. ";
620     }
621   }
622
623   grouping support-for-dl {
624     description
625       "Grouping for DL specific parameters";
626
627     leaf max-supported-frequency-dl {
628       type uint64;
629       description
630         "This value indicates Maximum supported downlink frequency. Value unit is Hz.";
631     }
632
633     leaf min-supported-frequency-dl {
634       type uint64;
635       description
636         "This value indicates Minimum supported downlink frequency. Value unit is Hz.";
637     }
638
639     leaf max-supported-bandwidth-dl {
640       type uint64;
641       description
642         "This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
643     }
644
645     leaf max-num-carriers-dl {
646       type uint32;
647       description
648         "This value indicates Maximum number of downlink carriers in module.";
649     }
650
651     leaf max-carrier-bandwidth-dl {
652       type uint64;
653       description
654         "This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
655     }
656
657     leaf min-carrier-bandwidth-dl {
658       type uint64;
659       description
660         "This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
661     }
662
663     leaf-list supported-technology-dl {
664       type enumeration{
665         enum LTE {
666           description "LTE is supported in DL path.";
667         }
668         enum NR {
669           description "NR is supported in DL path.";
670         }
671         enum DSS_LTE_NR {
672           if-feature DSS_LTE_NR;
673           description
674             "DSS is supported in the DL, which implicitly means LTE and NR are also
675             BOTH supported in the DL.";
676         }
677       }
678       min-elements 1;
679       description
680         "This list provides information regarding technologies supported in DL path";
681     }
682   }
683
684   grouping support-for-ul {
685     description
686       "Grouping for UL specific parameters";
687
688     leaf max-supported-frequency-ul {
689       type uint64;
690       description
691         "This value indicates Maximum supported uplink frequency. Value unit is Hz.";
692     }
693
694     leaf min-supported-frequency-ul {
695       type uint64;
696       description
697         "This value indicates Minimum supported uplink frequency. Value unit is Hz.";
698     }
699
700     leaf max-supported-bandwidth-ul {
701       type uint64;
702       description
703         "This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
704     }
705
706     leaf max-num-carriers-ul {
707       type uint32;
708       description
709         "This value indicates Maximum number of uplink carriers in module.";
710     }
711
712     leaf max-carrier-bandwidth-ul {
713       type uint64;
714       description
715         "This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
716     }
717
718     leaf min-carrier-bandwidth-ul {
719       type uint64;
720       description
721         "This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
722     }
723
724     leaf-list supported-technology-ul {
725       type enumeration{
726         enum LTE {
727           description "LTE is supported in UL path.";
728         }
729         enum NR {
730           description "NR is supported in UL path.";
731         }
732         enum DSS_LTE_NR {
733           if-feature DSS_LTE_NR;
734           description
735             "DSS is supported in the UL, which implicitly means LTE and NR are also
736             BOTH supported in the UL.";
737         }
738       }
739       min-elements 1;
740       description
741         "This list provides information regarding technologies supported in UL path";
742     }
743   }
744
745   grouping band-capabilities {
746     description
747       "Capabilities that are needed to be defined per each band";
748
749     leaf band-number {
750       type uint16;
751       description
752         "Band number";
753     }
754
755     container sub-band-info {
756       when "../band-number = '46'";
757       if-feature "o-ran-module-cap:LAA";
758       description "container for collection of leafs for LAA subband 46";
759       uses sub-band-info;
760     }
761
762     uses support-for-dl;
763     uses support-for-ul;
764
765     leaf max-num-component-carriers {
766       type uint8;
767       description "maximum number of component carriers supported by the O-RU";
768     }
769
770     leaf max-num-bands {
771       type uint16;
772       description "maximum number of bands supported by the O-RU";
773     }
774
775     leaf max-num-sectors {
776       type uint8;
777       description "maximum number of sectors supported by the O-RU";
778     }
779
780     leaf max-power-per-antenna {
781       type decimal64{
782         fraction-digits 4;
783       }
784       description
785         "This value indicates Maximum Power per band per antenna. Value unit is dBm.";
786     }
787
788     leaf min-power-per-antenna {
789       type decimal64{
790         fraction-digits 4;
791       }
792       description
793         "This value indicates Minimum Power per band per antenna. Value unit is dBm.";
794     }
795
796     leaf codebook-configuration_ng {
797         type uint8;
798         description
799           "This parameter informs the precoder codebook_ng that are used for precoding";
800       }
801
802     leaf codebook-configuration_n1 {
803         type uint8;
804         description
805           "This parameter informs the precoder codebook_n1 that are used for precoding";
806       }
807
808     leaf codebook-configuration_n2 {
809         type uint8;
810         description
811           "This parameter informs the precoder codebook_n2 that are used for precoding";
812     }
813   }
814
815   container module-capability {
816
817     description
818       "module capability object responsible for providing module capability.";
819
820     container ru-capabilities {
821       config false;
822       description
823         "Structure representing set of capabilities.";
824
825       uses ru-capabilities;
826     }
827
828     list band-capabilities {
829       key band-number;
830       config false;
831       description
832         "Capabilities that are needed to be defined per each band";
833
834       uses band-capabilities;
835     }
836     container rw-sub-band-info {
837       if-feature "o-ran-module-cap:LAA";
838       description "config true leafrefs for use as constraints for config true leafs";
839       leaf rw-number-of-laa-scarriers {
840         type leafref {
841           path "/module-capability/band-capabilities/sub-band-info/number-of-laa-scarriers";
842           require-instance false;
843         }
844         description
845           "This value indicates the number of LAA secondary carriers supported at O-RU.";
846       }
847       leaf rw-self-configure {
848         type leafref {
849           path "/module-capability/band-capabilities/sub-band-info/self-configure";
850           require-instance false;
851         }
852         description
853           "This value indicates that the O-RU can manage the contention window locally.";
854       }
855     }
856   }
857 }