d05be276873b59a5483189e04752d95f7865a2fa
[o-du/l2.git] / src / codec_utils / RRC / DMRS-UplinkConfig.c
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "NR-RRC-Definitions"
4  *      found in "/home/labadmin/hlal/rrc_15.3_asn.asn1"
5  *      `asn1c -D ./15_3_rrc/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #include "DMRS-UplinkConfig.h"
9
10 #include "PTRS-UplinkConfig.h"
11 /*
12  * This type is implemented using NativeEnumerated,
13  * so here we adjust the DEF accordingly.
14  */
15 /*
16  * This type is implemented using NativeEnumerated,
17  * so here we adjust the DEF accordingly.
18  */
19 /*
20  * This type is implemented using NativeEnumerated,
21  * so here we adjust the DEF accordingly.
22  */
23 static int
24 memb_scramblingID0_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr,
25                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
26         long value;
27         
28         if(!sptr) {
29                 ASN__CTFAIL(app_key, td, sptr,
30                         "%s: value not given (%s:%d)",
31                         td->name, __FILE__, __LINE__);
32                 return -1;
33         }
34         
35         value = *(const long *)sptr;
36         
37         if((value >= 0 && value <= 65535)) {
38                 /* Constraint check succeeded */
39                 return 0;
40         } else {
41                 ASN__CTFAIL(app_key, td, sptr,
42                         "%s: constraint failed (%s:%d)",
43                         td->name, __FILE__, __LINE__);
44                 return -1;
45         }
46 }
47
48 static int
49 memb_scramblingID1_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr,
50                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
51         long value;
52         
53         if(!sptr) {
54                 ASN__CTFAIL(app_key, td, sptr,
55                         "%s: value not given (%s:%d)",
56                         td->name, __FILE__, __LINE__);
57                 return -1;
58         }
59         
60         value = *(const long *)sptr;
61         
62         if((value >= 0 && value <= 65535)) {
63                 /* Constraint check succeeded */
64                 return 0;
65         } else {
66                 ASN__CTFAIL(app_key, td, sptr,
67                         "%s: constraint failed (%s:%d)",
68                         td->name, __FILE__, __LINE__);
69                 return -1;
70         }
71 }
72
73 /*
74  * This type is implemented using NativeEnumerated,
75  * so here we adjust the DEF accordingly.
76  */
77 /*
78  * This type is implemented using NativeEnumerated,
79  * so here we adjust the DEF accordingly.
80  */
81 static int
82 memb_nPUSCH_Identity_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr,
83                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
84         long value;
85         
86         if(!sptr) {
87                 ASN__CTFAIL(app_key, td, sptr,
88                         "%s: value not given (%s:%d)",
89                         td->name, __FILE__, __LINE__);
90                 return -1;
91         }
92         
93         value = *(const long *)sptr;
94         
95         if((value >= 0 && value <= 1007)) {
96                 /* Constraint check succeeded */
97                 return 0;
98         } else {
99                 ASN__CTFAIL(app_key, td, sptr,
100                         "%s: constraint failed (%s:%d)",
101                         td->name, __FILE__, __LINE__);
102                 return -1;
103         }
104 }
105
106 static asn_oer_constraints_t asn_OER_type_dmrs_Type_constr_2 CC_NOTUSED = {
107         { 0, 0 },
108         -1};
109 static asn_per_constraints_t asn_PER_type_dmrs_Type_constr_2 CC_NOTUSED = {
110         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
111         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
112         0, 0    /* No PER value map */
113 };
114 static asn_oer_constraints_t asn_OER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = {
115         { 0, 0 },
116         -1};
117 static asn_per_constraints_t asn_PER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = {
118         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
119         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
120         0, 0    /* No PER value map */
121 };
122 static asn_oer_constraints_t asn_OER_type_phaseTrackingRS_constr_8 CC_NOTUSED = {
123         { 0, 0 },
124         -1};
125 static asn_per_constraints_t asn_PER_type_phaseTrackingRS_constr_8 CC_NOTUSED = {
126         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
127         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
128         0, 0    /* No PER value map */
129 };
130 static asn_oer_constraints_t asn_OER_type_maxLength_constr_11 CC_NOTUSED = {
131         { 0, 0 },
132         -1};
133 static asn_per_constraints_t asn_PER_type_maxLength_constr_11 CC_NOTUSED = {
134         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
135         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
136         0, 0    /* No PER value map */
137 };
138 static asn_oer_constraints_t asn_OER_memb_scramblingID0_constr_14 CC_NOTUSED = {
139         { 2, 1 }        /* (0..65535) */,
140         -1};
141 static asn_per_constraints_t asn_PER_memb_scramblingID0_constr_14 CC_NOTUSED = {
142         { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
143         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
144         0, 0    /* No PER value map */
145 };
146 static asn_oer_constraints_t asn_OER_memb_scramblingID1_constr_15 CC_NOTUSED = {
147         { 2, 1 }        /* (0..65535) */,
148         -1};
149 static asn_per_constraints_t asn_PER_memb_scramblingID1_constr_15 CC_NOTUSED = {
150         { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
151         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
152         0, 0    /* No PER value map */
153 };
154 static asn_oer_constraints_t asn_OER_type_sequenceGroupHopping_constr_19 CC_NOTUSED = {
155         { 0, 0 },
156         -1};
157 static asn_per_constraints_t asn_PER_type_sequenceGroupHopping_constr_19 CC_NOTUSED = {
158         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
159         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
160         0, 0    /* No PER value map */
161 };
162 static asn_oer_constraints_t asn_OER_type_sequenceHopping_constr_21 CC_NOTUSED = {
163         { 0, 0 },
164         -1};
165 static asn_per_constraints_t asn_PER_type_sequenceHopping_constr_21 CC_NOTUSED = {
166         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
167         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
168         0, 0    /* No PER value map */
169 };
170 static asn_oer_constraints_t asn_OER_memb_nPUSCH_Identity_constr_18 CC_NOTUSED = {
171         { 2, 1 }        /* (0..1007) */,
172         -1};
173 static asn_per_constraints_t asn_PER_memb_nPUSCH_Identity_constr_18 CC_NOTUSED = {
174         { APC_CONSTRAINED,       10,  10,  0,  1007 }   /* (0..1007) */,
175         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
176         0, 0    /* No PER value map */
177 };
178 static const asn_INTEGER_enum_map_t asn_MAP_dmrs_Type_value2enum_2[] = {
179         { 0,    5,      "type2" }
180 };
181 static const unsigned int asn_MAP_dmrs_Type_enum2value_2[] = {
182         0       /* type2(0) */
183 };
184 static const asn_INTEGER_specifics_t asn_SPC_dmrs_Type_specs_2 = {
185         asn_MAP_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */
186         asn_MAP_dmrs_Type_enum2value_2, /* N => "tag"; sorted by N */
187         1,      /* Number of elements in the maps */
188         0,      /* Enumeration is not extensible */
189         1,      /* Strict enumeration */
190         0,      /* Native long size */
191         0
192 };
193 static const ber_tlv_tag_t asn_DEF_dmrs_Type_tags_2[] = {
194         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
195         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
196 };
197 static /* Use -fall-defs-global to expose */
198 asn_TYPE_descriptor_t asn_DEF_dmrs_Type_2 = {
199         "dmrs-Type",
200         "dmrs-Type",
201         &asn_OP_NativeEnumerated,
202         asn_DEF_dmrs_Type_tags_2,
203         sizeof(asn_DEF_dmrs_Type_tags_2)
204                 /sizeof(asn_DEF_dmrs_Type_tags_2[0]) - 1, /* 1 */
205         asn_DEF_dmrs_Type_tags_2,       /* Same as above */
206         sizeof(asn_DEF_dmrs_Type_tags_2)
207                 /sizeof(asn_DEF_dmrs_Type_tags_2[0]), /* 2 */
208         { &asn_OER_type_dmrs_Type_constr_2, &asn_PER_type_dmrs_Type_constr_2, NativeEnumerated_constraint },
209         0, 0,   /* Defined elsewhere */
210         &asn_SPC_dmrs_Type_specs_2      /* Additional specs */
211 };
212
213 static const asn_INTEGER_enum_map_t asn_MAP_dmrs_AdditionalPosition_value2enum_4[] = {
214         { 0,    4,      "pos0" },
215         { 1,    4,      "pos1" },
216         { 2,    4,      "pos3" }
217 };
218 static const unsigned int asn_MAP_dmrs_AdditionalPosition_enum2value_4[] = {
219         0,      /* pos0(0) */
220         1,      /* pos1(1) */
221         2       /* pos3(2) */
222 };
223 static const asn_INTEGER_specifics_t asn_SPC_dmrs_AdditionalPosition_specs_4 = {
224         asn_MAP_dmrs_AdditionalPosition_value2enum_4,   /* "tag" => N; sorted by tag */
225         asn_MAP_dmrs_AdditionalPosition_enum2value_4,   /* N => "tag"; sorted by N */
226         3,      /* Number of elements in the maps */
227         0,      /* Enumeration is not extensible */
228         1,      /* Strict enumeration */
229         0,      /* Native long size */
230         0
231 };
232 static const ber_tlv_tag_t asn_DEF_dmrs_AdditionalPosition_tags_4[] = {
233         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
234         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
235 };
236 static /* Use -fall-defs-global to expose */
237 asn_TYPE_descriptor_t asn_DEF_dmrs_AdditionalPosition_4 = {
238         "dmrs-AdditionalPosition",
239         "dmrs-AdditionalPosition",
240         &asn_OP_NativeEnumerated,
241         asn_DEF_dmrs_AdditionalPosition_tags_4,
242         sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4)
243                 /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */
244         asn_DEF_dmrs_AdditionalPosition_tags_4, /* Same as above */
245         sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4)
246                 /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]), /* 2 */
247         { &asn_OER_type_dmrs_AdditionalPosition_constr_4, &asn_PER_type_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint },
248         0, 0,   /* Defined elsewhere */
249         &asn_SPC_dmrs_AdditionalPosition_specs_4        /* Additional specs */
250 };
251
252 static asn_TYPE_member_t asn_MBR_phaseTrackingRS_8[] = {
253         { ATF_NOFLAGS, 0, offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, choice.release),
254                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
255                 -1,     /* IMPLICIT tag at current level */
256                 &asn_DEF_NULL,
257                 0,
258                 { 0, 0, 0 },
259                 0, 0, /* No default value */
260                 "release"
261                 },
262         { ATF_POINTER, 0, offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, choice.setup),
263                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
264                 -1,     /* IMPLICIT tag at current level */
265                 &asn_DEF_PTRS_UplinkConfig,
266                 0,
267                 { 0, 0, 0 },
268                 0, 0, /* No default value */
269                 "setup"
270                 },
271 };
272 static const asn_TYPE_tag2member_t asn_MAP_phaseTrackingRS_tag2el_8[] = {
273     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
274     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
275 };
276 static asn_CHOICE_specifics_t asn_SPC_phaseTrackingRS_specs_8 = {
277         sizeof(struct DMRS_UplinkConfig__phaseTrackingRS),
278         offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, _asn_ctx),
279         offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, present),
280         sizeof(((struct DMRS_UplinkConfig__phaseTrackingRS *)0)->present),
281         asn_MAP_phaseTrackingRS_tag2el_8,
282         2,      /* Count of tags in the map */
283         0, 0,
284         -1      /* Extensions start */
285 };
286 static /* Use -fall-defs-global to expose */
287 asn_TYPE_descriptor_t asn_DEF_phaseTrackingRS_8 = {
288         "phaseTrackingRS",
289         "phaseTrackingRS",
290         &asn_OP_CHOICE,
291         0,      /* No effective tags (pointer) */
292         0,      /* No effective tags (count) */
293         0,      /* No tags (pointer) */
294         0,      /* No tags (count) */
295         { &asn_OER_type_phaseTrackingRS_constr_8, &asn_PER_type_phaseTrackingRS_constr_8, CHOICE_constraint },
296         asn_MBR_phaseTrackingRS_8,
297         2,      /* Elements count */
298         &asn_SPC_phaseTrackingRS_specs_8        /* Additional specs */
299 };
300
301 static const asn_INTEGER_enum_map_t asn_MAP_maxLength_value2enum_11[] = {
302         { 0,    4,      "len2" }
303 };
304 static const unsigned int asn_MAP_maxLength_enum2value_11[] = {
305         0       /* len2(0) */
306 };
307 static const asn_INTEGER_specifics_t asn_SPC_maxLength_specs_11 = {
308         asn_MAP_maxLength_value2enum_11,        /* "tag" => N; sorted by tag */
309         asn_MAP_maxLength_enum2value_11,        /* N => "tag"; sorted by N */
310         1,      /* Number of elements in the maps */
311         0,      /* Enumeration is not extensible */
312         1,      /* Strict enumeration */
313         0,      /* Native long size */
314         0
315 };
316 static const ber_tlv_tag_t asn_DEF_maxLength_tags_11[] = {
317         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
318         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
319 };
320 static /* Use -fall-defs-global to expose */
321 asn_TYPE_descriptor_t asn_DEF_maxLength_11 = {
322         "maxLength",
323         "maxLength",
324         &asn_OP_NativeEnumerated,
325         asn_DEF_maxLength_tags_11,
326         sizeof(asn_DEF_maxLength_tags_11)
327                 /sizeof(asn_DEF_maxLength_tags_11[0]) - 1, /* 1 */
328         asn_DEF_maxLength_tags_11,      /* Same as above */
329         sizeof(asn_DEF_maxLength_tags_11)
330                 /sizeof(asn_DEF_maxLength_tags_11[0]), /* 2 */
331         { &asn_OER_type_maxLength_constr_11, &asn_PER_type_maxLength_constr_11, NativeEnumerated_constraint },
332         0, 0,   /* Defined elsewhere */
333         &asn_SPC_maxLength_specs_11     /* Additional specs */
334 };
335
336 static asn_TYPE_member_t asn_MBR_transformPrecodingDisabled_13[] = {
337         { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID0),
338                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
339                 -1,     /* IMPLICIT tag at current level */
340                 &asn_DEF_NativeInteger,
341                 0,
342                 { &asn_OER_memb_scramblingID0_constr_14, &asn_PER_memb_scramblingID0_constr_14,  memb_scramblingID0_constraint_13 },
343                 0, 0, /* No default value */
344                 "scramblingID0"
345                 },
346         { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID1),
347                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
348                 -1,     /* IMPLICIT tag at current level */
349                 &asn_DEF_NativeInteger,
350                 0,
351                 { &asn_OER_memb_scramblingID1_constr_15, &asn_PER_memb_scramblingID1_constr_15,  memb_scramblingID1_constraint_13 },
352                 0, 0, /* No default value */
353                 "scramblingID1"
354                 },
355 };
356 static const int asn_MAP_transformPrecodingDisabled_oms_13[] = { 0, 1 };
357 static const ber_tlv_tag_t asn_DEF_transformPrecodingDisabled_tags_13[] = {
358         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
359         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
360 };
361 static const asn_TYPE_tag2member_t asn_MAP_transformPrecodingDisabled_tag2el_13[] = {
362     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scramblingID0 */
363     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scramblingID1 */
364 };
365 static asn_SEQUENCE_specifics_t asn_SPC_transformPrecodingDisabled_specs_13 = {
366         sizeof(struct DMRS_UplinkConfig__transformPrecodingDisabled),
367         offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, _asn_ctx),
368         asn_MAP_transformPrecodingDisabled_tag2el_13,
369         2,      /* Count of tags in the map */
370         asn_MAP_transformPrecodingDisabled_oms_13,      /* Optional members */
371         2, 0,   /* Root/Additions */
372         2,      /* First extension addition */
373 };
374 static /* Use -fall-defs-global to expose */
375 asn_TYPE_descriptor_t asn_DEF_transformPrecodingDisabled_13 = {
376         "transformPrecodingDisabled",
377         "transformPrecodingDisabled",
378         &asn_OP_SEQUENCE,
379         asn_DEF_transformPrecodingDisabled_tags_13,
380         sizeof(asn_DEF_transformPrecodingDisabled_tags_13)
381                 /sizeof(asn_DEF_transformPrecodingDisabled_tags_13[0]) - 1, /* 1 */
382         asn_DEF_transformPrecodingDisabled_tags_13,     /* Same as above */
383         sizeof(asn_DEF_transformPrecodingDisabled_tags_13)
384                 /sizeof(asn_DEF_transformPrecodingDisabled_tags_13[0]), /* 2 */
385         { 0, 0, SEQUENCE_constraint },
386         asn_MBR_transformPrecodingDisabled_13,
387         2,      /* Elements count */
388         &asn_SPC_transformPrecodingDisabled_specs_13    /* Additional specs */
389 };
390
391 static const asn_INTEGER_enum_map_t asn_MAP_sequenceGroupHopping_value2enum_19[] = {
392         { 0,    8,      "disabled" }
393 };
394 static const unsigned int asn_MAP_sequenceGroupHopping_enum2value_19[] = {
395         0       /* disabled(0) */
396 };
397 static const asn_INTEGER_specifics_t asn_SPC_sequenceGroupHopping_specs_19 = {
398         asn_MAP_sequenceGroupHopping_value2enum_19,     /* "tag" => N; sorted by tag */
399         asn_MAP_sequenceGroupHopping_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_sequenceGroupHopping_tags_19[] = {
407         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
408         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
409 };
410 static /* Use -fall-defs-global to expose */
411 asn_TYPE_descriptor_t asn_DEF_sequenceGroupHopping_19 = {
412         "sequenceGroupHopping",
413         "sequenceGroupHopping",
414         &asn_OP_NativeEnumerated,
415         asn_DEF_sequenceGroupHopping_tags_19,
416         sizeof(asn_DEF_sequenceGroupHopping_tags_19)
417                 /sizeof(asn_DEF_sequenceGroupHopping_tags_19[0]) - 1, /* 1 */
418         asn_DEF_sequenceGroupHopping_tags_19,   /* Same as above */
419         sizeof(asn_DEF_sequenceGroupHopping_tags_19)
420                 /sizeof(asn_DEF_sequenceGroupHopping_tags_19[0]), /* 2 */
421         { &asn_OER_type_sequenceGroupHopping_constr_19, &asn_PER_type_sequenceGroupHopping_constr_19, NativeEnumerated_constraint },
422         0, 0,   /* Defined elsewhere */
423         &asn_SPC_sequenceGroupHopping_specs_19  /* Additional specs */
424 };
425
426 static const asn_INTEGER_enum_map_t asn_MAP_sequenceHopping_value2enum_21[] = {
427         { 0,    7,      "enabled" }
428 };
429 static const unsigned int asn_MAP_sequenceHopping_enum2value_21[] = {
430         0       /* enabled(0) */
431 };
432 static const asn_INTEGER_specifics_t asn_SPC_sequenceHopping_specs_21 = {
433         asn_MAP_sequenceHopping_value2enum_21,  /* "tag" => N; sorted by tag */
434         asn_MAP_sequenceHopping_enum2value_21,  /* N => "tag"; sorted by N */
435         1,      /* Number of elements in the maps */
436         0,      /* Enumeration is not extensible */
437         1,      /* Strict enumeration */
438         0,      /* Native long size */
439         0
440 };
441 static const ber_tlv_tag_t asn_DEF_sequenceHopping_tags_21[] = {
442         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
443         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
444 };
445 static /* Use -fall-defs-global to expose */
446 asn_TYPE_descriptor_t asn_DEF_sequenceHopping_21 = {
447         "sequenceHopping",
448         "sequenceHopping",
449         &asn_OP_NativeEnumerated,
450         asn_DEF_sequenceHopping_tags_21,
451         sizeof(asn_DEF_sequenceHopping_tags_21)
452                 /sizeof(asn_DEF_sequenceHopping_tags_21[0]) - 1, /* 1 */
453         asn_DEF_sequenceHopping_tags_21,        /* Same as above */
454         sizeof(asn_DEF_sequenceHopping_tags_21)
455                 /sizeof(asn_DEF_sequenceHopping_tags_21[0]), /* 2 */
456         { &asn_OER_type_sequenceHopping_constr_21, &asn_PER_type_sequenceHopping_constr_21, NativeEnumerated_constraint },
457         0, 0,   /* Defined elsewhere */
458         &asn_SPC_sequenceHopping_specs_21       /* Additional specs */
459 };
460
461 static asn_TYPE_member_t asn_MBR_transformPrecodingEnabled_17[] = {
462         { ATF_POINTER, 3, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, nPUSCH_Identity),
463                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
464                 -1,     /* IMPLICIT tag at current level */
465                 &asn_DEF_NativeInteger,
466                 0,
467                 { &asn_OER_memb_nPUSCH_Identity_constr_18, &asn_PER_memb_nPUSCH_Identity_constr_18,  memb_nPUSCH_Identity_constraint_17 },
468                 0, 0, /* No default value */
469                 "nPUSCH-Identity"
470                 },
471         { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, sequenceGroupHopping),
472                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
473                 -1,     /* IMPLICIT tag at current level */
474                 &asn_DEF_sequenceGroupHopping_19,
475                 0,
476                 { 0, 0, 0 },
477                 0, 0, /* No default value */
478                 "sequenceGroupHopping"
479                 },
480         { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, sequenceHopping),
481                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
482                 -1,     /* IMPLICIT tag at current level */
483                 &asn_DEF_sequenceHopping_21,
484                 0,
485                 { 0, 0, 0 },
486                 0, 0, /* No default value */
487                 "sequenceHopping"
488                 },
489 };
490 static const int asn_MAP_transformPrecodingEnabled_oms_17[] = { 0, 1, 2 };
491 static const ber_tlv_tag_t asn_DEF_transformPrecodingEnabled_tags_17[] = {
492         (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
493         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
494 };
495 static const asn_TYPE_tag2member_t asn_MAP_transformPrecodingEnabled_tag2el_17[] = {
496     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nPUSCH-Identity */
497     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequenceGroupHopping */
498     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sequenceHopping */
499 };
500 static asn_SEQUENCE_specifics_t asn_SPC_transformPrecodingEnabled_specs_17 = {
501         sizeof(struct DMRS_UplinkConfig__transformPrecodingEnabled),
502         offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, _asn_ctx),
503         asn_MAP_transformPrecodingEnabled_tag2el_17,
504         3,      /* Count of tags in the map */
505         asn_MAP_transformPrecodingEnabled_oms_17,       /* Optional members */
506         3, 0,   /* Root/Additions */
507         3,      /* First extension addition */
508 };
509 static /* Use -fall-defs-global to expose */
510 asn_TYPE_descriptor_t asn_DEF_transformPrecodingEnabled_17 = {
511         "transformPrecodingEnabled",
512         "transformPrecodingEnabled",
513         &asn_OP_SEQUENCE,
514         asn_DEF_transformPrecodingEnabled_tags_17,
515         sizeof(asn_DEF_transformPrecodingEnabled_tags_17)
516                 /sizeof(asn_DEF_transformPrecodingEnabled_tags_17[0]) - 1, /* 1 */
517         asn_DEF_transformPrecodingEnabled_tags_17,      /* Same as above */
518         sizeof(asn_DEF_transformPrecodingEnabled_tags_17)
519                 /sizeof(asn_DEF_transformPrecodingEnabled_tags_17[0]), /* 2 */
520         { 0, 0, SEQUENCE_constraint },
521         asn_MBR_transformPrecodingEnabled_17,
522         3,      /* Elements count */
523         &asn_SPC_transformPrecodingEnabled_specs_17     /* Additional specs */
524 };
525
526 asn_TYPE_member_t asn_MBR_DMRS_UplinkConfig_1[] = {
527         { ATF_POINTER, 6, offsetof(struct DMRS_UplinkConfig, dmrs_Type),
528                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
529                 -1,     /* IMPLICIT tag at current level */
530                 &asn_DEF_dmrs_Type_2,
531                 0,
532                 { 0, 0, 0 },
533                 0, 0, /* No default value */
534                 "dmrs-Type"
535                 },
536         { ATF_POINTER, 5, offsetof(struct DMRS_UplinkConfig, dmrs_AdditionalPosition),
537                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
538                 -1,     /* IMPLICIT tag at current level */
539                 &asn_DEF_dmrs_AdditionalPosition_4,
540                 0,
541                 { 0, 0, 0 },
542                 0, 0, /* No default value */
543                 "dmrs-AdditionalPosition"
544                 },
545         { ATF_POINTER, 4, offsetof(struct DMRS_UplinkConfig, phaseTrackingRS),
546                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
547                 +1,     /* EXPLICIT tag at current level */
548                 &asn_DEF_phaseTrackingRS_8,
549                 0,
550                 { 0, 0, 0 },
551                 0, 0, /* No default value */
552                 "phaseTrackingRS"
553                 },
554         { ATF_POINTER, 3, offsetof(struct DMRS_UplinkConfig, maxLength),
555                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
556                 -1,     /* IMPLICIT tag at current level */
557                 &asn_DEF_maxLength_11,
558                 0,
559                 { 0, 0, 0 },
560                 0, 0, /* No default value */
561                 "maxLength"
562                 },
563         { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig, transformPrecodingDisabled),
564                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
565                 0,
566                 &asn_DEF_transformPrecodingDisabled_13,
567                 0,
568                 { 0, 0, 0 },
569                 0, 0, /* No default value */
570                 "transformPrecodingDisabled"
571                 },
572         { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig, transformPrecodingEnabled),
573                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
574                 0,
575                 &asn_DEF_transformPrecodingEnabled_17,
576                 0,
577                 { 0, 0, 0 },
578                 0, 0, /* No default value */
579                 "transformPrecodingEnabled"
580                 },
581 };
582 static const int asn_MAP_DMRS_UplinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 };
583 static const ber_tlv_tag_t asn_DEF_DMRS_UplinkConfig_tags_1[] = {
584         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
585 };
586 static const asn_TYPE_tag2member_t asn_MAP_DMRS_UplinkConfig_tag2el_1[] = {
587     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dmrs-Type */
588     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dmrs-AdditionalPosition */
589     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* phaseTrackingRS */
590     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLength */
591     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* transformPrecodingDisabled */
592     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* transformPrecodingEnabled */
593 };
594 asn_SEQUENCE_specifics_t asn_SPC_DMRS_UplinkConfig_specs_1 = {
595         sizeof(struct DMRS_UplinkConfig),
596         offsetof(struct DMRS_UplinkConfig, _asn_ctx),
597         asn_MAP_DMRS_UplinkConfig_tag2el_1,
598         6,      /* Count of tags in the map */
599         asn_MAP_DMRS_UplinkConfig_oms_1,        /* Optional members */
600         6, 0,   /* Root/Additions */
601         6,      /* First extension addition */
602 };
603 asn_TYPE_descriptor_t asn_DEF_DMRS_UplinkConfig = {
604         "DMRS-UplinkConfig",
605         "DMRS-UplinkConfig",
606         &asn_OP_SEQUENCE,
607         asn_DEF_DMRS_UplinkConfig_tags_1,
608         sizeof(asn_DEF_DMRS_UplinkConfig_tags_1)
609                 /sizeof(asn_DEF_DMRS_UplinkConfig_tags_1[0]), /* 1 */
610         asn_DEF_DMRS_UplinkConfig_tags_1,       /* Same as above */
611         sizeof(asn_DEF_DMRS_UplinkConfig_tags_1)
612                 /sizeof(asn_DEF_DMRS_UplinkConfig_tags_1[0]), /* 1 */
613         { 0, 0, SEQUENCE_constraint },
614         asn_MBR_DMRS_UplinkConfig_1,
615         6,      /* Elements count */
616         &asn_SPC_DMRS_UplinkConfig_specs_1      /* Additional specs */
617 };
618