[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / CodebookConfig.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 _CodebookConfig_H_
9 #define _CodebookConfig_H_
10
11
12 #include <asn_application.h>
13
14 /* Including external dependencies */
15 #include <NativeInteger.h>
16 #include <BIT_STRING.h>
17 #include <constr_SEQUENCE.h>
18 #include <constr_CHOICE.h>
19 #include <NativeEnumerated.h>
20 #include <BOOLEAN.h>
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /* Dependencies */
27 typedef enum CodebookConfig__codebookType_PR {
28         CodebookConfig__codebookType_PR_NOTHING,        /* No components present */
29         CodebookConfig__codebookType_PR_type1,
30         CodebookConfig__codebookType_PR_type2
31 } CodebookConfig__codebookType_PR;
32 typedef enum CodebookConfig__codebookType__type1__subType_PR {
33         CodebookConfig__codebookType__type1__subType_PR_NOTHING,        /* No components present */
34         CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel,
35         CodebookConfig__codebookType__type1__subType_PR_typeI_MultiPanel
36 } CodebookConfig__codebookType__type1__subType_PR;
37 typedef enum CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR {
38         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_NOTHING,   /* No components present */
39         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two,
40         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo
41 } CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR;
42 typedef enum CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR {
43         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_NOTHING,       /* No components present */
44         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction,
45         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_two_TypeI_SinglePanel_Restriction,
46         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_one_TypeI_SinglePanel_Restriction,
47         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_three_two_TypeI_SinglePanel_Restriction,
48         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_one_TypeI_SinglePanel_Restriction,
49         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_two_TypeI_SinglePanel_Restriction,
50         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_one_TypeI_SinglePanel_Restriction,
51         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_three_TypeI_SinglePanel_Restriction,
52         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_two_TypeI_SinglePanel_Restriction,
53         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_twelve_one_TypeI_SinglePanel_Restriction,
54         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_four_TypeI_SinglePanel_Restriction,
55         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_two_TypeI_SinglePanel_Restriction,
56         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_sixteen_one_TypeI_SinglePanel_Restriction
57 } CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR;
58 typedef enum CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR {
59         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_NOTHING,    /* No components present */
60         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_one_TypeI_MultiPanel_Restriction,
61         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_one_TypeI_MultiPanel_Restriction,
62         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_one_TypeI_MultiPanel_Restriction,
63         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_two_TypeI_MultiPanel_Restriction,
64         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_eight_one_TypeI_MultiPanel_Restriction,
65         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_four_one_TypeI_MultiPanel_Restriction,
66         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_two_TypeI_MultiPanel_Restriction,
67         CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_two_TypeI_MultiPanel_Restriction
68 } CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR;
69 typedef enum CodebookConfig__codebookType__type2__subType_PR {
70         CodebookConfig__codebookType__type2__subType_PR_NOTHING,        /* No components present */
71         CodebookConfig__codebookType__type2__subType_PR_typeII,
72         CodebookConfig__codebookType__type2__subType_PR_typeII_PortSelection
73 } CodebookConfig__codebookType__type2__subType_PR;
74 typedef enum CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR {
75         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_NOTHING,       /* No components present */
76         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_one,
77         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_two,
78         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_one,
79         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_three_two,
80         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_one,
81         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_two,
82         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_one,
83         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_three,
84         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_two,
85         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_twelve_one,
86         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_four,
87         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_two,
88         CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_sixteen_one
89 } CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR;
90 typedef enum CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize {
91         CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n1        = 0,
92         CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n2        = 1,
93         CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n3        = 2,
94         CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n4        = 3
95 } e_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize;
96 typedef enum CodebookConfig__codebookType__type2__phaseAlphabetSize {
97         CodebookConfig__codebookType__type2__phaseAlphabetSize_n4       = 0,
98         CodebookConfig__codebookType__type2__phaseAlphabetSize_n8       = 1
99 } e_CodebookConfig__codebookType__type2__phaseAlphabetSize;
100 typedef enum CodebookConfig__codebookType__type2__numberOfBeams {
101         CodebookConfig__codebookType__type2__numberOfBeams_two  = 0,
102         CodebookConfig__codebookType__type2__numberOfBeams_three        = 1,
103         CodebookConfig__codebookType__type2__numberOfBeams_four = 2
104 } e_CodebookConfig__codebookType__type2__numberOfBeams;
105
106 /* CodebookConfig */
107 typedef struct CodebookConfig {
108         struct CodebookConfig__codebookType {
109                 CodebookConfig__codebookType_PR present;
110                 union CodebookConfig__codebookType_u {
111                         struct CodebookConfig__codebookType__type1 {
112                                 struct CodebookConfig__codebookType__type1__subType {
113                                         CodebookConfig__codebookType__type1__subType_PR present;
114                                         union CodebookConfig__codebookType__type1__subType_u {
115                                                 struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel {
116                                                         struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts {
117                                                                 CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR present;
118                                                                 union CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_u {
119                                                                         struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two {
120                                                                                 BIT_STRING_t     twoTX_CodebookSubsetRestriction;
121                                                                                 
122                                                                                 /* Context for parsing across buffer boundaries */
123                                                                                 asn_struct_ctx_t _asn_ctx;
124                                                                         } *two;
125                                                                         struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo {
126                                                                                 struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 {
127                                                                                         CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR present;
128                                                                                         union CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_u {
129                                                                                                 BIT_STRING_t     two_one_TypeI_SinglePanel_Restriction;
130                                                                                                 BIT_STRING_t     two_two_TypeI_SinglePanel_Restriction;
131                                                                                                 BIT_STRING_t     four_one_TypeI_SinglePanel_Restriction;
132                                                                                                 BIT_STRING_t     three_two_TypeI_SinglePanel_Restriction;
133                                                                                                 BIT_STRING_t     six_one_TypeI_SinglePanel_Restriction;
134                                                                                                 BIT_STRING_t     four_two_TypeI_SinglePanel_Restriction;
135                                                                                                 BIT_STRING_t     eight_one_TypeI_SinglePanel_Restriction;
136                                                                                                 BIT_STRING_t     four_three_TypeI_SinglePanel_Restriction;
137                                                                                                 BIT_STRING_t     six_two_TypeI_SinglePanel_Restriction;
138                                                                                                 BIT_STRING_t     twelve_one_TypeI_SinglePanel_Restriction;
139                                                                                                 BIT_STRING_t     four_four_TypeI_SinglePanel_Restriction;
140                                                                                                 BIT_STRING_t     eight_two_TypeI_SinglePanel_Restriction;
141                                                                                                 BIT_STRING_t     sixteen_one_TypeI_SinglePanel_Restriction;
142                                                                                         } choice;
143                                                                                         
144                                                                                         /* Context for parsing across buffer boundaries */
145                                                                                         asn_struct_ctx_t _asn_ctx;
146                                                                                 } n1_n2;
147                                                                                 BIT_STRING_t    *typeI_SinglePanel_codebookSubsetRestriction_i2;        /* OPTIONAL */
148                                                                                 
149                                                                                 /* Context for parsing across buffer boundaries */
150                                                                                 asn_struct_ctx_t _asn_ctx;
151                                                                         } *moreThanTwo;
152                                                                 } choice;
153                                                                 
154                                                                 /* Context for parsing across buffer boundaries */
155                                                                 asn_struct_ctx_t _asn_ctx;
156                                                         } nrOfAntennaPorts;
157                                                         BIT_STRING_t     typeI_SinglePanel_ri_Restriction;
158                                                         
159                                                         /* Context for parsing across buffer boundaries */
160                                                         asn_struct_ctx_t _asn_ctx;
161                                                 } *typeI_SinglePanel;
162                                                 struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel {
163                                                         struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 {
164                                                                 CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR present;
165                                                                 union CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_u {
166                                                                         BIT_STRING_t     two_two_one_TypeI_MultiPanel_Restriction;
167                                                                         BIT_STRING_t     two_four_one_TypeI_MultiPanel_Restriction;
168                                                                         BIT_STRING_t     four_two_one_TypeI_MultiPanel_Restriction;
169                                                                         BIT_STRING_t     two_two_two_TypeI_MultiPanel_Restriction;
170                                                                         BIT_STRING_t     two_eight_one_TypeI_MultiPanel_Restriction;
171                                                                         BIT_STRING_t     four_four_one_TypeI_MultiPanel_Restriction;
172                                                                         BIT_STRING_t     two_four_two_TypeI_MultiPanel_Restriction;
173                                                                         BIT_STRING_t     four_two_two_TypeI_MultiPanel_Restriction;
174                                                                 } choice;
175                                                                 
176                                                                 /* Context for parsing across buffer boundaries */
177                                                                 asn_struct_ctx_t _asn_ctx;
178                                                         } ng_n1_n2;
179                                                         BIT_STRING_t     ri_Restriction;
180                                                         
181                                                         /* Context for parsing across buffer boundaries */
182                                                         asn_struct_ctx_t _asn_ctx;
183                                                 } *typeI_MultiPanel;
184                                         } choice;
185                                         
186                                         /* Context for parsing across buffer boundaries */
187                                         asn_struct_ctx_t _asn_ctx;
188                                 } subType;
189                                 long     codebookMode;
190                                 
191                                 /* Context for parsing across buffer boundaries */
192                                 asn_struct_ctx_t _asn_ctx;
193                         } *type1;
194                         struct CodebookConfig__codebookType__type2 {
195                                 struct CodebookConfig__codebookType__type2__subType {
196                                         CodebookConfig__codebookType__type2__subType_PR present;
197                                         union CodebookConfig__codebookType__type2__subType_u {
198                                                 struct CodebookConfig__codebookType__type2__subType__typeII {
199                                                         struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction {
200                                                                 CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR present;
201                                                                 union CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_u {
202                                                                         BIT_STRING_t     two_one;
203                                                                         BIT_STRING_t     two_two;
204                                                                         BIT_STRING_t     four_one;
205                                                                         BIT_STRING_t     three_two;
206                                                                         BIT_STRING_t     six_one;
207                                                                         BIT_STRING_t     four_two;
208                                                                         BIT_STRING_t     eight_one;
209                                                                         BIT_STRING_t     four_three;
210                                                                         BIT_STRING_t     six_two;
211                                                                         BIT_STRING_t     twelve_one;
212                                                                         BIT_STRING_t     four_four;
213                                                                         BIT_STRING_t     eight_two;
214                                                                         BIT_STRING_t     sixteen_one;
215                                                                 } choice;
216                                                                 
217                                                                 /* Context for parsing across buffer boundaries */
218                                                                 asn_struct_ctx_t _asn_ctx;
219                                                         } n1_n2_codebookSubsetRestriction;
220                                                         BIT_STRING_t     typeII_RI_Restriction;
221                                                         
222                                                         /* Context for parsing across buffer boundaries */
223                                                         asn_struct_ctx_t _asn_ctx;
224                                                 } *typeII;
225                                                 struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection {
226                                                         long    *portSelectionSamplingSize;     /* OPTIONAL */
227                                                         BIT_STRING_t     typeII_PortSelectionRI_Restriction;
228                                                         
229                                                         /* Context for parsing across buffer boundaries */
230                                                         asn_struct_ctx_t _asn_ctx;
231                                                 } *typeII_PortSelection;
232                                         } choice;
233                                         
234                                         /* Context for parsing across buffer boundaries */
235                                         asn_struct_ctx_t _asn_ctx;
236                                 } subType;
237                                 long     phaseAlphabetSize;
238                                 BOOLEAN_t        subbandAmplitude;
239                                 long     numberOfBeams;
240                                 
241                                 /* Context for parsing across buffer boundaries */
242                                 asn_struct_ctx_t _asn_ctx;
243                         } *type2;
244                 } choice;
245                 
246                 /* Context for parsing across buffer boundaries */
247                 asn_struct_ctx_t _asn_ctx;
248         } codebookType;
249         
250         /* Context for parsing across buffer boundaries */
251         asn_struct_ctx_t _asn_ctx;
252 } CodebookConfig_t;
253
254 /* Implementation */
255 /* extern asn_TYPE_descriptor_t asn_DEF_portSelectionSamplingSize_57;   // (Use -fall-defs-global to expose) */
256 /* extern asn_TYPE_descriptor_t asn_DEF_phaseAlphabetSize_63;   // (Use -fall-defs-global to expose) */
257 /* extern asn_TYPE_descriptor_t asn_DEF_numberOfBeams_67;       // (Use -fall-defs-global to expose) */
258 extern asn_TYPE_descriptor_t asn_DEF_CodebookConfig;
259 extern asn_SEQUENCE_specifics_t asn_SPC_CodebookConfig_specs_1;
260 extern asn_TYPE_member_t asn_MBR_CodebookConfig_1[1];
261
262 #ifdef __cplusplus
263 }
264 #endif
265
266 #endif  /* _CodebookConfig_H_ */
267 #include <asn_internal.h>