[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / PUSCH-Config.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 "PUSCH-Config.h"
9
10 #include "PUSCH-PowerControl.h"
11 #include "DMRS-UplinkConfig.h"
12 #include "PUSCH-TimeDomainResourceAllocationList.h"
13 #include "UCI-OnPUSCH.h"
14 /*
15  * This type is implemented using NativeEnumerated,
16  * so here we adjust the DEF accordingly.
17  */
18 /*
19  * This type is implemented using NativeEnumerated,
20  * so here we adjust the DEF accordingly.
21  */
22 static int
23 memb_NativeInteger_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr,
24                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
25         long value;
26         
27         if(!sptr) {
28                 ASN__CTFAIL(app_key, td, sptr,
29                         "%s: value not given (%s:%d)",
30                         td->name, __FILE__, __LINE__);
31                 return -1;
32         }
33         
34         value = *(const long *)sptr;
35         
36         if((value >= 1 && value <= 274)) {
37                 /* Constraint check succeeded */
38                 return 0;
39         } else {
40                 ASN__CTFAIL(app_key, td, sptr,
41                         "%s: constraint failed (%s:%d)",
42                         td->name, __FILE__, __LINE__);
43                 return -1;
44         }
45 }
46
47 /*
48  * This type is implemented using NativeEnumerated,
49  * so here we adjust the DEF accordingly.
50  */
51 /*
52  * This type is implemented using NativeEnumerated,
53  * so here we adjust the DEF accordingly.
54  */
55 /*
56  * This type is implemented using NativeEnumerated,
57  * so here we adjust the DEF accordingly.
58  */
59 /*
60  * This type is implemented using NativeEnumerated,
61  * so here we adjust the DEF accordingly.
62  */
63 /*
64  * This type is implemented using NativeEnumerated,
65  * so here we adjust the DEF accordingly.
66  */
67 /*
68  * This type is implemented using NativeEnumerated,
69  * so here we adjust the DEF accordingly.
70  */
71 /*
72  * This type is implemented using NativeEnumerated,
73  * so here we adjust the DEF accordingly.
74  */
75 /*
76  * This type is implemented using NativeEnumerated,
77  * so here we adjust the DEF accordingly.
78  */
79 static int
80 memb_dataScramblingIdentityPUSCH_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
81                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
82         long value;
83         
84         if(!sptr) {
85                 ASN__CTFAIL(app_key, td, sptr,
86                         "%s: value not given (%s:%d)",
87                         td->name, __FILE__, __LINE__);
88                 return -1;
89         }
90         
91         value = *(const long *)sptr;
92         
93         if((value >= 0 && value <= 1023)) {
94                 /* Constraint check succeeded */
95                 return 0;
96         } else {
97                 ASN__CTFAIL(app_key, td, sptr,
98                         "%s: constraint failed (%s:%d)",
99                         td->name, __FILE__, __LINE__);
100                 return -1;
101         }
102 }
103
104 static int
105 memb_frequencyHoppingOffsetLists_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
106                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
107         size_t size;
108         
109         if(!sptr) {
110                 ASN__CTFAIL(app_key, td, sptr,
111                         "%s: value not given (%s:%d)",
112                         td->name, __FILE__, __LINE__);
113                 return -1;
114         }
115         
116         /* Determine the number of elements */
117         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
118         
119         if((size >= 1 && size <= 4)) {
120                 /* Perform validation of the inner elements */
121                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
122         } else {
123                 ASN__CTFAIL(app_key, td, sptr,
124                         "%s: constraint failed (%s:%d)",
125                         td->name, __FILE__, __LINE__);
126                 return -1;
127         }
128 }
129
130 static int
131 memb_maxRank_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
132                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
133         long value;
134         
135         if(!sptr) {
136                 ASN__CTFAIL(app_key, td, sptr,
137                         "%s: value not given (%s:%d)",
138                         td->name, __FILE__, __LINE__);
139                 return -1;
140         }
141         
142         value = *(const long *)sptr;
143         
144         if((value >= 1 && value <= 4)) {
145                 /* Constraint check succeeded */
146                 return 0;
147         } else {
148                 ASN__CTFAIL(app_key, td, sptr,
149                         "%s: constraint failed (%s:%d)",
150                         td->name, __FILE__, __LINE__);
151                 return -1;
152         }
153 }
154
155 static asn_oer_constraints_t asn_OER_type_txConfig_constr_3 CC_NOTUSED = {
156         { 0, 0 },
157         -1};
158 static asn_per_constraints_t asn_PER_type_txConfig_constr_3 CC_NOTUSED = {
159         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
160         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
161         0, 0    /* No PER value map */
162 };
163 static asn_oer_constraints_t asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6 CC_NOTUSED = {
164         { 0, 0 },
165         -1};
166 static asn_per_constraints_t asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6 CC_NOTUSED = {
167         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
168         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
169         0, 0    /* No PER value map */
170 };
171 static asn_oer_constraints_t asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9 CC_NOTUSED = {
172         { 0, 0 },
173         -1};
174 static asn_per_constraints_t asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9 CC_NOTUSED = {
175         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
176         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
177         0, 0    /* No PER value map */
178 };
179 static asn_oer_constraints_t asn_OER_type_frequencyHopping_constr_13 CC_NOTUSED = {
180         { 0, 0 },
181         -1};
182 static asn_per_constraints_t asn_PER_type_frequencyHopping_constr_13 CC_NOTUSED = {
183         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
184         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
185         0, 0    /* No PER value map */
186 };
187 static asn_oer_constraints_t asn_OER_memb_Member_constr_17 CC_NOTUSED = {
188         { 2, 1 }        /* (1..274) */,
189         -1};
190 static asn_per_constraints_t asn_PER_memb_Member_constr_17 CC_NOTUSED = {
191         { APC_CONSTRAINED,       9,  9,  1,  274 }      /* (1..274) */,
192         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
193         0, 0    /* No PER value map */
194 };
195 static asn_oer_constraints_t asn_OER_type_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = {
196         { 0, 0 },
197         -1      /* (SIZE(1..4)) */};
198 static asn_per_constraints_t asn_PER_type_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = {
199         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
200         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
201         0, 0    /* No PER value map */
202 };
203 static asn_oer_constraints_t asn_OER_type_resourceAllocation_constr_18 CC_NOTUSED = {
204         { 0, 0 },
205         -1};
206 static asn_per_constraints_t asn_PER_type_resourceAllocation_constr_18 CC_NOTUSED = {
207         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
208         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
209         0, 0    /* No PER value map */
210 };
211 static asn_oer_constraints_t asn_OER_type_pusch_TimeDomainAllocationList_constr_22 CC_NOTUSED = {
212         { 0, 0 },
213         -1};
214 static asn_per_constraints_t asn_PER_type_pusch_TimeDomainAllocationList_constr_22 CC_NOTUSED = {
215         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
216         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
217         0, 0    /* No PER value map */
218 };
219 static asn_oer_constraints_t asn_OER_type_pusch_AggregationFactor_constr_25 CC_NOTUSED = {
220         { 0, 0 },
221         -1};
222 static asn_per_constraints_t asn_PER_type_pusch_AggregationFactor_constr_25 CC_NOTUSED = {
223         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
224         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
225         0, 0    /* No PER value map */
226 };
227 static asn_oer_constraints_t asn_OER_type_mcs_Table_constr_29 CC_NOTUSED = {
228         { 0, 0 },
229         -1};
230 static asn_per_constraints_t asn_PER_type_mcs_Table_constr_29 CC_NOTUSED = {
231         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
232         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
233         0, 0    /* No PER value map */
234 };
235 static asn_oer_constraints_t asn_OER_type_mcs_TableTransformPrecoder_constr_32 CC_NOTUSED = {
236         { 0, 0 },
237         -1};
238 static asn_per_constraints_t asn_PER_type_mcs_TableTransformPrecoder_constr_32 CC_NOTUSED = {
239         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
240         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
241         0, 0    /* No PER value map */
242 };
243 static asn_oer_constraints_t asn_OER_type_transformPrecoder_constr_35 CC_NOTUSED = {
244         { 0, 0 },
245         -1};
246 static asn_per_constraints_t asn_PER_type_transformPrecoder_constr_35 CC_NOTUSED = {
247         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
248         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
249         0, 0    /* No PER value map */
250 };
251 static asn_oer_constraints_t asn_OER_type_codebookSubset_constr_38 CC_NOTUSED = {
252         { 0, 0 },
253         -1};
254 static asn_per_constraints_t asn_PER_type_codebookSubset_constr_38 CC_NOTUSED = {
255         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
256         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
257         0, 0    /* No PER value map */
258 };
259 static asn_oer_constraints_t asn_OER_type_rbg_Size_constr_43 CC_NOTUSED = {
260         { 0, 0 },
261         -1};
262 static asn_per_constraints_t asn_PER_type_rbg_Size_constr_43 CC_NOTUSED = {
263         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
264         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
265         0, 0    /* No PER value map */
266 };
267 static asn_oer_constraints_t asn_OER_type_uci_OnPUSCH_constr_45 CC_NOTUSED = {
268         { 0, 0 },
269         -1};
270 static asn_per_constraints_t asn_PER_type_uci_OnPUSCH_constr_45 CC_NOTUSED = {
271         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
272         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
273         0, 0    /* No PER value map */
274 };
275 static asn_oer_constraints_t asn_OER_type_tp_pi2BPSK_constr_48 CC_NOTUSED = {
276         { 0, 0 },
277         -1};
278 static asn_per_constraints_t asn_PER_type_tp_pi2BPSK_constr_48 CC_NOTUSED = {
279         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
280         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
281         0, 0    /* No PER value map */
282 };
283 static asn_oer_constraints_t asn_OER_memb_dataScramblingIdentityPUSCH_constr_2 CC_NOTUSED = {
284         { 2, 1 }        /* (0..1023) */,
285         -1};
286 static asn_per_constraints_t asn_PER_memb_dataScramblingIdentityPUSCH_constr_2 CC_NOTUSED = {
287         { APC_CONSTRAINED,       10,  10,  0,  1023 }   /* (0..1023) */,
288         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
289         0, 0    /* No PER value map */
290 };
291 static asn_oer_constraints_t asn_OER_memb_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = {
292         { 0, 0 },
293         -1      /* (SIZE(1..4)) */};
294 static asn_per_constraints_t asn_PER_memb_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = {
295         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
296         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
297         0, 0    /* No PER value map */
298 };
299 static asn_oer_constraints_t asn_OER_memb_maxRank_constr_42 CC_NOTUSED = {
300         { 1, 1 }        /* (1..4) */,
301         -1};
302 static asn_per_constraints_t asn_PER_memb_maxRank_constr_42 CC_NOTUSED = {
303         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (1..4) */,
304         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
305         0, 0    /* No PER value map */
306 };
307 static const asn_INTEGER_enum_map_t asn_MAP_txConfig_value2enum_3[] = {
308         { 0,    8,      "codebook" },
309         { 1,    11,     "nonCodebook" }
310 };
311 static const unsigned int asn_MAP_txConfig_enum2value_3[] = {
312         0,      /* codebook(0) */
313         1       /* nonCodebook(1) */
314 };
315 static const asn_INTEGER_specifics_t asn_SPC_txConfig_specs_3 = {
316         asn_MAP_txConfig_value2enum_3,  /* "tag" => N; sorted by tag */
317         asn_MAP_txConfig_enum2value_3,  /* N => "tag"; sorted by N */
318         2,      /* Number of elements in the maps */
319         0,      /* Enumeration is not extensible */
320         1,      /* Strict enumeration */
321         0,      /* Native long size */
322         0
323 };
324 static const ber_tlv_tag_t asn_DEF_txConfig_tags_3[] = {
325         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
326         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
327 };
328 static /* Use -fall-defs-global to expose */
329 asn_TYPE_descriptor_t asn_DEF_txConfig_3 = {
330         "txConfig",
331         "txConfig",
332         &asn_OP_NativeEnumerated,
333         asn_DEF_txConfig_tags_3,
334         sizeof(asn_DEF_txConfig_tags_3)
335                 /sizeof(asn_DEF_txConfig_tags_3[0]) - 1, /* 1 */
336         asn_DEF_txConfig_tags_3,        /* Same as above */
337         sizeof(asn_DEF_txConfig_tags_3)
338                 /sizeof(asn_DEF_txConfig_tags_3[0]), /* 2 */
339         { &asn_OER_type_txConfig_constr_3, &asn_PER_type_txConfig_constr_3, NativeEnumerated_constraint },
340         0, 0,   /* Defined elsewhere */
341         &asn_SPC_txConfig_specs_3       /* Additional specs */
342 };
343
344 static asn_TYPE_member_t asn_MBR_dmrs_UplinkForPUSCH_MappingTypeA_6[] = {
345         { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, choice.release),
346                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
347                 -1,     /* IMPLICIT tag at current level */
348                 &asn_DEF_NULL,
349                 0,
350                 { 0, 0, 0 },
351                 0, 0, /* No default value */
352                 "release"
353                 },
354         { ATF_POINTER, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, choice.setup),
355                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
356                 -1,     /* IMPLICIT tag at current level */
357                 &asn_DEF_DMRS_UplinkConfig,
358                 0,
359                 { 0, 0, 0 },
360                 0, 0, /* No default value */
361                 "setup"
362                 },
363 };
364 static const asn_TYPE_tag2member_t asn_MAP_dmrs_UplinkForPUSCH_MappingTypeA_tag2el_6[] = {
365     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
366     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
367 };
368 static asn_CHOICE_specifics_t asn_SPC_dmrs_UplinkForPUSCH_MappingTypeA_specs_6 = {
369         sizeof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA),
370         offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, _asn_ctx),
371         offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, present),
372         sizeof(((struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA *)0)->present),
373         asn_MAP_dmrs_UplinkForPUSCH_MappingTypeA_tag2el_6,
374         2,      /* Count of tags in the map */
375         0, 0,
376         -1      /* Extensions start */
377 };
378 static /* Use -fall-defs-global to expose */
379 asn_TYPE_descriptor_t asn_DEF_dmrs_UplinkForPUSCH_MappingTypeA_6 = {
380         "dmrs-UplinkForPUSCH-MappingTypeA",
381         "dmrs-UplinkForPUSCH-MappingTypeA",
382         &asn_OP_CHOICE,
383         0,      /* No effective tags (pointer) */
384         0,      /* No effective tags (count) */
385         0,      /* No tags (pointer) */
386         0,      /* No tags (count) */
387         { &asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6, &asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6, CHOICE_constraint },
388         asn_MBR_dmrs_UplinkForPUSCH_MappingTypeA_6,
389         2,      /* Elements count */
390         &asn_SPC_dmrs_UplinkForPUSCH_MappingTypeA_specs_6       /* Additional specs */
391 };
392
393 static asn_TYPE_member_t asn_MBR_dmrs_UplinkForPUSCH_MappingTypeB_9[] = {
394         { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, choice.release),
395                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
396                 -1,     /* IMPLICIT tag at current level */
397                 &asn_DEF_NULL,
398                 0,
399                 { 0, 0, 0 },
400                 0, 0, /* No default value */
401                 "release"
402                 },
403         { ATF_POINTER, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, choice.setup),
404                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
405                 -1,     /* IMPLICIT tag at current level */
406                 &asn_DEF_DMRS_UplinkConfig,
407                 0,
408                 { 0, 0, 0 },
409                 0, 0, /* No default value */
410                 "setup"
411                 },
412 };
413 static const asn_TYPE_tag2member_t asn_MAP_dmrs_UplinkForPUSCH_MappingTypeB_tag2el_9[] = {
414     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
415     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
416 };
417 static asn_CHOICE_specifics_t asn_SPC_dmrs_UplinkForPUSCH_MappingTypeB_specs_9 = {
418         sizeof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB),
419         offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, _asn_ctx),
420         offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, present),
421         sizeof(((struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB *)0)->present),
422         asn_MAP_dmrs_UplinkForPUSCH_MappingTypeB_tag2el_9,
423         2,      /* Count of tags in the map */
424         0, 0,
425         -1      /* Extensions start */
426 };
427 static /* Use -fall-defs-global to expose */
428 asn_TYPE_descriptor_t asn_DEF_dmrs_UplinkForPUSCH_MappingTypeB_9 = {
429         "dmrs-UplinkForPUSCH-MappingTypeB",
430         "dmrs-UplinkForPUSCH-MappingTypeB",
431         &asn_OP_CHOICE,
432         0,      /* No effective tags (pointer) */
433         0,      /* No effective tags (count) */
434         0,      /* No tags (pointer) */
435         0,      /* No tags (count) */
436         { &asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9, &asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9, CHOICE_constraint },
437         asn_MBR_dmrs_UplinkForPUSCH_MappingTypeB_9,
438         2,      /* Elements count */
439         &asn_SPC_dmrs_UplinkForPUSCH_MappingTypeB_specs_9       /* Additional specs */
440 };
441
442 static const asn_INTEGER_enum_map_t asn_MAP_frequencyHopping_value2enum_13[] = {
443         { 0,    9,      "intraSlot" },
444         { 1,    9,      "interSlot" }
445 };
446 static const unsigned int asn_MAP_frequencyHopping_enum2value_13[] = {
447         1,      /* interSlot(1) */
448         0       /* intraSlot(0) */
449 };
450 static const asn_INTEGER_specifics_t asn_SPC_frequencyHopping_specs_13 = {
451         asn_MAP_frequencyHopping_value2enum_13, /* "tag" => N; sorted by tag */
452         asn_MAP_frequencyHopping_enum2value_13, /* N => "tag"; sorted by N */
453         2,      /* Number of elements in the maps */
454         0,      /* Enumeration is not extensible */
455         1,      /* Strict enumeration */
456         0,      /* Native long size */
457         0
458 };
459 static const ber_tlv_tag_t asn_DEF_frequencyHopping_tags_13[] = {
460         (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
461         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
462 };
463 static /* Use -fall-defs-global to expose */
464 asn_TYPE_descriptor_t asn_DEF_frequencyHopping_13 = {
465         "frequencyHopping",
466         "frequencyHopping",
467         &asn_OP_NativeEnumerated,
468         asn_DEF_frequencyHopping_tags_13,
469         sizeof(asn_DEF_frequencyHopping_tags_13)
470                 /sizeof(asn_DEF_frequencyHopping_tags_13[0]) - 1, /* 1 */
471         asn_DEF_frequencyHopping_tags_13,       /* Same as above */
472         sizeof(asn_DEF_frequencyHopping_tags_13)
473                 /sizeof(asn_DEF_frequencyHopping_tags_13[0]), /* 2 */
474         { &asn_OER_type_frequencyHopping_constr_13, &asn_PER_type_frequencyHopping_constr_13, NativeEnumerated_constraint },
475         0, 0,   /* Defined elsewhere */
476         &asn_SPC_frequencyHopping_specs_13      /* Additional specs */
477 };
478
479 static asn_TYPE_member_t asn_MBR_frequencyHoppingOffsetLists_16[] = {
480         { ATF_POINTER, 0, 0,
481                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
482                 0,
483                 &asn_DEF_NativeInteger,
484                 0,
485                 { &asn_OER_memb_Member_constr_17, &asn_PER_memb_Member_constr_17,  memb_NativeInteger_constraint_16 },
486                 0, 0, /* No default value */
487                 ""
488                 },
489 };
490 static const ber_tlv_tag_t asn_DEF_frequencyHoppingOffsetLists_tags_16[] = {
491         (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
492         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
493 };
494 static asn_SET_OF_specifics_t asn_SPC_frequencyHoppingOffsetLists_specs_16 = {
495         sizeof(struct PUSCH_Config__frequencyHoppingOffsetLists),
496         offsetof(struct PUSCH_Config__frequencyHoppingOffsetLists, _asn_ctx),
497         0,      /* XER encoding is XMLDelimitedItemList */
498 };
499 static /* Use -fall-defs-global to expose */
500 asn_TYPE_descriptor_t asn_DEF_frequencyHoppingOffsetLists_16 = {
501         "frequencyHoppingOffsetLists",
502         "frequencyHoppingOffsetLists",
503         &asn_OP_SEQUENCE_OF,
504         asn_DEF_frequencyHoppingOffsetLists_tags_16,
505         sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16)
506                 /sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16[0]) - 1, /* 1 */
507         asn_DEF_frequencyHoppingOffsetLists_tags_16,    /* Same as above */
508         sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16)
509                 /sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16[0]), /* 2 */
510         { &asn_OER_type_frequencyHoppingOffsetLists_constr_16, &asn_PER_type_frequencyHoppingOffsetLists_constr_16, SEQUENCE_OF_constraint },
511         asn_MBR_frequencyHoppingOffsetLists_16,
512         1,      /* Single element */
513         &asn_SPC_frequencyHoppingOffsetLists_specs_16   /* Additional specs */
514 };
515
516 static const asn_INTEGER_enum_map_t asn_MAP_resourceAllocation_value2enum_18[] = {
517         { 0,    23,     "resourceAllocationType0" },
518         { 1,    23,     "resourceAllocationType1" },
519         { 2,    13,     "dynamicSwitch" }
520 };
521 static const unsigned int asn_MAP_resourceAllocation_enum2value_18[] = {
522         2,      /* dynamicSwitch(2) */
523         0,      /* resourceAllocationType0(0) */
524         1       /* resourceAllocationType1(1) */
525 };
526 static const asn_INTEGER_specifics_t asn_SPC_resourceAllocation_specs_18 = {
527         asn_MAP_resourceAllocation_value2enum_18,       /* "tag" => N; sorted by tag */
528         asn_MAP_resourceAllocation_enum2value_18,       /* N => "tag"; sorted by N */
529         3,      /* Number of elements in the maps */
530         0,      /* Enumeration is not extensible */
531         1,      /* Strict enumeration */
532         0,      /* Native long size */
533         0
534 };
535 static const ber_tlv_tag_t asn_DEF_resourceAllocation_tags_18[] = {
536         (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
537         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
538 };
539 static /* Use -fall-defs-global to expose */
540 asn_TYPE_descriptor_t asn_DEF_resourceAllocation_18 = {
541         "resourceAllocation",
542         "resourceAllocation",
543         &asn_OP_NativeEnumerated,
544         asn_DEF_resourceAllocation_tags_18,
545         sizeof(asn_DEF_resourceAllocation_tags_18)
546                 /sizeof(asn_DEF_resourceAllocation_tags_18[0]) - 1, /* 1 */
547         asn_DEF_resourceAllocation_tags_18,     /* Same as above */
548         sizeof(asn_DEF_resourceAllocation_tags_18)
549                 /sizeof(asn_DEF_resourceAllocation_tags_18[0]), /* 2 */
550         { &asn_OER_type_resourceAllocation_constr_18, &asn_PER_type_resourceAllocation_constr_18, NativeEnumerated_constraint },
551         0, 0,   /* Defined elsewhere */
552         &asn_SPC_resourceAllocation_specs_18    /* Additional specs */
553 };
554
555 static asn_TYPE_member_t asn_MBR_pusch_TimeDomainAllocationList_22[] = {
556         { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, choice.release),
557                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
558                 -1,     /* IMPLICIT tag at current level */
559                 &asn_DEF_NULL,
560                 0,
561                 { 0, 0, 0 },
562                 0, 0, /* No default value */
563                 "release"
564                 },
565         { ATF_POINTER, 0, offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, choice.setup),
566                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
567                 -1,     /* IMPLICIT tag at current level */
568                 &asn_DEF_PUSCH_TimeDomainResourceAllocationList,
569                 0,
570                 { 0, 0, 0 },
571                 0, 0, /* No default value */
572                 "setup"
573                 },
574 };
575 static const asn_TYPE_tag2member_t asn_MAP_pusch_TimeDomainAllocationList_tag2el_22[] = {
576     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
577     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
578 };
579 static asn_CHOICE_specifics_t asn_SPC_pusch_TimeDomainAllocationList_specs_22 = {
580         sizeof(struct PUSCH_Config__pusch_TimeDomainAllocationList),
581         offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, _asn_ctx),
582         offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, present),
583         sizeof(((struct PUSCH_Config__pusch_TimeDomainAllocationList *)0)->present),
584         asn_MAP_pusch_TimeDomainAllocationList_tag2el_22,
585         2,      /* Count of tags in the map */
586         0, 0,
587         -1      /* Extensions start */
588 };
589 static /* Use -fall-defs-global to expose */
590 asn_TYPE_descriptor_t asn_DEF_pusch_TimeDomainAllocationList_22 = {
591         "pusch-TimeDomainAllocationList",
592         "pusch-TimeDomainAllocationList",
593         &asn_OP_CHOICE,
594         0,      /* No effective tags (pointer) */
595         0,      /* No effective tags (count) */
596         0,      /* No tags (pointer) */
597         0,      /* No tags (count) */
598         { &asn_OER_type_pusch_TimeDomainAllocationList_constr_22, &asn_PER_type_pusch_TimeDomainAllocationList_constr_22, CHOICE_constraint },
599         asn_MBR_pusch_TimeDomainAllocationList_22,
600         2,      /* Elements count */
601         &asn_SPC_pusch_TimeDomainAllocationList_specs_22        /* Additional specs */
602 };
603
604 static const asn_INTEGER_enum_map_t asn_MAP_pusch_AggregationFactor_value2enum_25[] = {
605         { 0,    2,      "n2" },
606         { 1,    2,      "n4" },
607         { 2,    2,      "n8" }
608 };
609 static const unsigned int asn_MAP_pusch_AggregationFactor_enum2value_25[] = {
610         0,      /* n2(0) */
611         1,      /* n4(1) */
612         2       /* n8(2) */
613 };
614 static const asn_INTEGER_specifics_t asn_SPC_pusch_AggregationFactor_specs_25 = {
615         asn_MAP_pusch_AggregationFactor_value2enum_25,  /* "tag" => N; sorted by tag */
616         asn_MAP_pusch_AggregationFactor_enum2value_25,  /* N => "tag"; sorted by N */
617         3,      /* Number of elements in the maps */
618         0,      /* Enumeration is not extensible */
619         1,      /* Strict enumeration */
620         0,      /* Native long size */
621         0
622 };
623 static const ber_tlv_tag_t asn_DEF_pusch_AggregationFactor_tags_25[] = {
624         (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
625         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
626 };
627 static /* Use -fall-defs-global to expose */
628 asn_TYPE_descriptor_t asn_DEF_pusch_AggregationFactor_25 = {
629         "pusch-AggregationFactor",
630         "pusch-AggregationFactor",
631         &asn_OP_NativeEnumerated,
632         asn_DEF_pusch_AggregationFactor_tags_25,
633         sizeof(asn_DEF_pusch_AggregationFactor_tags_25)
634                 /sizeof(asn_DEF_pusch_AggregationFactor_tags_25[0]) - 1, /* 1 */
635         asn_DEF_pusch_AggregationFactor_tags_25,        /* Same as above */
636         sizeof(asn_DEF_pusch_AggregationFactor_tags_25)
637                 /sizeof(asn_DEF_pusch_AggregationFactor_tags_25[0]), /* 2 */
638         { &asn_OER_type_pusch_AggregationFactor_constr_25, &asn_PER_type_pusch_AggregationFactor_constr_25, NativeEnumerated_constraint },
639         0, 0,   /* Defined elsewhere */
640         &asn_SPC_pusch_AggregationFactor_specs_25       /* Additional specs */
641 };
642
643 static const asn_INTEGER_enum_map_t asn_MAP_mcs_Table_value2enum_29[] = {
644         { 0,    6,      "qam256" },
645         { 1,    10,     "qam64LowSE" }
646 };
647 static const unsigned int asn_MAP_mcs_Table_enum2value_29[] = {
648         0,      /* qam256(0) */
649         1       /* qam64LowSE(1) */
650 };
651 static const asn_INTEGER_specifics_t asn_SPC_mcs_Table_specs_29 = {
652         asn_MAP_mcs_Table_value2enum_29,        /* "tag" => N; sorted by tag */
653         asn_MAP_mcs_Table_enum2value_29,        /* N => "tag"; sorted by N */
654         2,      /* Number of elements in the maps */
655         0,      /* Enumeration is not extensible */
656         1,      /* Strict enumeration */
657         0,      /* Native long size */
658         0
659 };
660 static const ber_tlv_tag_t asn_DEF_mcs_Table_tags_29[] = {
661         (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
662         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
663 };
664 static /* Use -fall-defs-global to expose */
665 asn_TYPE_descriptor_t asn_DEF_mcs_Table_29 = {
666         "mcs-Table",
667         "mcs-Table",
668         &asn_OP_NativeEnumerated,
669         asn_DEF_mcs_Table_tags_29,
670         sizeof(asn_DEF_mcs_Table_tags_29)
671                 /sizeof(asn_DEF_mcs_Table_tags_29[0]) - 1, /* 1 */
672         asn_DEF_mcs_Table_tags_29,      /* Same as above */
673         sizeof(asn_DEF_mcs_Table_tags_29)
674                 /sizeof(asn_DEF_mcs_Table_tags_29[0]), /* 2 */
675         { &asn_OER_type_mcs_Table_constr_29, &asn_PER_type_mcs_Table_constr_29, NativeEnumerated_constraint },
676         0, 0,   /* Defined elsewhere */
677         &asn_SPC_mcs_Table_specs_29     /* Additional specs */
678 };
679
680 static const asn_INTEGER_enum_map_t asn_MAP_mcs_TableTransformPrecoder_value2enum_32[] = {
681         { 0,    6,      "qam256" },
682         { 1,    10,     "qam64LowSE" }
683 };
684 static const unsigned int asn_MAP_mcs_TableTransformPrecoder_enum2value_32[] = {
685         0,      /* qam256(0) */
686         1       /* qam64LowSE(1) */
687 };
688 static const asn_INTEGER_specifics_t asn_SPC_mcs_TableTransformPrecoder_specs_32 = {
689         asn_MAP_mcs_TableTransformPrecoder_value2enum_32,       /* "tag" => N; sorted by tag */
690         asn_MAP_mcs_TableTransformPrecoder_enum2value_32,       /* N => "tag"; sorted by N */
691         2,      /* Number of elements in the maps */
692         0,      /* Enumeration is not extensible */
693         1,      /* Strict enumeration */
694         0,      /* Native long size */
695         0
696 };
697 static const ber_tlv_tag_t asn_DEF_mcs_TableTransformPrecoder_tags_32[] = {
698         (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
699         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
700 };
701 static /* Use -fall-defs-global to expose */
702 asn_TYPE_descriptor_t asn_DEF_mcs_TableTransformPrecoder_32 = {
703         "mcs-TableTransformPrecoder",
704         "mcs-TableTransformPrecoder",
705         &asn_OP_NativeEnumerated,
706         asn_DEF_mcs_TableTransformPrecoder_tags_32,
707         sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32)
708                 /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32[0]) - 1, /* 1 */
709         asn_DEF_mcs_TableTransformPrecoder_tags_32,     /* Same as above */
710         sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32)
711                 /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32[0]), /* 2 */
712         { &asn_OER_type_mcs_TableTransformPrecoder_constr_32, &asn_PER_type_mcs_TableTransformPrecoder_constr_32, NativeEnumerated_constraint },
713         0, 0,   /* Defined elsewhere */
714         &asn_SPC_mcs_TableTransformPrecoder_specs_32    /* Additional specs */
715 };
716
717 static const asn_INTEGER_enum_map_t asn_MAP_transformPrecoder_value2enum_35[] = {
718         { 0,    7,      "enabled" },
719         { 1,    8,      "disabled" }
720 };
721 static const unsigned int asn_MAP_transformPrecoder_enum2value_35[] = {
722         1,      /* disabled(1) */
723         0       /* enabled(0) */
724 };
725 static const asn_INTEGER_specifics_t asn_SPC_transformPrecoder_specs_35 = {
726         asn_MAP_transformPrecoder_value2enum_35,        /* "tag" => N; sorted by tag */
727         asn_MAP_transformPrecoder_enum2value_35,        /* N => "tag"; sorted by N */
728         2,      /* Number of elements in the maps */
729         0,      /* Enumeration is not extensible */
730         1,      /* Strict enumeration */
731         0,      /* Native long size */
732         0
733 };
734 static const ber_tlv_tag_t asn_DEF_transformPrecoder_tags_35[] = {
735         (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
736         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
737 };
738 static /* Use -fall-defs-global to expose */
739 asn_TYPE_descriptor_t asn_DEF_transformPrecoder_35 = {
740         "transformPrecoder",
741         "transformPrecoder",
742         &asn_OP_NativeEnumerated,
743         asn_DEF_transformPrecoder_tags_35,
744         sizeof(asn_DEF_transformPrecoder_tags_35)
745                 /sizeof(asn_DEF_transformPrecoder_tags_35[0]) - 1, /* 1 */
746         asn_DEF_transformPrecoder_tags_35,      /* Same as above */
747         sizeof(asn_DEF_transformPrecoder_tags_35)
748                 /sizeof(asn_DEF_transformPrecoder_tags_35[0]), /* 2 */
749         { &asn_OER_type_transformPrecoder_constr_35, &asn_PER_type_transformPrecoder_constr_35, NativeEnumerated_constraint },
750         0, 0,   /* Defined elsewhere */
751         &asn_SPC_transformPrecoder_specs_35     /* Additional specs */
752 };
753
754 static const asn_INTEGER_enum_map_t asn_MAP_codebookSubset_value2enum_38[] = {
755         { 0,    29,     "fullyAndPartialAndNonCoherent" },
756         { 1,    21,     "partialAndNonCoherent" },
757         { 2,    11,     "nonCoherent" }
758 };
759 static const unsigned int asn_MAP_codebookSubset_enum2value_38[] = {
760         0,      /* fullyAndPartialAndNonCoherent(0) */
761         2,      /* nonCoherent(2) */
762         1       /* partialAndNonCoherent(1) */
763 };
764 static const asn_INTEGER_specifics_t asn_SPC_codebookSubset_specs_38 = {
765         asn_MAP_codebookSubset_value2enum_38,   /* "tag" => N; sorted by tag */
766         asn_MAP_codebookSubset_enum2value_38,   /* N => "tag"; sorted by N */
767         3,      /* Number of elements in the maps */
768         0,      /* Enumeration is not extensible */
769         1,      /* Strict enumeration */
770         0,      /* Native long size */
771         0
772 };
773 static const ber_tlv_tag_t asn_DEF_codebookSubset_tags_38[] = {
774         (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
775         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
776 };
777 static /* Use -fall-defs-global to expose */
778 asn_TYPE_descriptor_t asn_DEF_codebookSubset_38 = {
779         "codebookSubset",
780         "codebookSubset",
781         &asn_OP_NativeEnumerated,
782         asn_DEF_codebookSubset_tags_38,
783         sizeof(asn_DEF_codebookSubset_tags_38)
784                 /sizeof(asn_DEF_codebookSubset_tags_38[0]) - 1, /* 1 */
785         asn_DEF_codebookSubset_tags_38, /* Same as above */
786         sizeof(asn_DEF_codebookSubset_tags_38)
787                 /sizeof(asn_DEF_codebookSubset_tags_38[0]), /* 2 */
788         { &asn_OER_type_codebookSubset_constr_38, &asn_PER_type_codebookSubset_constr_38, NativeEnumerated_constraint },
789         0, 0,   /* Defined elsewhere */
790         &asn_SPC_codebookSubset_specs_38        /* Additional specs */
791 };
792
793 static const asn_INTEGER_enum_map_t asn_MAP_rbg_Size_value2enum_43[] = {
794         { 0,    7,      "config2" }
795 };
796 static const unsigned int asn_MAP_rbg_Size_enum2value_43[] = {
797         0       /* config2(0) */
798 };
799 static const asn_INTEGER_specifics_t asn_SPC_rbg_Size_specs_43 = {
800         asn_MAP_rbg_Size_value2enum_43, /* "tag" => N; sorted by tag */
801         asn_MAP_rbg_Size_enum2value_43, /* N => "tag"; sorted by N */
802         1,      /* Number of elements in the maps */
803         0,      /* Enumeration is not extensible */
804         1,      /* Strict enumeration */
805         0,      /* Native long size */
806         0
807 };
808 static const ber_tlv_tag_t asn_DEF_rbg_Size_tags_43[] = {
809         (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
810         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
811 };
812 static /* Use -fall-defs-global to expose */
813 asn_TYPE_descriptor_t asn_DEF_rbg_Size_43 = {
814         "rbg-Size",
815         "rbg-Size",
816         &asn_OP_NativeEnumerated,
817         asn_DEF_rbg_Size_tags_43,
818         sizeof(asn_DEF_rbg_Size_tags_43)
819                 /sizeof(asn_DEF_rbg_Size_tags_43[0]) - 1, /* 1 */
820         asn_DEF_rbg_Size_tags_43,       /* Same as above */
821         sizeof(asn_DEF_rbg_Size_tags_43)
822                 /sizeof(asn_DEF_rbg_Size_tags_43[0]), /* 2 */
823         { &asn_OER_type_rbg_Size_constr_43, &asn_PER_type_rbg_Size_constr_43, NativeEnumerated_constraint },
824         0, 0,   /* Defined elsewhere */
825         &asn_SPC_rbg_Size_specs_43      /* Additional specs */
826 };
827
828 static asn_TYPE_member_t asn_MBR_uci_OnPUSCH_45[] = {
829         { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__uci_OnPUSCH, choice.release),
830                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
831                 -1,     /* IMPLICIT tag at current level */
832                 &asn_DEF_NULL,
833                 0,
834                 { 0, 0, 0 },
835                 0, 0, /* No default value */
836                 "release"
837                 },
838         { ATF_POINTER, 0, offsetof(struct PUSCH_Config__uci_OnPUSCH, choice.setup),
839                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
840                 -1,     /* IMPLICIT tag at current level */
841                 &asn_DEF_UCI_OnPUSCH,
842                 0,
843                 { 0, 0, 0 },
844                 0, 0, /* No default value */
845                 "setup"
846                 },
847 };
848 static const asn_TYPE_tag2member_t asn_MAP_uci_OnPUSCH_tag2el_45[] = {
849     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
850     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
851 };
852 static asn_CHOICE_specifics_t asn_SPC_uci_OnPUSCH_specs_45 = {
853         sizeof(struct PUSCH_Config__uci_OnPUSCH),
854         offsetof(struct PUSCH_Config__uci_OnPUSCH, _asn_ctx),
855         offsetof(struct PUSCH_Config__uci_OnPUSCH, present),
856         sizeof(((struct PUSCH_Config__uci_OnPUSCH *)0)->present),
857         asn_MAP_uci_OnPUSCH_tag2el_45,
858         2,      /* Count of tags in the map */
859         0, 0,
860         -1      /* Extensions start */
861 };
862 static /* Use -fall-defs-global to expose */
863 asn_TYPE_descriptor_t asn_DEF_uci_OnPUSCH_45 = {
864         "uci-OnPUSCH",
865         "uci-OnPUSCH",
866         &asn_OP_CHOICE,
867         0,      /* No effective tags (pointer) */
868         0,      /* No effective tags (count) */
869         0,      /* No tags (pointer) */
870         0,      /* No tags (count) */
871         { &asn_OER_type_uci_OnPUSCH_constr_45, &asn_PER_type_uci_OnPUSCH_constr_45, CHOICE_constraint },
872         asn_MBR_uci_OnPUSCH_45,
873         2,      /* Elements count */
874         &asn_SPC_uci_OnPUSCH_specs_45   /* Additional specs */
875 };
876
877 static const asn_INTEGER_enum_map_t asn_MAP_tp_pi2BPSK_value2enum_48[] = {
878         { 0,    7,      "enabled" }
879 };
880 static const unsigned int asn_MAP_tp_pi2BPSK_enum2value_48[] = {
881         0       /* enabled(0) */
882 };
883 static const asn_INTEGER_specifics_t asn_SPC_tp_pi2BPSK_specs_48 = {
884         asn_MAP_tp_pi2BPSK_value2enum_48,       /* "tag" => N; sorted by tag */
885         asn_MAP_tp_pi2BPSK_enum2value_48,       /* N => "tag"; sorted by N */
886         1,      /* Number of elements in the maps */
887         0,      /* Enumeration is not extensible */
888         1,      /* Strict enumeration */
889         0,      /* Native long size */
890         0
891 };
892 static const ber_tlv_tag_t asn_DEF_tp_pi2BPSK_tags_48[] = {
893         (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
894         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
895 };
896 static /* Use -fall-defs-global to expose */
897 asn_TYPE_descriptor_t asn_DEF_tp_pi2BPSK_48 = {
898         "tp-pi2BPSK",
899         "tp-pi2BPSK",
900         &asn_OP_NativeEnumerated,
901         asn_DEF_tp_pi2BPSK_tags_48,
902         sizeof(asn_DEF_tp_pi2BPSK_tags_48)
903                 /sizeof(asn_DEF_tp_pi2BPSK_tags_48[0]) - 1, /* 1 */
904         asn_DEF_tp_pi2BPSK_tags_48,     /* Same as above */
905         sizeof(asn_DEF_tp_pi2BPSK_tags_48)
906                 /sizeof(asn_DEF_tp_pi2BPSK_tags_48[0]), /* 2 */
907         { &asn_OER_type_tp_pi2BPSK_constr_48, &asn_PER_type_tp_pi2BPSK_constr_48, NativeEnumerated_constraint },
908         0, 0,   /* Defined elsewhere */
909         &asn_SPC_tp_pi2BPSK_specs_48    /* Additional specs */
910 };
911
912 asn_TYPE_member_t asn_MBR_PUSCH_Config_1[] = {
913         { ATF_POINTER, 7, offsetof(struct PUSCH_Config, dataScramblingIdentityPUSCH),
914                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
915                 -1,     /* IMPLICIT tag at current level */
916                 &asn_DEF_NativeInteger,
917                 0,
918                 { &asn_OER_memb_dataScramblingIdentityPUSCH_constr_2, &asn_PER_memb_dataScramblingIdentityPUSCH_constr_2,  memb_dataScramblingIdentityPUSCH_constraint_1 },
919                 0, 0, /* No default value */
920                 "dataScramblingIdentityPUSCH"
921                 },
922         { ATF_POINTER, 6, offsetof(struct PUSCH_Config, txConfig),
923                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
924                 -1,     /* IMPLICIT tag at current level */
925                 &asn_DEF_txConfig_3,
926                 0,
927                 { 0, 0, 0 },
928                 0, 0, /* No default value */
929                 "txConfig"
930                 },
931         { ATF_POINTER, 5, offsetof(struct PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeA),
932                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
933                 +1,     /* EXPLICIT tag at current level */
934                 &asn_DEF_dmrs_UplinkForPUSCH_MappingTypeA_6,
935                 0,
936                 { 0, 0, 0 },
937                 0, 0, /* No default value */
938                 "dmrs-UplinkForPUSCH-MappingTypeA"
939                 },
940         { ATF_POINTER, 4, offsetof(struct PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeB),
941                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
942                 +1,     /* EXPLICIT tag at current level */
943                 &asn_DEF_dmrs_UplinkForPUSCH_MappingTypeB_9,
944                 0,
945                 { 0, 0, 0 },
946                 0, 0, /* No default value */
947                 "dmrs-UplinkForPUSCH-MappingTypeB"
948                 },
949         { ATF_POINTER, 3, offsetof(struct PUSCH_Config, pusch_PowerControl),
950                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
951                 -1,     /* IMPLICIT tag at current level */
952                 &asn_DEF_PUSCH_PowerControl,
953                 0,
954                 { 0, 0, 0 },
955                 0, 0, /* No default value */
956                 "pusch-PowerControl"
957                 },
958         { ATF_POINTER, 2, offsetof(struct PUSCH_Config, frequencyHopping),
959                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
960                 -1,     /* IMPLICIT tag at current level */
961                 &asn_DEF_frequencyHopping_13,
962                 0,
963                 { 0, 0, 0 },
964                 0, 0, /* No default value */
965                 "frequencyHopping"
966                 },
967         { ATF_POINTER, 1, offsetof(struct PUSCH_Config, frequencyHoppingOffsetLists),
968                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
969                 0,
970                 &asn_DEF_frequencyHoppingOffsetLists_16,
971                 0,
972                 { &asn_OER_memb_frequencyHoppingOffsetLists_constr_16, &asn_PER_memb_frequencyHoppingOffsetLists_constr_16,  memb_frequencyHoppingOffsetLists_constraint_1 },
973                 0, 0, /* No default value */
974                 "frequencyHoppingOffsetLists"
975                 },
976         { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config, resourceAllocation),
977                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
978                 -1,     /* IMPLICIT tag at current level */
979                 &asn_DEF_resourceAllocation_18,
980                 0,
981                 { 0, 0, 0 },
982                 0, 0, /* No default value */
983                 "resourceAllocation"
984                 },
985         { ATF_POINTER, 10, offsetof(struct PUSCH_Config, pusch_TimeDomainAllocationList),
986                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
987                 +1,     /* EXPLICIT tag at current level */
988                 &asn_DEF_pusch_TimeDomainAllocationList_22,
989                 0,
990                 { 0, 0, 0 },
991                 0, 0, /* No default value */
992                 "pusch-TimeDomainAllocationList"
993                 },
994         { ATF_POINTER, 9, offsetof(struct PUSCH_Config, pusch_AggregationFactor),
995                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
996                 -1,     /* IMPLICIT tag at current level */
997                 &asn_DEF_pusch_AggregationFactor_25,
998                 0,
999                 { 0, 0, 0 },
1000                 0, 0, /* No default value */
1001                 "pusch-AggregationFactor"
1002                 },
1003         { ATF_POINTER, 8, offsetof(struct PUSCH_Config, mcs_Table),
1004                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
1005                 -1,     /* IMPLICIT tag at current level */
1006                 &asn_DEF_mcs_Table_29,
1007                 0,
1008                 { 0, 0, 0 },
1009                 0, 0, /* No default value */
1010                 "mcs-Table"
1011                 },
1012         { ATF_POINTER, 7, offsetof(struct PUSCH_Config, mcs_TableTransformPrecoder),
1013                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
1014                 -1,     /* IMPLICIT tag at current level */
1015                 &asn_DEF_mcs_TableTransformPrecoder_32,
1016                 0,
1017                 { 0, 0, 0 },
1018                 0, 0, /* No default value */
1019                 "mcs-TableTransformPrecoder"
1020                 },
1021         { ATF_POINTER, 6, offsetof(struct PUSCH_Config, transformPrecoder),
1022                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
1023                 -1,     /* IMPLICIT tag at current level */
1024                 &asn_DEF_transformPrecoder_35,
1025                 0,
1026                 { 0, 0, 0 },
1027                 0, 0, /* No default value */
1028                 "transformPrecoder"
1029                 },
1030         { ATF_POINTER, 5, offsetof(struct PUSCH_Config, codebookSubset),
1031                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
1032                 -1,     /* IMPLICIT tag at current level */
1033                 &asn_DEF_codebookSubset_38,
1034                 0,
1035                 { 0, 0, 0 },
1036                 0, 0, /* No default value */
1037                 "codebookSubset"
1038                 },
1039         { ATF_POINTER, 4, offsetof(struct PUSCH_Config, maxRank),
1040                 (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
1041                 -1,     /* IMPLICIT tag at current level */
1042                 &asn_DEF_NativeInteger,
1043                 0,
1044                 { &asn_OER_memb_maxRank_constr_42, &asn_PER_memb_maxRank_constr_42,  memb_maxRank_constraint_1 },
1045                 0, 0, /* No default value */
1046                 "maxRank"
1047                 },
1048         { ATF_POINTER, 3, offsetof(struct PUSCH_Config, rbg_Size),
1049                 (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
1050                 -1,     /* IMPLICIT tag at current level */
1051                 &asn_DEF_rbg_Size_43,
1052                 0,
1053                 { 0, 0, 0 },
1054                 0, 0, /* No default value */
1055                 "rbg-Size"
1056                 },
1057         { ATF_POINTER, 2, offsetof(struct PUSCH_Config, uci_OnPUSCH),
1058                 (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
1059                 +1,     /* EXPLICIT tag at current level */
1060                 &asn_DEF_uci_OnPUSCH_45,
1061                 0,
1062                 { 0, 0, 0 },
1063                 0, 0, /* No default value */
1064                 "uci-OnPUSCH"
1065                 },
1066         { ATF_POINTER, 1, offsetof(struct PUSCH_Config, tp_pi2BPSK),
1067                 (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
1068                 -1,     /* IMPLICIT tag at current level */
1069                 &asn_DEF_tp_pi2BPSK_48,
1070                 0,
1071                 { 0, 0, 0 },
1072                 0, 0, /* No default value */
1073                 "tp-pi2BPSK"
1074                 },
1075 };
1076 static const int asn_MAP_PUSCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 };
1077 static const ber_tlv_tag_t asn_DEF_PUSCH_Config_tags_1[] = {
1078         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
1079 };
1080 static const asn_TYPE_tag2member_t asn_MAP_PUSCH_Config_tag2el_1[] = {
1081     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dataScramblingIdentityPUSCH */
1082     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* txConfig */
1083     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dmrs-UplinkForPUSCH-MappingTypeA */
1084     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dmrs-UplinkForPUSCH-MappingTypeB */
1085     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pusch-PowerControl */
1086     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* frequencyHopping */
1087     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* frequencyHoppingOffsetLists */
1088     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* resourceAllocation */
1089     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* pusch-TimeDomainAllocationList */
1090     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pusch-AggregationFactor */
1091     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* mcs-Table */
1092     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* mcs-TableTransformPrecoder */
1093     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* transformPrecoder */
1094     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* codebookSubset */
1095     { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* maxRank */
1096     { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* rbg-Size */
1097     { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* uci-OnPUSCH */
1098     { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 } /* tp-pi2BPSK */
1099 };
1100 asn_SEQUENCE_specifics_t asn_SPC_PUSCH_Config_specs_1 = {
1101         sizeof(struct PUSCH_Config),
1102         offsetof(struct PUSCH_Config, _asn_ctx),
1103         asn_MAP_PUSCH_Config_tag2el_1,
1104         18,     /* Count of tags in the map */
1105         asn_MAP_PUSCH_Config_oms_1,     /* Optional members */
1106         17, 0,  /* Root/Additions */
1107         18,     /* First extension addition */
1108 };
1109 asn_TYPE_descriptor_t asn_DEF_PUSCH_Config = {
1110         "PUSCH-Config",
1111         "PUSCH-Config",
1112         &asn_OP_SEQUENCE,
1113         asn_DEF_PUSCH_Config_tags_1,
1114         sizeof(asn_DEF_PUSCH_Config_tags_1)
1115                 /sizeof(asn_DEF_PUSCH_Config_tags_1[0]), /* 1 */
1116         asn_DEF_PUSCH_Config_tags_1,    /* Same as above */
1117         sizeof(asn_DEF_PUSCH_Config_tags_1)
1118                 /sizeof(asn_DEF_PUSCH_Config_tags_1[0]), /* 1 */
1119         { 0, 0, SEQUENCE_constraint },
1120         asn_MBR_PUSCH_Config_1,
1121         18,     /* Elements count */
1122         &asn_SPC_PUSCH_Config_specs_1   /* Additional specs */
1123 };
1124