2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "./22April22_Paging/rrc_15.3_asn.asn1"
5 * `asn1c -D ./22April22_Paging -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
8 #ifndef _CSI_ReportConfig_H_
9 #define _CSI_ReportConfig_H_
12 #include <asn_application.h>
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>
27 #include <BIT_STRING.h>
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;
133 /* Forward declarations */
134 struct CodebookConfig;
135 struct PUCCH_CSI_Resource;
136 struct PortIndexFor8Ranks;
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;
153 /* Context for parsing across buffer boundaries */
154 asn_struct_ctx_t _asn_ctx;
155 } pucch_CSI_ResourceList;
157 /* Context for parsing across buffer boundaries */
158 asn_struct_ctx_t _asn_ctx;
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;
165 /* Context for parsing across buffer boundaries */
166 asn_struct_ctx_t _asn_ctx;
167 } pucch_CSI_ResourceList;
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;
177 /* Context for parsing across buffer boundaries */
178 asn_struct_ctx_t _asn_ctx;
179 } reportSlotOffsetList;
180 P0_PUSCH_AlphaSetId_t p0alpha;
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;
189 /* Context for parsing across buffer boundaries */
190 asn_struct_ctx_t _asn_ctx;
191 } reportSlotOffsetList;
193 /* Context for parsing across buffer boundaries */
194 asn_struct_ctx_t _asn_ctx;
198 /* Context for parsing across buffer boundaries */
199 asn_struct_ctx_t _asn_ctx;
201 struct CSI_ReportConfig__reportQuantity {
202 CSI_ReportConfig__reportQuantity_PR present;
203 union CSI_ReportConfig__reportQuantity_u {
205 NULL_t cri_RI_PMI_CQI;
207 struct CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI {
208 long *pdsch_BundleSizeForCSI; /* OPTIONAL */
210 /* Context for parsing across buffer boundaries */
211 asn_struct_ctx_t _asn_ctx;
215 NULL_t ssb_Index_RSRP;
216 NULL_t cri_RI_LI_PMI_CQI;
219 /* Context for parsing across buffer boundaries */
220 asn_struct_ctx_t _asn_ctx;
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;
245 * This type is extensible,
246 * possible extensions are below.
248 BIT_STRING_t subbands19_v1530;
251 /* Context for parsing across buffer boundaries */
252 asn_struct_ctx_t _asn_ctx;
253 } *csi_ReportingBand;
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 {
266 struct CSI_ReportConfig__groupBasedBeamReporting__disabled {
267 long *nrofReportedRS; /* OPTIONAL */
269 /* Context for parsing across buffer boundaries */
270 asn_struct_ctx_t _asn_ctx;
274 /* Context for parsing across buffer boundaries */
275 asn_struct_ctx_t _asn_ctx;
276 } groupBasedBeamReporting;
277 long *cqi_Table; /* OPTIONAL */
279 struct CSI_ReportConfig__non_PMI_PortIndication {
280 A_SEQUENCE_OF(struct PortIndexFor8Ranks) list;
282 /* Context for parsing across buffer boundaries */
283 asn_struct_ctx_t _asn_ctx;
284 } *non_PMI_PortIndication;
286 * This type is extensible,
287 * possible extensions are below.
289 struct CSI_ReportConfig__ext1 {
290 struct CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530 {
291 long reportSlotConfig_v1530;
293 /* Context for parsing across buffer boundaries */
294 asn_struct_ctx_t _asn_ctx;
295 } *semiPersistentOnPUSCH_v1530;
297 /* Context for parsing across buffer boundaries */
298 asn_struct_ctx_t _asn_ctx;
301 /* Context for parsing across buffer boundaries */
302 asn_struct_ctx_t _asn_ctx;
303 } CSI_ReportConfig_t;
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];
325 #endif /* _CSI_ReportConfig_H_ */
326 #include <asn_internal.h>