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