[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / CSI-ReportConfig.h
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "NR-RRC-Definitions"
4  *      found in "../../../rrc_15.3_asn.asn1"
5  *      `asn1c -D ./25_02_2022_RRC/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #ifndef _CSI_ReportConfig_H_
9 #define _CSI_ReportConfig_H_
10
11
12 #include <asn_application.h>
13
14 /* Including external dependencies */
15 #include "CSI-ReportConfigId.h"
16 #include "ServCellIndex.h"
17 #include "CSI-ResourceConfigId.h"
18 #include <NativeEnumerated.h>
19 #include "CSI-ReportPeriodicityAndOffset.h"
20 #include <asn_SEQUENCE_OF.h>
21 #include <constr_SEQUENCE_OF.h>
22 #include <constr_SEQUENCE.h>
23 #include "P0-PUSCH-AlphaSetId.h"
24 #include <NativeInteger.h>
25 #include <constr_CHOICE.h>
26 #include <NULL.h>
27 #include <BIT_STRING.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 /* Dependencies */
34 typedef enum CSI_ReportConfig__reportConfigType_PR {
35         CSI_ReportConfig__reportConfigType_PR_NOTHING,  /* No components present */
36         CSI_ReportConfig__reportConfigType_PR_periodic,
37         CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUCCH,
38         CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUSCH,
39         CSI_ReportConfig__reportConfigType_PR_aperiodic
40 } CSI_ReportConfig__reportConfigType_PR;
41 typedef enum CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig {
42         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl5 = 0,
43         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl10        = 1,
44         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl20        = 2,
45         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl40        = 3,
46         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl80        = 4,
47         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl160       = 5,
48         CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl320       = 6
49 } e_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig;
50 typedef enum CSI_ReportConfig__reportQuantity_PR {
51         CSI_ReportConfig__reportQuantity_PR_NOTHING,    /* No components present */
52         CSI_ReportConfig__reportQuantity_PR_none,
53         CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI,
54         CSI_ReportConfig__reportQuantity_PR_cri_RI_i1,
55         CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI,
56         CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI,
57         CSI_ReportConfig__reportQuantity_PR_cri_RSRP,
58         CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP,
59         CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI
60 } CSI_ReportConfig__reportQuantity_PR;
61 typedef enum CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI {
62         CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n2      = 0,
63         CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n4      = 1
64 } e_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI;
65 typedef enum CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator {
66         CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI      = 0,
67         CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_subbandCQI       = 1
68 } e_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator;
69 typedef enum CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator {
70         CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_widebandPMI      = 0,
71         CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_subbandPMI       = 1
72 } e_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator;
73 typedef enum CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR {
74         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_NOTHING,        /* No components present */
75         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands3,
76         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands4,
77         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands5,
78         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands6,
79         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands7,
80         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands8,
81         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands9,
82         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands10,
83         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands11,
84         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands12,
85         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands13,
86         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands14,
87         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands15,
88         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands16,
89         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands17,
90         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands18,
91         /* Extensions may appear below */
92         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands19_v1530
93 } CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR;
94 typedef enum CSI_ReportConfig__timeRestrictionForChannelMeasurements {
95         CSI_ReportConfig__timeRestrictionForChannelMeasurements_configured      = 0,
96         CSI_ReportConfig__timeRestrictionForChannelMeasurements_notConfigured   = 1
97 } e_CSI_ReportConfig__timeRestrictionForChannelMeasurements;
98 typedef enum CSI_ReportConfig__timeRestrictionForInterferenceMeasurements {
99         CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_configured = 0,
100         CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_notConfigured      = 1
101 } e_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements;
102 typedef enum CSI_ReportConfig__dummy {
103         CSI_ReportConfig__dummy_n1      = 0,
104         CSI_ReportConfig__dummy_n2      = 1
105 } e_CSI_ReportConfig__dummy;
106 typedef enum CSI_ReportConfig__groupBasedBeamReporting_PR {
107         CSI_ReportConfig__groupBasedBeamReporting_PR_NOTHING,   /* No components present */
108         CSI_ReportConfig__groupBasedBeamReporting_PR_enabled,
109         CSI_ReportConfig__groupBasedBeamReporting_PR_disabled
110 } CSI_ReportConfig__groupBasedBeamReporting_PR;
111 typedef enum CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS {
112         CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n1  = 0,
113         CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n2  = 1,
114         CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n3  = 2,
115         CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n4  = 3
116 } e_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS;
117 typedef enum CSI_ReportConfig__cqi_Table {
118         CSI_ReportConfig__cqi_Table_table1      = 0,
119         CSI_ReportConfig__cqi_Table_table2      = 1,
120         CSI_ReportConfig__cqi_Table_table3      = 2,
121         CSI_ReportConfig__cqi_Table_spare1      = 3
122 } e_CSI_ReportConfig__cqi_Table;
123 typedef enum CSI_ReportConfig__subbandSize {
124         CSI_ReportConfig__subbandSize_value1    = 0,
125         CSI_ReportConfig__subbandSize_value2    = 1
126 } e_CSI_ReportConfig__subbandSize;
127 typedef enum CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530 {
128         CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl4 = 0,
129         CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl8 = 1,
130         CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl16        = 2
131 } e_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530;
132
133 /* Forward declarations */
134 struct CodebookConfig;
135 struct PUCCH_CSI_Resource;
136 struct PortIndexFor8Ranks;
137
138 /* CSI-ReportConfig */
139 typedef struct CSI_ReportConfig {
140         CSI_ReportConfigId_t     reportConfigId;
141         ServCellIndex_t *carrier;       /* OPTIONAL */
142         CSI_ResourceConfigId_t   resourcesForChannelMeasurement;
143         CSI_ResourceConfigId_t  *csi_IM_ResourcesForInterference;       /* OPTIONAL */
144         CSI_ResourceConfigId_t  *nzp_CSI_RS_ResourcesForInterference;   /* OPTIONAL */
145         struct CSI_ReportConfig__reportConfigType {
146                 CSI_ReportConfig__reportConfigType_PR present;
147                 union CSI_ReportConfig__reportConfigType_u {
148                         struct CSI_ReportConfig__reportConfigType__periodic {
149                                 CSI_ReportPeriodicityAndOffset_t         reportSlotConfig;
150                                 struct CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList {
151                                         A_SEQUENCE_OF(struct PUCCH_CSI_Resource) list;
152                                         
153                                         /* Context for parsing across buffer boundaries */
154                                         asn_struct_ctx_t _asn_ctx;
155                                 } pucch_CSI_ResourceList;
156                                 
157                                 /* Context for parsing across buffer boundaries */
158                                 asn_struct_ctx_t _asn_ctx;
159                         } *periodic;
160                         struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH {
161                                 CSI_ReportPeriodicityAndOffset_t         reportSlotConfig;
162                                 struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList {
163                                         A_SEQUENCE_OF(struct PUCCH_CSI_Resource) list;
164                                         
165                                         /* Context for parsing across buffer boundaries */
166                                         asn_struct_ctx_t _asn_ctx;
167                                 } pucch_CSI_ResourceList;
168                                 
169                                 /* Context for parsing across buffer boundaries */
170                                 asn_struct_ctx_t _asn_ctx;
171                         } *semiPersistentOnPUCCH;
172                         struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH {
173                                 long     reportSlotConfig;
174                                 struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList {
175                                         A_SEQUENCE_OF(long) list;
176                                         
177                                         /* Context for parsing across buffer boundaries */
178                                         asn_struct_ctx_t _asn_ctx;
179                                 } reportSlotOffsetList;
180                                 P0_PUSCH_AlphaSetId_t    p0alpha;
181                                 
182                                 /* Context for parsing across buffer boundaries */
183                                 asn_struct_ctx_t _asn_ctx;
184                         } *semiPersistentOnPUSCH;
185                         struct CSI_ReportConfig__reportConfigType__aperiodic {
186                                 struct CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList {
187                                         A_SEQUENCE_OF(long) list;
188                                         
189                                         /* Context for parsing across buffer boundaries */
190                                         asn_struct_ctx_t _asn_ctx;
191                                 } reportSlotOffsetList;
192                                 
193                                 /* Context for parsing across buffer boundaries */
194                                 asn_struct_ctx_t _asn_ctx;
195                         } *aperiodic;
196                 } choice;
197                 
198                 /* Context for parsing across buffer boundaries */
199                 asn_struct_ctx_t _asn_ctx;
200         } reportConfigType;
201         struct CSI_ReportConfig__reportQuantity {
202                 CSI_ReportConfig__reportQuantity_PR present;
203                 union CSI_ReportConfig__reportQuantity_u {
204                         NULL_t   none;
205                         NULL_t   cri_RI_PMI_CQI;
206                         NULL_t   cri_RI_i1;
207                         struct CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI {
208                                 long    *pdsch_BundleSizeForCSI;        /* OPTIONAL */
209                                 
210                                 /* Context for parsing across buffer boundaries */
211                                 asn_struct_ctx_t _asn_ctx;
212                         } *cri_RI_i1_CQI;
213                         NULL_t   cri_RI_CQI;
214                         NULL_t   cri_RSRP;
215                         NULL_t   ssb_Index_RSRP;
216                         NULL_t   cri_RI_LI_PMI_CQI;
217                 } choice;
218                 
219                 /* Context for parsing across buffer boundaries */
220                 asn_struct_ctx_t _asn_ctx;
221         } reportQuantity;
222         struct CSI_ReportConfig__reportFreqConfiguration {
223                 long    *cqi_FormatIndicator;   /* OPTIONAL */
224                 long    *pmi_FormatIndicator;   /* OPTIONAL */
225                 struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand {
226                         CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR present;
227                         union CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_u {
228                                 BIT_STRING_t     subbands3;
229                                 BIT_STRING_t     subbands4;
230                                 BIT_STRING_t     subbands5;
231                                 BIT_STRING_t     subbands6;
232                                 BIT_STRING_t     subbands7;
233                                 BIT_STRING_t     subbands8;
234                                 BIT_STRING_t     subbands9;
235                                 BIT_STRING_t     subbands10;
236                                 BIT_STRING_t     subbands11;
237                                 BIT_STRING_t     subbands12;
238                                 BIT_STRING_t     subbands13;
239                                 BIT_STRING_t     subbands14;
240                                 BIT_STRING_t     subbands15;
241                                 BIT_STRING_t     subbands16;
242                                 BIT_STRING_t     subbands17;
243                                 BIT_STRING_t     subbands18;
244                                 /*
245                                  * This type is extensible,
246                                  * possible extensions are below.
247                                  */
248                                 BIT_STRING_t     subbands19_v1530;
249                         } choice;
250                         
251                         /* Context for parsing across buffer boundaries */
252                         asn_struct_ctx_t _asn_ctx;
253                 } *csi_ReportingBand;
254                 
255                 /* Context for parsing across buffer boundaries */
256                 asn_struct_ctx_t _asn_ctx;
257         } *reportFreqConfiguration;
258         long     timeRestrictionForChannelMeasurements;
259         long     timeRestrictionForInterferenceMeasurements;
260         struct CodebookConfig   *codebookConfig;        /* OPTIONAL */
261         long    *dummy; /* OPTIONAL */
262         struct CSI_ReportConfig__groupBasedBeamReporting {
263                 CSI_ReportConfig__groupBasedBeamReporting_PR present;
264                 union CSI_ReportConfig__groupBasedBeamReporting_u {
265                         NULL_t   enabled;
266                         struct CSI_ReportConfig__groupBasedBeamReporting__disabled {
267                                 long    *nrofReportedRS;        /* OPTIONAL */
268                                 
269                                 /* Context for parsing across buffer boundaries */
270                                 asn_struct_ctx_t _asn_ctx;
271                         } *disabled;
272                 } choice;
273                 
274                 /* Context for parsing across buffer boundaries */
275                 asn_struct_ctx_t _asn_ctx;
276         } groupBasedBeamReporting;
277         long    *cqi_Table;     /* OPTIONAL */
278         long     subbandSize;
279         struct CSI_ReportConfig__non_PMI_PortIndication {
280                 A_SEQUENCE_OF(struct PortIndexFor8Ranks) list;
281                 
282                 /* Context for parsing across buffer boundaries */
283                 asn_struct_ctx_t _asn_ctx;
284         } *non_PMI_PortIndication;
285         /*
286          * This type is extensible,
287          * possible extensions are below.
288          */
289         struct CSI_ReportConfig__ext1 {
290                 struct CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530 {
291                         long     reportSlotConfig_v1530;
292                         
293                         /* Context for parsing across buffer boundaries */
294                         asn_struct_ctx_t _asn_ctx;
295                 } *semiPersistentOnPUSCH_v1530;
296                 
297                 /* Context for parsing across buffer boundaries */
298                 asn_struct_ctx_t _asn_ctx;
299         } *ext1;
300         
301         /* Context for parsing across buffer boundaries */
302         asn_struct_ctx_t _asn_ctx;
303 } CSI_ReportConfig_t;
304
305 /* Implementation */
306 /* extern asn_TYPE_descriptor_t asn_DEF_reportSlotConfig_17;    // (Use -fall-defs-global to expose) */
307 /* extern asn_TYPE_descriptor_t asn_DEF_pdsch_BundleSizeForCSI_36;      // (Use -fall-defs-global to expose) */
308 /* extern asn_TYPE_descriptor_t asn_DEF_cqi_FormatIndicator_44; // (Use -fall-defs-global to expose) */
309 /* extern asn_TYPE_descriptor_t asn_DEF_pmi_FormatIndicator_47; // (Use -fall-defs-global to expose) */
310 /* extern asn_TYPE_descriptor_t asn_DEF_timeRestrictionForChannelMeasurements_69;       // (Use -fall-defs-global to expose) */
311 /* extern asn_TYPE_descriptor_t asn_DEF_timeRestrictionForInterferenceMeasurements_72;  // (Use -fall-defs-global to expose) */
312 /* extern asn_TYPE_descriptor_t asn_DEF_dummy_76;       // (Use -fall-defs-global to expose) */
313 /* extern asn_TYPE_descriptor_t asn_DEF_nrofReportedRS_82;      // (Use -fall-defs-global to expose) */
314 /* extern asn_TYPE_descriptor_t asn_DEF_cqi_Table_87;   // (Use -fall-defs-global to expose) */
315 /* extern asn_TYPE_descriptor_t asn_DEF_subbandSize_92; // (Use -fall-defs-global to expose) */
316 /* extern asn_TYPE_descriptor_t asn_DEF_reportSlotConfig_v1530_100;     // (Use -fall-defs-global to expose) */
317 extern asn_TYPE_descriptor_t asn_DEF_CSI_ReportConfig;
318 extern asn_SEQUENCE_specifics_t asn_SPC_CSI_ReportConfig_specs_1;
319 extern asn_TYPE_member_t asn_MBR_CSI_ReportConfig_1[17];
320
321 #ifdef __cplusplus
322 }
323 #endif
324
325 #endif  /* _CSI_ReportConfig_H_ */
326 #include <asn_internal.h>