[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / FeatureSetUplink.c
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 #include "FeatureSetUplink.h"
9
10 #include "SRS-TxSwitch.h"
11 #include "SRS-Resources.h"
12 #include "CSI-ReportFramework.h"
13 /*
14  * This type is implemented using NativeEnumerated,
15  * so here we adjust the DEF accordingly.
16  */
17 /*
18  * This type is implemented using NativeEnumerated,
19  * so here we adjust the DEF accordingly.
20  */
21 /*
22  * This type is implemented using NativeEnumerated,
23  * so here we adjust the DEF accordingly.
24  */
25 /*
26  * This type is implemented using NativeEnumerated,
27  * so here we adjust the DEF accordingly.
28  */
29 /*
30  * This type is implemented using NativeEnumerated,
31  * so here we adjust the DEF accordingly.
32  */
33 /*
34  * This type is implemented using NativeEnumerated,
35  * so here we adjust the DEF accordingly.
36  */
37 /*
38  * This type is implemented using NativeEnumerated,
39  * so here we adjust the DEF accordingly.
40  */
41 /*
42  * This type is implemented using NativeEnumerated,
43  * so here we adjust the DEF accordingly.
44  */
45 /*
46  * This type is implemented using NativeEnumerated,
47  * so here we adjust the DEF accordingly.
48  */
49 /*
50  * This type is implemented using NativeEnumerated,
51  * so here we adjust the DEF accordingly.
52  */
53 static int
54 memb_featureSetListPerUplinkCC_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
55                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
56         size_t size;
57         
58         if(!sptr) {
59                 ASN__CTFAIL(app_key, td, sptr,
60                         "%s: value not given (%s:%d)",
61                         td->name, __FILE__, __LINE__);
62                 return -1;
63         }
64         
65         /* Determine the number of elements */
66         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
67         
68         if((size >= 1 && size <= 32)) {
69                 /* Perform validation of the inner elements */
70                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
71         } else {
72                 ASN__CTFAIL(app_key, td, sptr,
73                         "%s: constraint failed (%s:%d)",
74                         td->name, __FILE__, __LINE__);
75                 return -1;
76         }
77 }
78
79 static asn_oer_constraints_t asn_OER_type_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = {
80         { 0, 0 },
81         -1      /* (SIZE(1..32)) */};
82 static asn_per_constraints_t asn_PER_type_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = {
83         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
84         { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
85         0, 0    /* No PER value map */
86 };
87 static asn_oer_constraints_t asn_OER_type_scalingFactor_constr_4 CC_NOTUSED = {
88         { 0, 0 },
89         -1};
90 static asn_per_constraints_t asn_PER_type_scalingFactor_constr_4 CC_NOTUSED = {
91         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
92         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
93         0, 0    /* No PER value map */
94 };
95 static asn_oer_constraints_t asn_OER_type_crossCarrierScheduling_OtherSCS_constr_8 CC_NOTUSED = {
96         { 0, 0 },
97         -1};
98 static asn_per_constraints_t asn_PER_type_crossCarrierScheduling_OtherSCS_constr_8 CC_NOTUSED = {
99         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
100         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
101         0, 0    /* No PER value map */
102 };
103 static asn_oer_constraints_t asn_OER_type_searchSpaceSharingCA_UL_constr_11 CC_NOTUSED = {
104         { 0, 0 },
105         -1};
106 static asn_per_constraints_t asn_PER_type_searchSpaceSharingCA_UL_constr_11 CC_NOTUSED = {
107         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
108         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
109         0, 0    /* No PER value map */
110 };
111 static asn_oer_constraints_t asn_OER_type_twoPUCCH_Group_constr_15 CC_NOTUSED = {
112         { 0, 0 },
113         -1};
114 static asn_per_constraints_t asn_PER_type_twoPUCCH_Group_constr_15 CC_NOTUSED = {
115         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
116         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
117         0, 0    /* No PER value map */
118 };
119 static asn_oer_constraints_t asn_OER_type_dynamicSwitchSUL_constr_17 CC_NOTUSED = {
120         { 0, 0 },
121         -1};
122 static asn_per_constraints_t asn_PER_type_dynamicSwitchSUL_constr_17 CC_NOTUSED = {
123         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
124         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
125         0, 0    /* No PER value map */
126 };
127 static asn_oer_constraints_t asn_OER_type_simultaneousTxSUL_NonSUL_constr_19 CC_NOTUSED = {
128         { 0, 0 },
129         -1};
130 static asn_per_constraints_t asn_PER_type_simultaneousTxSUL_NonSUL_constr_19 CC_NOTUSED = {
131         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
132         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
133         0, 0    /* No PER value map */
134 };
135 static asn_oer_constraints_t asn_OER_type_scs_15kHz_constr_22 CC_NOTUSED = {
136         { 0, 0 },
137         -1};
138 static asn_per_constraints_t asn_PER_type_scs_15kHz_constr_22 CC_NOTUSED = {
139         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
140         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
141         0, 0    /* No PER value map */
142 };
143 static asn_oer_constraints_t asn_OER_type_scs_30kHz_constr_26 CC_NOTUSED = {
144         { 0, 0 },
145         -1};
146 static asn_per_constraints_t asn_PER_type_scs_30kHz_constr_26 CC_NOTUSED = {
147         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
148         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
149         0, 0    /* No PER value map */
150 };
151 static asn_oer_constraints_t asn_OER_type_scs_60kHz_constr_30 CC_NOTUSED = {
152         { 0, 0 },
153         -1};
154 static asn_per_constraints_t asn_PER_type_scs_60kHz_constr_30 CC_NOTUSED = {
155         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
156         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
157         0, 0    /* No PER value map */
158 };
159 static asn_oer_constraints_t asn_OER_type_scs_120kHz_constr_34 CC_NOTUSED = {
160         { 0, 0 },
161         -1};
162 static asn_per_constraints_t asn_PER_type_scs_120kHz_constr_34 CC_NOTUSED = {
163         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
164         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
165         0, 0    /* No PER value map */
166 };
167 static asn_oer_constraints_t asn_OER_memb_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = {
168         { 0, 0 },
169         -1      /* (SIZE(1..32)) */};
170 static asn_per_constraints_t asn_PER_memb_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = {
171         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
172         { APC_CONSTRAINED,       5,  5,  1,  32 }       /* (SIZE(1..32)) */,
173         0, 0    /* No PER value map */
174 };
175 static asn_TYPE_member_t asn_MBR_featureSetListPerUplinkCC_2[] = {
176         { ATF_POINTER, 0, 0,
177                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
178                 0,
179                 &asn_DEF_FeatureSetUplinkPerCC_Id,
180                 0,
181                 { 0, 0, 0 },
182                 0, 0, /* No default value */
183                 ""
184                 },
185 };
186 static const ber_tlv_tag_t asn_DEF_featureSetListPerUplinkCC_tags_2[] = {
187         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
188         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
189 };
190 static asn_SET_OF_specifics_t asn_SPC_featureSetListPerUplinkCC_specs_2 = {
191         sizeof(struct FeatureSetUplink__featureSetListPerUplinkCC),
192         offsetof(struct FeatureSetUplink__featureSetListPerUplinkCC, _asn_ctx),
193         0,      /* XER encoding is XMLDelimitedItemList */
194 };
195 static /* Use -fall-defs-global to expose */
196 asn_TYPE_descriptor_t asn_DEF_featureSetListPerUplinkCC_2 = {
197         "featureSetListPerUplinkCC",
198         "featureSetListPerUplinkCC",
199         &asn_OP_SEQUENCE_OF,
200         asn_DEF_featureSetListPerUplinkCC_tags_2,
201         sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2)
202                 /sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2[0]) - 1, /* 1 */
203         asn_DEF_featureSetListPerUplinkCC_tags_2,       /* Same as above */
204         sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2)
205                 /sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2[0]), /* 2 */
206         { &asn_OER_type_featureSetListPerUplinkCC_constr_2, &asn_PER_type_featureSetListPerUplinkCC_constr_2, SEQUENCE_OF_constraint },
207         asn_MBR_featureSetListPerUplinkCC_2,
208         1,      /* Single element */
209         &asn_SPC_featureSetListPerUplinkCC_specs_2      /* Additional specs */
210 };
211
212 static const asn_INTEGER_enum_map_t asn_MAP_scalingFactor_value2enum_4[] = {
213         { 0,    4,      "f0p4" },
214         { 1,    5,      "f0p75" },
215         { 2,    4,      "f0p8" }
216 };
217 static const unsigned int asn_MAP_scalingFactor_enum2value_4[] = {
218         0,      /* f0p4(0) */
219         1,      /* f0p75(1) */
220         2       /* f0p8(2) */
221 };
222 static const asn_INTEGER_specifics_t asn_SPC_scalingFactor_specs_4 = {
223         asn_MAP_scalingFactor_value2enum_4,     /* "tag" => N; sorted by tag */
224         asn_MAP_scalingFactor_enum2value_4,     /* N => "tag"; sorted by N */
225         3,      /* Number of elements in the maps */
226         0,      /* Enumeration is not extensible */
227         1,      /* Strict enumeration */
228         0,      /* Native long size */
229         0
230 };
231 static const ber_tlv_tag_t asn_DEF_scalingFactor_tags_4[] = {
232         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
233         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
234 };
235 static /* Use -fall-defs-global to expose */
236 asn_TYPE_descriptor_t asn_DEF_scalingFactor_4 = {
237         "scalingFactor",
238         "scalingFactor",
239         &asn_OP_NativeEnumerated,
240         asn_DEF_scalingFactor_tags_4,
241         sizeof(asn_DEF_scalingFactor_tags_4)
242                 /sizeof(asn_DEF_scalingFactor_tags_4[0]) - 1, /* 1 */
243         asn_DEF_scalingFactor_tags_4,   /* Same as above */
244         sizeof(asn_DEF_scalingFactor_tags_4)
245                 /sizeof(asn_DEF_scalingFactor_tags_4[0]), /* 2 */
246         { &asn_OER_type_scalingFactor_constr_4, &asn_PER_type_scalingFactor_constr_4, NativeEnumerated_constraint },
247         0, 0,   /* Defined elsewhere */
248         &asn_SPC_scalingFactor_specs_4  /* Additional specs */
249 };
250
251 static const asn_INTEGER_enum_map_t asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_8[] = {
252         { 0,    9,      "supported" }
253 };
254 static const unsigned int asn_MAP_crossCarrierScheduling_OtherSCS_enum2value_8[] = {
255         0       /* supported(0) */
256 };
257 static const asn_INTEGER_specifics_t asn_SPC_crossCarrierScheduling_OtherSCS_specs_8 = {
258         asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_8,   /* "tag" => N; sorted by tag */
259         asn_MAP_crossCarrierScheduling_OtherSCS_enum2value_8,   /* N => "tag"; sorted by N */
260         1,      /* Number of elements in the maps */
261         0,      /* Enumeration is not extensible */
262         1,      /* Strict enumeration */
263         0,      /* Native long size */
264         0
265 };
266 static const ber_tlv_tag_t asn_DEF_crossCarrierScheduling_OtherSCS_tags_8[] = {
267         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
268         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
269 };
270 static /* Use -fall-defs-global to expose */
271 asn_TYPE_descriptor_t asn_DEF_crossCarrierScheduling_OtherSCS_8 = {
272         "crossCarrierScheduling-OtherSCS",
273         "crossCarrierScheduling-OtherSCS",
274         &asn_OP_NativeEnumerated,
275         asn_DEF_crossCarrierScheduling_OtherSCS_tags_8,
276         sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8)
277                 /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8[0]) - 1, /* 1 */
278         asn_DEF_crossCarrierScheduling_OtherSCS_tags_8, /* Same as above */
279         sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8)
280                 /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8[0]), /* 2 */
281         { &asn_OER_type_crossCarrierScheduling_OtherSCS_constr_8, &asn_PER_type_crossCarrierScheduling_OtherSCS_constr_8, NativeEnumerated_constraint },
282         0, 0,   /* Defined elsewhere */
283         &asn_SPC_crossCarrierScheduling_OtherSCS_specs_8        /* Additional specs */
284 };
285
286 static const asn_INTEGER_enum_map_t asn_MAP_searchSpaceSharingCA_UL_value2enum_11[] = {
287         { 0,    9,      "supported" }
288 };
289 static const unsigned int asn_MAP_searchSpaceSharingCA_UL_enum2value_11[] = {
290         0       /* supported(0) */
291 };
292 static const asn_INTEGER_specifics_t asn_SPC_searchSpaceSharingCA_UL_specs_11 = {
293         asn_MAP_searchSpaceSharingCA_UL_value2enum_11,  /* "tag" => N; sorted by tag */
294         asn_MAP_searchSpaceSharingCA_UL_enum2value_11,  /* N => "tag"; sorted by N */
295         1,      /* Number of elements in the maps */
296         0,      /* Enumeration is not extensible */
297         1,      /* Strict enumeration */
298         0,      /* Native long size */
299         0
300 };
301 static const ber_tlv_tag_t asn_DEF_searchSpaceSharingCA_UL_tags_11[] = {
302         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
303         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
304 };
305 static /* Use -fall-defs-global to expose */
306 asn_TYPE_descriptor_t asn_DEF_searchSpaceSharingCA_UL_11 = {
307         "searchSpaceSharingCA-UL",
308         "searchSpaceSharingCA-UL",
309         &asn_OP_NativeEnumerated,
310         asn_DEF_searchSpaceSharingCA_UL_tags_11,
311         sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11)
312                 /sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11[0]) - 1, /* 1 */
313         asn_DEF_searchSpaceSharingCA_UL_tags_11,        /* Same as above */
314         sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11)
315                 /sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11[0]), /* 2 */
316         { &asn_OER_type_searchSpaceSharingCA_UL_constr_11, &asn_PER_type_searchSpaceSharingCA_UL_constr_11, NativeEnumerated_constraint },
317         0, 0,   /* Defined elsewhere */
318         &asn_SPC_searchSpaceSharingCA_UL_specs_11       /* Additional specs */
319 };
320
321 static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_Group_value2enum_15[] = {
322         { 0,    9,      "supported" }
323 };
324 static const unsigned int asn_MAP_twoPUCCH_Group_enum2value_15[] = {
325         0       /* supported(0) */
326 };
327 static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_Group_specs_15 = {
328         asn_MAP_twoPUCCH_Group_value2enum_15,   /* "tag" => N; sorted by tag */
329         asn_MAP_twoPUCCH_Group_enum2value_15,   /* N => "tag"; sorted by N */
330         1,      /* Number of elements in the maps */
331         0,      /* Enumeration is not extensible */
332         1,      /* Strict enumeration */
333         0,      /* Native long size */
334         0
335 };
336 static const ber_tlv_tag_t asn_DEF_twoPUCCH_Group_tags_15[] = {
337         (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
338         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
339 };
340 static /* Use -fall-defs-global to expose */
341 asn_TYPE_descriptor_t asn_DEF_twoPUCCH_Group_15 = {
342         "twoPUCCH-Group",
343         "twoPUCCH-Group",
344         &asn_OP_NativeEnumerated,
345         asn_DEF_twoPUCCH_Group_tags_15,
346         sizeof(asn_DEF_twoPUCCH_Group_tags_15)
347                 /sizeof(asn_DEF_twoPUCCH_Group_tags_15[0]) - 1, /* 1 */
348         asn_DEF_twoPUCCH_Group_tags_15, /* Same as above */
349         sizeof(asn_DEF_twoPUCCH_Group_tags_15)
350                 /sizeof(asn_DEF_twoPUCCH_Group_tags_15[0]), /* 2 */
351         { &asn_OER_type_twoPUCCH_Group_constr_15, &asn_PER_type_twoPUCCH_Group_constr_15, NativeEnumerated_constraint },
352         0, 0,   /* Defined elsewhere */
353         &asn_SPC_twoPUCCH_Group_specs_15        /* Additional specs */
354 };
355
356 static const asn_INTEGER_enum_map_t asn_MAP_dynamicSwitchSUL_value2enum_17[] = {
357         { 0,    9,      "supported" }
358 };
359 static const unsigned int asn_MAP_dynamicSwitchSUL_enum2value_17[] = {
360         0       /* supported(0) */
361 };
362 static const asn_INTEGER_specifics_t asn_SPC_dynamicSwitchSUL_specs_17 = {
363         asn_MAP_dynamicSwitchSUL_value2enum_17, /* "tag" => N; sorted by tag */
364         asn_MAP_dynamicSwitchSUL_enum2value_17, /* N => "tag"; sorted by N */
365         1,      /* Number of elements in the maps */
366         0,      /* Enumeration is not extensible */
367         1,      /* Strict enumeration */
368         0,      /* Native long size */
369         0
370 };
371 static const ber_tlv_tag_t asn_DEF_dynamicSwitchSUL_tags_17[] = {
372         (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
373         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
374 };
375 static /* Use -fall-defs-global to expose */
376 asn_TYPE_descriptor_t asn_DEF_dynamicSwitchSUL_17 = {
377         "dynamicSwitchSUL",
378         "dynamicSwitchSUL",
379         &asn_OP_NativeEnumerated,
380         asn_DEF_dynamicSwitchSUL_tags_17,
381         sizeof(asn_DEF_dynamicSwitchSUL_tags_17)
382                 /sizeof(asn_DEF_dynamicSwitchSUL_tags_17[0]) - 1, /* 1 */
383         asn_DEF_dynamicSwitchSUL_tags_17,       /* Same as above */
384         sizeof(asn_DEF_dynamicSwitchSUL_tags_17)
385                 /sizeof(asn_DEF_dynamicSwitchSUL_tags_17[0]), /* 2 */
386         { &asn_OER_type_dynamicSwitchSUL_constr_17, &asn_PER_type_dynamicSwitchSUL_constr_17, NativeEnumerated_constraint },
387         0, 0,   /* Defined elsewhere */
388         &asn_SPC_dynamicSwitchSUL_specs_17      /* Additional specs */
389 };
390
391 static const asn_INTEGER_enum_map_t asn_MAP_simultaneousTxSUL_NonSUL_value2enum_19[] = {
392         { 0,    9,      "supported" }
393 };
394 static const unsigned int asn_MAP_simultaneousTxSUL_NonSUL_enum2value_19[] = {
395         0       /* supported(0) */
396 };
397 static const asn_INTEGER_specifics_t asn_SPC_simultaneousTxSUL_NonSUL_specs_19 = {
398         asn_MAP_simultaneousTxSUL_NonSUL_value2enum_19, /* "tag" => N; sorted by tag */
399         asn_MAP_simultaneousTxSUL_NonSUL_enum2value_19, /* N => "tag"; sorted by N */
400         1,      /* Number of elements in the maps */
401         0,      /* Enumeration is not extensible */
402         1,      /* Strict enumeration */
403         0,      /* Native long size */
404         0
405 };
406 static const ber_tlv_tag_t asn_DEF_simultaneousTxSUL_NonSUL_tags_19[] = {
407         (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
408         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
409 };
410 static /* Use -fall-defs-global to expose */
411 asn_TYPE_descriptor_t asn_DEF_simultaneousTxSUL_NonSUL_19 = {
412         "simultaneousTxSUL-NonSUL",
413         "simultaneousTxSUL-NonSUL",
414         &asn_OP_NativeEnumerated,
415         asn_DEF_simultaneousTxSUL_NonSUL_tags_19,
416         sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19)
417                 /sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19[0]) - 1, /* 1 */
418         asn_DEF_simultaneousTxSUL_NonSUL_tags_19,       /* Same as above */
419         sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19)
420                 /sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19[0]), /* 2 */
421         { &asn_OER_type_simultaneousTxSUL_NonSUL_constr_19, &asn_PER_type_simultaneousTxSUL_NonSUL_constr_19, NativeEnumerated_constraint },
422         0, 0,   /* Defined elsewhere */
423         &asn_SPC_simultaneousTxSUL_NonSUL_specs_19      /* Additional specs */
424 };
425
426 static const asn_INTEGER_enum_map_t asn_MAP_scs_15kHz_value2enum_22[] = {
427         { 0,    5,      "upto2" },
428         { 1,    5,      "upto4" },
429         { 2,    5,      "upto7" }
430 };
431 static const unsigned int asn_MAP_scs_15kHz_enum2value_22[] = {
432         0,      /* upto2(0) */
433         1,      /* upto4(1) */
434         2       /* upto7(2) */
435 };
436 static const asn_INTEGER_specifics_t asn_SPC_scs_15kHz_specs_22 = {
437         asn_MAP_scs_15kHz_value2enum_22,        /* "tag" => N; sorted by tag */
438         asn_MAP_scs_15kHz_enum2value_22,        /* N => "tag"; sorted by N */
439         3,      /* Number of elements in the maps */
440         0,      /* Enumeration is not extensible */
441         1,      /* Strict enumeration */
442         0,      /* Native long size */
443         0
444 };
445 static const ber_tlv_tag_t asn_DEF_scs_15kHz_tags_22[] = {
446         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
447         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
448 };
449 static /* Use -fall-defs-global to expose */
450 asn_TYPE_descriptor_t asn_DEF_scs_15kHz_22 = {
451         "scs-15kHz",
452         "scs-15kHz",
453         &asn_OP_NativeEnumerated,
454         asn_DEF_scs_15kHz_tags_22,
455         sizeof(asn_DEF_scs_15kHz_tags_22)
456                 /sizeof(asn_DEF_scs_15kHz_tags_22[0]) - 1, /* 1 */
457         asn_DEF_scs_15kHz_tags_22,      /* Same as above */
458         sizeof(asn_DEF_scs_15kHz_tags_22)
459                 /sizeof(asn_DEF_scs_15kHz_tags_22[0]), /* 2 */
460         { &asn_OER_type_scs_15kHz_constr_22, &asn_PER_type_scs_15kHz_constr_22, NativeEnumerated_constraint },
461         0, 0,   /* Defined elsewhere */
462         &asn_SPC_scs_15kHz_specs_22     /* Additional specs */
463 };
464
465 static const asn_INTEGER_enum_map_t asn_MAP_scs_30kHz_value2enum_26[] = {
466         { 0,    5,      "upto2" },
467         { 1,    5,      "upto4" },
468         { 2,    5,      "upto7" }
469 };
470 static const unsigned int asn_MAP_scs_30kHz_enum2value_26[] = {
471         0,      /* upto2(0) */
472         1,      /* upto4(1) */
473         2       /* upto7(2) */
474 };
475 static const asn_INTEGER_specifics_t asn_SPC_scs_30kHz_specs_26 = {
476         asn_MAP_scs_30kHz_value2enum_26,        /* "tag" => N; sorted by tag */
477         asn_MAP_scs_30kHz_enum2value_26,        /* N => "tag"; sorted by N */
478         3,      /* Number of elements in the maps */
479         0,      /* Enumeration is not extensible */
480         1,      /* Strict enumeration */
481         0,      /* Native long size */
482         0
483 };
484 static const ber_tlv_tag_t asn_DEF_scs_30kHz_tags_26[] = {
485         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
486         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
487 };
488 static /* Use -fall-defs-global to expose */
489 asn_TYPE_descriptor_t asn_DEF_scs_30kHz_26 = {
490         "scs-30kHz",
491         "scs-30kHz",
492         &asn_OP_NativeEnumerated,
493         asn_DEF_scs_30kHz_tags_26,
494         sizeof(asn_DEF_scs_30kHz_tags_26)
495                 /sizeof(asn_DEF_scs_30kHz_tags_26[0]) - 1, /* 1 */
496         asn_DEF_scs_30kHz_tags_26,      /* Same as above */
497         sizeof(asn_DEF_scs_30kHz_tags_26)
498                 /sizeof(asn_DEF_scs_30kHz_tags_26[0]), /* 2 */
499         { &asn_OER_type_scs_30kHz_constr_26, &asn_PER_type_scs_30kHz_constr_26, NativeEnumerated_constraint },
500         0, 0,   /* Defined elsewhere */
501         &asn_SPC_scs_30kHz_specs_26     /* Additional specs */
502 };
503
504 static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_30[] = {
505         { 0,    5,      "upto2" },
506         { 1,    5,      "upto4" },
507         { 2,    5,      "upto7" }
508 };
509 static const unsigned int asn_MAP_scs_60kHz_enum2value_30[] = {
510         0,      /* upto2(0) */
511         1,      /* upto4(1) */
512         2       /* upto7(2) */
513 };
514 static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_30 = {
515         asn_MAP_scs_60kHz_value2enum_30,        /* "tag" => N; sorted by tag */
516         asn_MAP_scs_60kHz_enum2value_30,        /* N => "tag"; sorted by N */
517         3,      /* Number of elements in the maps */
518         0,      /* Enumeration is not extensible */
519         1,      /* Strict enumeration */
520         0,      /* Native long size */
521         0
522 };
523 static const ber_tlv_tag_t asn_DEF_scs_60kHz_tags_30[] = {
524         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
525         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
526 };
527 static /* Use -fall-defs-global to expose */
528 asn_TYPE_descriptor_t asn_DEF_scs_60kHz_30 = {
529         "scs-60kHz",
530         "scs-60kHz",
531         &asn_OP_NativeEnumerated,
532         asn_DEF_scs_60kHz_tags_30,
533         sizeof(asn_DEF_scs_60kHz_tags_30)
534                 /sizeof(asn_DEF_scs_60kHz_tags_30[0]) - 1, /* 1 */
535         asn_DEF_scs_60kHz_tags_30,      /* Same as above */
536         sizeof(asn_DEF_scs_60kHz_tags_30)
537                 /sizeof(asn_DEF_scs_60kHz_tags_30[0]), /* 2 */
538         { &asn_OER_type_scs_60kHz_constr_30, &asn_PER_type_scs_60kHz_constr_30, NativeEnumerated_constraint },
539         0, 0,   /* Defined elsewhere */
540         &asn_SPC_scs_60kHz_specs_30     /* Additional specs */
541 };
542
543 static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_34[] = {
544         { 0,    5,      "upto2" },
545         { 1,    5,      "upto4" },
546         { 2,    5,      "upto7" }
547 };
548 static const unsigned int asn_MAP_scs_120kHz_enum2value_34[] = {
549         0,      /* upto2(0) */
550         1,      /* upto4(1) */
551         2       /* upto7(2) */
552 };
553 static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_34 = {
554         asn_MAP_scs_120kHz_value2enum_34,       /* "tag" => N; sorted by tag */
555         asn_MAP_scs_120kHz_enum2value_34,       /* N => "tag"; sorted by N */
556         3,      /* Number of elements in the maps */
557         0,      /* Enumeration is not extensible */
558         1,      /* Strict enumeration */
559         0,      /* Native long size */
560         0
561 };
562 static const ber_tlv_tag_t asn_DEF_scs_120kHz_tags_34[] = {
563         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
564         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
565 };
566 static /* Use -fall-defs-global to expose */
567 asn_TYPE_descriptor_t asn_DEF_scs_120kHz_34 = {
568         "scs-120kHz",
569         "scs-120kHz",
570         &asn_OP_NativeEnumerated,
571         asn_DEF_scs_120kHz_tags_34,
572         sizeof(asn_DEF_scs_120kHz_tags_34)
573                 /sizeof(asn_DEF_scs_120kHz_tags_34[0]) - 1, /* 1 */
574         asn_DEF_scs_120kHz_tags_34,     /* Same as above */
575         sizeof(asn_DEF_scs_120kHz_tags_34)
576                 /sizeof(asn_DEF_scs_120kHz_tags_34[0]), /* 2 */
577         { &asn_OER_type_scs_120kHz_constr_34, &asn_PER_type_scs_120kHz_constr_34, NativeEnumerated_constraint },
578         0, 0,   /* Defined elsewhere */
579         &asn_SPC_scs_120kHz_specs_34    /* Additional specs */
580 };
581
582 static asn_TYPE_member_t asn_MBR_pusch_DifferentTB_PerSlot_21[] = {
583         { ATF_POINTER, 4, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_15kHz),
584                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
585                 -1,     /* IMPLICIT tag at current level */
586                 &asn_DEF_scs_15kHz_22,
587                 0,
588                 { 0, 0, 0 },
589                 0, 0, /* No default value */
590                 "scs-15kHz"
591                 },
592         { ATF_POINTER, 3, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_30kHz),
593                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
594                 -1,     /* IMPLICIT tag at current level */
595                 &asn_DEF_scs_30kHz_26,
596                 0,
597                 { 0, 0, 0 },
598                 0, 0, /* No default value */
599                 "scs-30kHz"
600                 },
601         { ATF_POINTER, 2, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_60kHz),
602                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
603                 -1,     /* IMPLICIT tag at current level */
604                 &asn_DEF_scs_60kHz_30,
605                 0,
606                 { 0, 0, 0 },
607                 0, 0, /* No default value */
608                 "scs-60kHz"
609                 },
610         { ATF_POINTER, 1, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_120kHz),
611                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
612                 -1,     /* IMPLICIT tag at current level */
613                 &asn_DEF_scs_120kHz_34,
614                 0,
615                 { 0, 0, 0 },
616                 0, 0, /* No default value */
617                 "scs-120kHz"
618                 },
619 };
620 static const int asn_MAP_pusch_DifferentTB_PerSlot_oms_21[] = { 0, 1, 2, 3 };
621 static const ber_tlv_tag_t asn_DEF_pusch_DifferentTB_PerSlot_tags_21[] = {
622         (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
623         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
624 };
625 static const asn_TYPE_tag2member_t asn_MAP_pusch_DifferentTB_PerSlot_tag2el_21[] = {
626     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */
627     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */
628     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */
629     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */
630 };
631 static asn_SEQUENCE_specifics_t asn_SPC_pusch_DifferentTB_PerSlot_specs_21 = {
632         sizeof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot),
633         offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, _asn_ctx),
634         asn_MAP_pusch_DifferentTB_PerSlot_tag2el_21,
635         4,      /* Count of tags in the map */
636         asn_MAP_pusch_DifferentTB_PerSlot_oms_21,       /* Optional members */
637         4, 0,   /* Root/Additions */
638         -1,     /* First extension addition */
639 };
640 static /* Use -fall-defs-global to expose */
641 asn_TYPE_descriptor_t asn_DEF_pusch_DifferentTB_PerSlot_21 = {
642         "pusch-DifferentTB-PerSlot",
643         "pusch-DifferentTB-PerSlot",
644         &asn_OP_SEQUENCE,
645         asn_DEF_pusch_DifferentTB_PerSlot_tags_21,
646         sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21)
647                 /sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21[0]) - 1, /* 1 */
648         asn_DEF_pusch_DifferentTB_PerSlot_tags_21,      /* Same as above */
649         sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21)
650                 /sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21[0]), /* 2 */
651         { 0, 0, SEQUENCE_constraint },
652         asn_MBR_pusch_DifferentTB_PerSlot_21,
653         4,      /* Elements count */
654         &asn_SPC_pusch_DifferentTB_PerSlot_specs_21     /* Additional specs */
655 };
656
657 asn_TYPE_member_t asn_MBR_FeatureSetUplink_1[] = {
658         { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplink, featureSetListPerUplinkCC),
659                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
660                 0,
661                 &asn_DEF_featureSetListPerUplinkCC_2,
662                 0,
663                 { &asn_OER_memb_featureSetListPerUplinkCC_constr_2, &asn_PER_memb_featureSetListPerUplinkCC_constr_2,  memb_featureSetListPerUplinkCC_constraint_1 },
664                 0, 0, /* No default value */
665                 "featureSetListPerUplinkCC"
666                 },
667         { ATF_POINTER, 11, offsetof(struct FeatureSetUplink, scalingFactor),
668                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
669                 -1,     /* IMPLICIT tag at current level */
670                 &asn_DEF_scalingFactor_4,
671                 0,
672                 { 0, 0, 0 },
673                 0, 0, /* No default value */
674                 "scalingFactor"
675                 },
676         { ATF_POINTER, 10, offsetof(struct FeatureSetUplink, crossCarrierScheduling_OtherSCS),
677                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
678                 -1,     /* IMPLICIT tag at current level */
679                 &asn_DEF_crossCarrierScheduling_OtherSCS_8,
680                 0,
681                 { 0, 0, 0 },
682                 0, 0, /* No default value */
683                 "crossCarrierScheduling-OtherSCS"
684                 },
685         { ATF_POINTER, 9, offsetof(struct FeatureSetUplink, intraBandFreqSeparationUL),
686                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
687                 -1,     /* IMPLICIT tag at current level */
688                 &asn_DEF_FreqSeparationClass,
689                 0,
690                 { 0, 0, 0 },
691                 0, 0, /* No default value */
692                 "intraBandFreqSeparationUL"
693                 },
694         { ATF_POINTER, 8, offsetof(struct FeatureSetUplink, searchSpaceSharingCA_UL),
695                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
696                 -1,     /* IMPLICIT tag at current level */
697                 &asn_DEF_searchSpaceSharingCA_UL_11,
698                 0,
699                 { 0, 0, 0 },
700                 0, 0, /* No default value */
701                 "searchSpaceSharingCA-UL"
702                 },
703         { ATF_POINTER, 7, offsetof(struct FeatureSetUplink, srs_TxSwitch),
704                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
705                 -1,     /* IMPLICIT tag at current level */
706                 &asn_DEF_SRS_TxSwitch,
707                 0,
708                 { 0, 0, 0 },
709                 0, 0, /* No default value */
710                 "srs-TxSwitch"
711                 },
712         { ATF_POINTER, 6, offsetof(struct FeatureSetUplink, supportedSRS_Resources),
713                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
714                 -1,     /* IMPLICIT tag at current level */
715                 &asn_DEF_SRS_Resources,
716                 0,
717                 { 0, 0, 0 },
718                 0, 0, /* No default value */
719                 "supportedSRS-Resources"
720                 },
721         { ATF_POINTER, 5, offsetof(struct FeatureSetUplink, twoPUCCH_Group),
722                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
723                 -1,     /* IMPLICIT tag at current level */
724                 &asn_DEF_twoPUCCH_Group_15,
725                 0,
726                 { 0, 0, 0 },
727                 0, 0, /* No default value */
728                 "twoPUCCH-Group"
729                 },
730         { ATF_POINTER, 4, offsetof(struct FeatureSetUplink, dynamicSwitchSUL),
731                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
732                 -1,     /* IMPLICIT tag at current level */
733                 &asn_DEF_dynamicSwitchSUL_17,
734                 0,
735                 { 0, 0, 0 },
736                 0, 0, /* No default value */
737                 "dynamicSwitchSUL"
738                 },
739         { ATF_POINTER, 3, offsetof(struct FeatureSetUplink, simultaneousTxSUL_NonSUL),
740                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
741                 -1,     /* IMPLICIT tag at current level */
742                 &asn_DEF_simultaneousTxSUL_NonSUL_19,
743                 0,
744                 { 0, 0, 0 },
745                 0, 0, /* No default value */
746                 "simultaneousTxSUL-NonSUL"
747                 },
748         { ATF_POINTER, 2, offsetof(struct FeatureSetUplink, pusch_DifferentTB_PerSlot),
749                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
750                 0,
751                 &asn_DEF_pusch_DifferentTB_PerSlot_21,
752                 0,
753                 { 0, 0, 0 },
754                 0, 0, /* No default value */
755                 "pusch-DifferentTB-PerSlot"
756                 },
757         { ATF_POINTER, 1, offsetof(struct FeatureSetUplink, csi_ReportFramework),
758                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
759                 -1,     /* IMPLICIT tag at current level */
760                 &asn_DEF_CSI_ReportFramework,
761                 0,
762                 { 0, 0, 0 },
763                 0, 0, /* No default value */
764                 "csi-ReportFramework"
765                 },
766 };
767 static const int asn_MAP_FeatureSetUplink_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
768 static const ber_tlv_tag_t asn_DEF_FeatureSetUplink_tags_1[] = {
769         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
770 };
771 static const asn_TYPE_tag2member_t asn_MAP_FeatureSetUplink_tag2el_1[] = {
772     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* featureSetListPerUplinkCC */
773     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scalingFactor */
774     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* crossCarrierScheduling-OtherSCS */
775     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* intraBandFreqSeparationUL */
776     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* searchSpaceSharingCA-UL */
777     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* srs-TxSwitch */
778     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* supportedSRS-Resources */
779     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* twoPUCCH-Group */
780     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* dynamicSwitchSUL */
781     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* simultaneousTxSUL-NonSUL */
782     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pusch-DifferentTB-PerSlot */
783     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* csi-ReportFramework */
784 };
785 asn_SEQUENCE_specifics_t asn_SPC_FeatureSetUplink_specs_1 = {
786         sizeof(struct FeatureSetUplink),
787         offsetof(struct FeatureSetUplink, _asn_ctx),
788         asn_MAP_FeatureSetUplink_tag2el_1,
789         12,     /* Count of tags in the map */
790         asn_MAP_FeatureSetUplink_oms_1, /* Optional members */
791         11, 0,  /* Root/Additions */
792         -1,     /* First extension addition */
793 };
794 asn_TYPE_descriptor_t asn_DEF_FeatureSetUplink = {
795         "FeatureSetUplink",
796         "FeatureSetUplink",
797         &asn_OP_SEQUENCE,
798         asn_DEF_FeatureSetUplink_tags_1,
799         sizeof(asn_DEF_FeatureSetUplink_tags_1)
800                 /sizeof(asn_DEF_FeatureSetUplink_tags_1[0]), /* 1 */
801         asn_DEF_FeatureSetUplink_tags_1,        /* Same as above */
802         sizeof(asn_DEF_FeatureSetUplink_tags_1)
803                 /sizeof(asn_DEF_FeatureSetUplink_tags_1[0]), /* 1 */
804         { 0, 0, SEQUENCE_constraint },
805         asn_MBR_FeatureSetUplink_1,
806         12,     /* Elements count */
807         &asn_SPC_FeatureSetUplink_specs_1       /* Additional specs */
808 };
809