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