c6ea6d8b730d8aef640b5a674ec7500a4cebccf0
[o-du/l2.git] / src / codec_utils / RRC / ControlResourceSet.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 "ControlResourceSet.h"
9
10 /*
11  * This type is implemented using NativeEnumerated,
12  * so here we adjust the DEF accordingly.
13  */
14 /*
15  * This type is implemented using NativeEnumerated,
16  * so here we adjust the DEF accordingly.
17  */
18 static int
19 memb_shiftIndex_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr,
20                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
21         long value;
22         
23         if(!sptr) {
24                 ASN__CTFAIL(app_key, td, sptr,
25                         "%s: value not given (%s:%d)",
26                         td->name, __FILE__, __LINE__);
27                 return -1;
28         }
29         
30         value = *(const long *)sptr;
31         
32         if((value >= 0 && value <= 274)) {
33                 /* Constraint check succeeded */
34                 return 0;
35         } else {
36                 ASN__CTFAIL(app_key, td, sptr,
37                         "%s: constraint failed (%s:%d)",
38                         td->name, __FILE__, __LINE__);
39                 return -1;
40         }
41 }
42
43 /*
44  * This type is implemented using NativeEnumerated,
45  * so here we adjust the DEF accordingly.
46  */
47 /*
48  * This type is implemented using NativeEnumerated,
49  * so here we adjust the DEF accordingly.
50  */
51 static int
52 memb_frequencyDomainResources_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
53                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
54         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
55         size_t size;
56         
57         if(!sptr) {
58                 ASN__CTFAIL(app_key, td, sptr,
59                         "%s: value not given (%s:%d)",
60                         td->name, __FILE__, __LINE__);
61                 return -1;
62         }
63         
64         if(st->size > 0) {
65                 /* Size in bits */
66                 size = 8 * st->size - (st->bits_unused & 0x07);
67         } else {
68                 size = 0;
69         }
70         
71         if((size == 45)) {
72                 /* Constraint check succeeded */
73                 return 0;
74         } else {
75                 ASN__CTFAIL(app_key, td, sptr,
76                         "%s: constraint failed (%s:%d)",
77                         td->name, __FILE__, __LINE__);
78                 return -1;
79         }
80 }
81
82 static int
83 memb_duration_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
84                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
85         long value;
86         
87         if(!sptr) {
88                 ASN__CTFAIL(app_key, td, sptr,
89                         "%s: value not given (%s:%d)",
90                         td->name, __FILE__, __LINE__);
91                 return -1;
92         }
93         
94         value = *(const long *)sptr;
95         
96         if((value >= 1 && value <= 3)) {
97                 /* Constraint check succeeded */
98                 return 0;
99         } else {
100                 ASN__CTFAIL(app_key, td, sptr,
101                         "%s: constraint failed (%s:%d)",
102                         td->name, __FILE__, __LINE__);
103                 return -1;
104         }
105 }
106
107 static int
108 memb_tci_StatesPDCCH_ToAddList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
109                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
110         size_t size;
111         
112         if(!sptr) {
113                 ASN__CTFAIL(app_key, td, sptr,
114                         "%s: value not given (%s:%d)",
115                         td->name, __FILE__, __LINE__);
116                 return -1;
117         }
118         
119         /* Determine the number of elements */
120         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
121         
122         if((size >= 1 && size <= 64)) {
123                 /* Perform validation of the inner elements */
124                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
125         } else {
126                 ASN__CTFAIL(app_key, td, sptr,
127                         "%s: constraint failed (%s:%d)",
128                         td->name, __FILE__, __LINE__);
129                 return -1;
130         }
131 }
132
133 static int
134 memb_tci_StatesPDCCH_ToReleaseList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
135                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
136         size_t size;
137         
138         if(!sptr) {
139                 ASN__CTFAIL(app_key, td, sptr,
140                         "%s: value not given (%s:%d)",
141                         td->name, __FILE__, __LINE__);
142                 return -1;
143         }
144         
145         /* Determine the number of elements */
146         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
147         
148         if((size >= 1 && size <= 64)) {
149                 /* Perform validation of the inner elements */
150                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
151         } else {
152                 ASN__CTFAIL(app_key, td, sptr,
153                         "%s: constraint failed (%s:%d)",
154                         td->name, __FILE__, __LINE__);
155                 return -1;
156         }
157 }
158
159 static int
160 memb_pdcch_DMRS_ScramblingID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
161                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
162         long value;
163         
164         if(!sptr) {
165                 ASN__CTFAIL(app_key, td, sptr,
166                         "%s: value not given (%s:%d)",
167                         td->name, __FILE__, __LINE__);
168                 return -1;
169         }
170         
171         value = *(const long *)sptr;
172         
173         if((value >= 0 && value <= 65535)) {
174                 /* Constraint check succeeded */
175                 return 0;
176         } else {
177                 ASN__CTFAIL(app_key, td, sptr,
178                         "%s: constraint failed (%s:%d)",
179                         td->name, __FILE__, __LINE__);
180                 return -1;
181         }
182 }
183
184 static asn_oer_constraints_t asn_OER_type_reg_BundleSize_constr_7 CC_NOTUSED = {
185         { 0, 0 },
186         -1};
187 static asn_per_constraints_t asn_PER_type_reg_BundleSize_constr_7 CC_NOTUSED = {
188         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
189         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
190         0, 0    /* No PER value map */
191 };
192 static asn_oer_constraints_t asn_OER_type_interleaverSize_constr_11 CC_NOTUSED = {
193         { 0, 0 },
194         -1};
195 static asn_per_constraints_t asn_PER_type_interleaverSize_constr_11 CC_NOTUSED = {
196         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
197         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
198         0, 0    /* No PER value map */
199 };
200 static asn_oer_constraints_t asn_OER_memb_shiftIndex_constr_15 CC_NOTUSED = {
201         { 2, 1 }        /* (0..274) */,
202         -1};
203 static asn_per_constraints_t asn_PER_memb_shiftIndex_constr_15 CC_NOTUSED = {
204         { APC_CONSTRAINED,       9,  9,  0,  274 }      /* (0..274) */,
205         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
206         0, 0    /* No PER value map */
207 };
208 static asn_oer_constraints_t asn_OER_type_cce_REG_MappingType_constr_5 CC_NOTUSED = {
209         { 0, 0 },
210         -1};
211 static asn_per_constraints_t asn_PER_type_cce_REG_MappingType_constr_5 CC_NOTUSED = {
212         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
213         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
214         0, 0    /* No PER value map */
215 };
216 static asn_oer_constraints_t asn_OER_type_precoderGranularity_constr_17 CC_NOTUSED = {
217         { 0, 0 },
218         -1};
219 static asn_per_constraints_t asn_PER_type_precoderGranularity_constr_17 CC_NOTUSED = {
220         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
221         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
222         0, 0    /* No PER value map */
223 };
224 static asn_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = {
225         { 0, 0 },
226         -1      /* (SIZE(1..64)) */};
227 static asn_per_constraints_t asn_PER_type_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = {
228         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
229         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
230         0, 0    /* No PER value map */
231 };
232 static asn_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = {
233         { 0, 0 },
234         -1      /* (SIZE(1..64)) */};
235 static asn_per_constraints_t asn_PER_type_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = {
236         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
237         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
238         0, 0    /* No PER value map */
239 };
240 static asn_oer_constraints_t asn_OER_type_tci_PresentInDCI_constr_24 CC_NOTUSED = {
241         { 0, 0 },
242         -1};
243 static asn_per_constraints_t asn_PER_type_tci_PresentInDCI_constr_24 CC_NOTUSED = {
244         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
245         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
246         0, 0    /* No PER value map */
247 };
248 static asn_oer_constraints_t asn_OER_memb_frequencyDomainResources_constr_3 CC_NOTUSED = {
249         { 0, 0 },
250         45      /* (SIZE(45..45)) */};
251 static asn_per_constraints_t asn_PER_memb_frequencyDomainResources_constr_3 CC_NOTUSED = {
252         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
253         { APC_CONSTRAINED,       0,  0,  45,  45 }      /* (SIZE(45..45)) */,
254         0, 0    /* No PER value map */
255 };
256 static asn_oer_constraints_t asn_OER_memb_duration_constr_4 CC_NOTUSED = {
257         { 1, 1 }        /* (1..3) */,
258         -1};
259 static asn_per_constraints_t asn_PER_memb_duration_constr_4 CC_NOTUSED = {
260         { APC_CONSTRAINED,       2,  2,  1,  3 }        /* (1..3) */,
261         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
262         0, 0    /* No PER value map */
263 };
264 static asn_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = {
265         { 0, 0 },
266         -1      /* (SIZE(1..64)) */};
267 static asn_per_constraints_t asn_PER_memb_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = {
268         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
269         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
270         0, 0    /* No PER value map */
271 };
272 static asn_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = {
273         { 0, 0 },
274         -1      /* (SIZE(1..64)) */};
275 static asn_per_constraints_t asn_PER_memb_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = {
276         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
277         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
278         0, 0    /* No PER value map */
279 };
280 static asn_oer_constraints_t asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26 CC_NOTUSED = {
281         { 2, 1 }        /* (0..65535) */,
282         -1};
283 static asn_per_constraints_t asn_PER_memb_pdcch_DMRS_ScramblingID_constr_26 CC_NOTUSED = {
284         { APC_CONSTRAINED,       16,  16,  0,  65535 }  /* (0..65535) */,
285         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
286         0, 0    /* No PER value map */
287 };
288 static const asn_INTEGER_enum_map_t asn_MAP_reg_BundleSize_value2enum_7[] = {
289         { 0,    2,      "n2" },
290         { 1,    2,      "n3" },
291         { 2,    2,      "n6" }
292 };
293 static const unsigned int asn_MAP_reg_BundleSize_enum2value_7[] = {
294         0,      /* n2(0) */
295         1,      /* n3(1) */
296         2       /* n6(2) */
297 };
298 static const asn_INTEGER_specifics_t asn_SPC_reg_BundleSize_specs_7 = {
299         asn_MAP_reg_BundleSize_value2enum_7,    /* "tag" => N; sorted by tag */
300         asn_MAP_reg_BundleSize_enum2value_7,    /* N => "tag"; sorted by N */
301         3,      /* Number of elements in the maps */
302         0,      /* Enumeration is not extensible */
303         1,      /* Strict enumeration */
304         0,      /* Native long size */
305         0
306 };
307 static const ber_tlv_tag_t asn_DEF_reg_BundleSize_tags_7[] = {
308         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
309         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
310 };
311 static /* Use -fall-defs-global to expose */
312 asn_TYPE_descriptor_t asn_DEF_reg_BundleSize_7 = {
313         "reg-BundleSize",
314         "reg-BundleSize",
315         &asn_OP_NativeEnumerated,
316         asn_DEF_reg_BundleSize_tags_7,
317         sizeof(asn_DEF_reg_BundleSize_tags_7)
318                 /sizeof(asn_DEF_reg_BundleSize_tags_7[0]) - 1, /* 1 */
319         asn_DEF_reg_BundleSize_tags_7,  /* Same as above */
320         sizeof(asn_DEF_reg_BundleSize_tags_7)
321                 /sizeof(asn_DEF_reg_BundleSize_tags_7[0]), /* 2 */
322         { &asn_OER_type_reg_BundleSize_constr_7, &asn_PER_type_reg_BundleSize_constr_7, NativeEnumerated_constraint },
323         0, 0,   /* Defined elsewhere */
324         &asn_SPC_reg_BundleSize_specs_7 /* Additional specs */
325 };
326
327 static const asn_INTEGER_enum_map_t asn_MAP_interleaverSize_value2enum_11[] = {
328         { 0,    2,      "n2" },
329         { 1,    2,      "n3" },
330         { 2,    2,      "n6" }
331 };
332 static const unsigned int asn_MAP_interleaverSize_enum2value_11[] = {
333         0,      /* n2(0) */
334         1,      /* n3(1) */
335         2       /* n6(2) */
336 };
337 static const asn_INTEGER_specifics_t asn_SPC_interleaverSize_specs_11 = {
338         asn_MAP_interleaverSize_value2enum_11,  /* "tag" => N; sorted by tag */
339         asn_MAP_interleaverSize_enum2value_11,  /* N => "tag"; sorted by N */
340         3,      /* Number of elements in the maps */
341         0,      /* Enumeration is not extensible */
342         1,      /* Strict enumeration */
343         0,      /* Native long size */
344         0
345 };
346 static const ber_tlv_tag_t asn_DEF_interleaverSize_tags_11[] = {
347         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
348         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
349 };
350 static /* Use -fall-defs-global to expose */
351 asn_TYPE_descriptor_t asn_DEF_interleaverSize_11 = {
352         "interleaverSize",
353         "interleaverSize",
354         &asn_OP_NativeEnumerated,
355         asn_DEF_interleaverSize_tags_11,
356         sizeof(asn_DEF_interleaverSize_tags_11)
357                 /sizeof(asn_DEF_interleaverSize_tags_11[0]) - 1, /* 1 */
358         asn_DEF_interleaverSize_tags_11,        /* Same as above */
359         sizeof(asn_DEF_interleaverSize_tags_11)
360                 /sizeof(asn_DEF_interleaverSize_tags_11[0]), /* 2 */
361         { &asn_OER_type_interleaverSize_constr_11, &asn_PER_type_interleaverSize_constr_11, NativeEnumerated_constraint },
362         0, 0,   /* Defined elsewhere */
363         &asn_SPC_interleaverSize_specs_11       /* Additional specs */
364 };
365
366 static asn_TYPE_member_t asn_MBR_interleaved_6[] = {
367         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, reg_BundleSize),
368                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
369                 -1,     /* IMPLICIT tag at current level */
370                 &asn_DEF_reg_BundleSize_7,
371                 0,
372                 { 0, 0, 0 },
373                 0, 0, /* No default value */
374                 "reg-BundleSize"
375                 },
376         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, interleaverSize),
377                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
378                 -1,     /* IMPLICIT tag at current level */
379                 &asn_DEF_interleaverSize_11,
380                 0,
381                 { 0, 0, 0 },
382                 0, 0, /* No default value */
383                 "interleaverSize"
384                 },
385         { ATF_POINTER, 1, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, shiftIndex),
386                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
387                 -1,     /* IMPLICIT tag at current level */
388                 &asn_DEF_NativeInteger,
389                 0,
390                 { &asn_OER_memb_shiftIndex_constr_15, &asn_PER_memb_shiftIndex_constr_15,  memb_shiftIndex_constraint_6 },
391                 0, 0, /* No default value */
392                 "shiftIndex"
393                 },
394 };
395 static const int asn_MAP_interleaved_oms_6[] = { 2 };
396 static const ber_tlv_tag_t asn_DEF_interleaved_tags_6[] = {
397         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
398         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
399 };
400 static const asn_TYPE_tag2member_t asn_MAP_interleaved_tag2el_6[] = {
401     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reg-BundleSize */
402     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interleaverSize */
403     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* shiftIndex */
404 };
405 static asn_SEQUENCE_specifics_t asn_SPC_interleaved_specs_6 = {
406         sizeof(struct ControlResourceSet__cce_REG_MappingType__interleaved),
407         offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, _asn_ctx),
408         asn_MAP_interleaved_tag2el_6,
409         3,      /* Count of tags in the map */
410         asn_MAP_interleaved_oms_6,      /* Optional members */
411         1, 0,   /* Root/Additions */
412         -1,     /* First extension addition */
413 };
414 static /* Use -fall-defs-global to expose */
415 asn_TYPE_descriptor_t asn_DEF_interleaved_6 = {
416         "interleaved",
417         "interleaved",
418         &asn_OP_SEQUENCE,
419         asn_DEF_interleaved_tags_6,
420         sizeof(asn_DEF_interleaved_tags_6)
421                 /sizeof(asn_DEF_interleaved_tags_6[0]) - 1, /* 1 */
422         asn_DEF_interleaved_tags_6,     /* Same as above */
423         sizeof(asn_DEF_interleaved_tags_6)
424                 /sizeof(asn_DEF_interleaved_tags_6[0]), /* 2 */
425         { 0, 0, SEQUENCE_constraint },
426         asn_MBR_interleaved_6,
427         3,      /* Elements count */
428         &asn_SPC_interleaved_specs_6    /* Additional specs */
429 };
430
431 static asn_TYPE_member_t asn_MBR_cce_REG_MappingType_5[] = {
432         { ATF_POINTER, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType, choice.interleaved),
433                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
434                 0,
435                 &asn_DEF_interleaved_6,
436                 0,
437                 { 0, 0, 0 },
438                 0, 0, /* No default value */
439                 "interleaved"
440                 },
441         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType, choice.nonInterleaved),
442                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
443                 -1,     /* IMPLICIT tag at current level */
444                 &asn_DEF_NULL,
445                 0,
446                 { 0, 0, 0 },
447                 0, 0, /* No default value */
448                 "nonInterleaved"
449                 },
450 };
451 static const asn_TYPE_tag2member_t asn_MAP_cce_REG_MappingType_tag2el_5[] = {
452     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interleaved */
453     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonInterleaved */
454 };
455 static asn_CHOICE_specifics_t asn_SPC_cce_REG_MappingType_specs_5 = {
456         sizeof(struct ControlResourceSet__cce_REG_MappingType),
457         offsetof(struct ControlResourceSet__cce_REG_MappingType, _asn_ctx),
458         offsetof(struct ControlResourceSet__cce_REG_MappingType, present),
459         sizeof(((struct ControlResourceSet__cce_REG_MappingType *)0)->present),
460         asn_MAP_cce_REG_MappingType_tag2el_5,
461         2,      /* Count of tags in the map */
462         0, 0,
463         -1      /* Extensions start */
464 };
465 static /* Use -fall-defs-global to expose */
466 asn_TYPE_descriptor_t asn_DEF_cce_REG_MappingType_5 = {
467         "cce-REG-MappingType",
468         "cce-REG-MappingType",
469         &asn_OP_CHOICE,
470         0,      /* No effective tags (pointer) */
471         0,      /* No effective tags (count) */
472         0,      /* No tags (pointer) */
473         0,      /* No tags (count) */
474         { &asn_OER_type_cce_REG_MappingType_constr_5, &asn_PER_type_cce_REG_MappingType_constr_5, CHOICE_constraint },
475         asn_MBR_cce_REG_MappingType_5,
476         2,      /* Elements count */
477         &asn_SPC_cce_REG_MappingType_specs_5    /* Additional specs */
478 };
479
480 static const asn_INTEGER_enum_map_t asn_MAP_precoderGranularity_value2enum_17[] = {
481         { 0,    16,     "sameAsREG-bundle" },
482         { 1,    16,     "allContiguousRBs" }
483 };
484 static const unsigned int asn_MAP_precoderGranularity_enum2value_17[] = {
485         1,      /* allContiguousRBs(1) */
486         0       /* sameAsREG-bundle(0) */
487 };
488 static const asn_INTEGER_specifics_t asn_SPC_precoderGranularity_specs_17 = {
489         asn_MAP_precoderGranularity_value2enum_17,      /* "tag" => N; sorted by tag */
490         asn_MAP_precoderGranularity_enum2value_17,      /* N => "tag"; sorted by N */
491         2,      /* Number of elements in the maps */
492         0,      /* Enumeration is not extensible */
493         1,      /* Strict enumeration */
494         0,      /* Native long size */
495         0
496 };
497 static const ber_tlv_tag_t asn_DEF_precoderGranularity_tags_17[] = {
498         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
499         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
500 };
501 static /* Use -fall-defs-global to expose */
502 asn_TYPE_descriptor_t asn_DEF_precoderGranularity_17 = {
503         "precoderGranularity",
504         "precoderGranularity",
505         &asn_OP_NativeEnumerated,
506         asn_DEF_precoderGranularity_tags_17,
507         sizeof(asn_DEF_precoderGranularity_tags_17)
508                 /sizeof(asn_DEF_precoderGranularity_tags_17[0]) - 1, /* 1 */
509         asn_DEF_precoderGranularity_tags_17,    /* Same as above */
510         sizeof(asn_DEF_precoderGranularity_tags_17)
511                 /sizeof(asn_DEF_precoderGranularity_tags_17[0]), /* 2 */
512         { &asn_OER_type_precoderGranularity_constr_17, &asn_PER_type_precoderGranularity_constr_17, NativeEnumerated_constraint },
513         0, 0,   /* Defined elsewhere */
514         &asn_SPC_precoderGranularity_specs_17   /* Additional specs */
515 };
516
517 static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToAddList_20[] = {
518         { ATF_POINTER, 0, 0,
519                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
520                 0,
521                 &asn_DEF_TCI_StateId,
522                 0,
523                 { 0, 0, 0 },
524                 0, 0, /* No default value */
525                 ""
526                 },
527 };
528 static const ber_tlv_tag_t asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[] = {
529         (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
530         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
531 };
532 static asn_SET_OF_specifics_t asn_SPC_tci_StatesPDCCH_ToAddList_specs_20 = {
533         sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList),
534         offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList, _asn_ctx),
535         0,      /* XER encoding is XMLDelimitedItemList */
536 };
537 static /* Use -fall-defs-global to expose */
538 asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToAddList_20 = {
539         "tci-StatesPDCCH-ToAddList",
540         "tci-StatesPDCCH-ToAddList",
541         &asn_OP_SEQUENCE_OF,
542         asn_DEF_tci_StatesPDCCH_ToAddList_tags_20,
543         sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20)
544                 /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]) - 1, /* 1 */
545         asn_DEF_tci_StatesPDCCH_ToAddList_tags_20,      /* Same as above */
546         sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20)
547                 /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]), /* 2 */
548         { &asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_type_tci_StatesPDCCH_ToAddList_constr_20, SEQUENCE_OF_constraint },
549         asn_MBR_tci_StatesPDCCH_ToAddList_20,
550         1,      /* Single element */
551         &asn_SPC_tci_StatesPDCCH_ToAddList_specs_20     /* Additional specs */
552 };
553
554 static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToReleaseList_22[] = {
555         { ATF_POINTER, 0, 0,
556                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
557                 0,
558                 &asn_DEF_TCI_StateId,
559                 0,
560                 { 0, 0, 0 },
561                 0, 0, /* No default value */
562                 ""
563                 },
564 };
565 static const ber_tlv_tag_t asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[] = {
566         (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
567         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
568 };
569 static asn_SET_OF_specifics_t asn_SPC_tci_StatesPDCCH_ToReleaseList_specs_22 = {
570         sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList),
571         offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList, _asn_ctx),
572         0,      /* XER encoding is XMLDelimitedItemList */
573 };
574 static /* Use -fall-defs-global to expose */
575 asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToReleaseList_22 = {
576         "tci-StatesPDCCH-ToReleaseList",
577         "tci-StatesPDCCH-ToReleaseList",
578         &asn_OP_SEQUENCE_OF,
579         asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22,
580         sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22)
581                 /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]) - 1, /* 1 */
582         asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22,  /* Same as above */
583         sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22)
584                 /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]), /* 2 */
585         { &asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_type_tci_StatesPDCCH_ToReleaseList_constr_22, SEQUENCE_OF_constraint },
586         asn_MBR_tci_StatesPDCCH_ToReleaseList_22,
587         1,      /* Single element */
588         &asn_SPC_tci_StatesPDCCH_ToReleaseList_specs_22 /* Additional specs */
589 };
590
591 static const asn_INTEGER_enum_map_t asn_MAP_tci_PresentInDCI_value2enum_24[] = {
592         { 0,    7,      "enabled" }
593 };
594 static const unsigned int asn_MAP_tci_PresentInDCI_enum2value_24[] = {
595         0       /* enabled(0) */
596 };
597 static const asn_INTEGER_specifics_t asn_SPC_tci_PresentInDCI_specs_24 = {
598         asn_MAP_tci_PresentInDCI_value2enum_24, /* "tag" => N; sorted by tag */
599         asn_MAP_tci_PresentInDCI_enum2value_24, /* N => "tag"; sorted by N */
600         1,      /* Number of elements in the maps */
601         0,      /* Enumeration is not extensible */
602         1,      /* Strict enumeration */
603         0,      /* Native long size */
604         0
605 };
606 static const ber_tlv_tag_t asn_DEF_tci_PresentInDCI_tags_24[] = {
607         (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
608         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
609 };
610 static /* Use -fall-defs-global to expose */
611 asn_TYPE_descriptor_t asn_DEF_tci_PresentInDCI_24 = {
612         "tci-PresentInDCI",
613         "tci-PresentInDCI",
614         &asn_OP_NativeEnumerated,
615         asn_DEF_tci_PresentInDCI_tags_24,
616         sizeof(asn_DEF_tci_PresentInDCI_tags_24)
617                 /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]) - 1, /* 1 */
618         asn_DEF_tci_PresentInDCI_tags_24,       /* Same as above */
619         sizeof(asn_DEF_tci_PresentInDCI_tags_24)
620                 /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]), /* 2 */
621         { &asn_OER_type_tci_PresentInDCI_constr_24, &asn_PER_type_tci_PresentInDCI_constr_24, NativeEnumerated_constraint },
622         0, 0,   /* Defined elsewhere */
623         &asn_SPC_tci_PresentInDCI_specs_24      /* Additional specs */
624 };
625
626 asn_TYPE_member_t asn_MBR_ControlResourceSet_1[] = {
627         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, controlResourceSetId),
628                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
629                 -1,     /* IMPLICIT tag at current level */
630                 &asn_DEF_ControlResourceSetId,
631                 0,
632                 { 0, 0, 0 },
633                 0, 0, /* No default value */
634                 "controlResourceSetId"
635                 },
636         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, frequencyDomainResources),
637                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
638                 -1,     /* IMPLICIT tag at current level */
639                 &asn_DEF_BIT_STRING,
640                 0,
641                 { &asn_OER_memb_frequencyDomainResources_constr_3, &asn_PER_memb_frequencyDomainResources_constr_3,  memb_frequencyDomainResources_constraint_1 },
642                 0, 0, /* No default value */
643                 "frequencyDomainResources"
644                 },
645         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, duration),
646                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
647                 -1,     /* IMPLICIT tag at current level */
648                 &asn_DEF_NativeInteger,
649                 0,
650                 { &asn_OER_memb_duration_constr_4, &asn_PER_memb_duration_constr_4,  memb_duration_constraint_1 },
651                 0, 0, /* No default value */
652                 "duration"
653                 },
654         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, cce_REG_MappingType),
655                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
656                 +1,     /* EXPLICIT tag at current level */
657                 &asn_DEF_cce_REG_MappingType_5,
658                 0,
659                 { 0, 0, 0 },
660                 0, 0, /* No default value */
661                 "cce-REG-MappingType"
662                 },
663         { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, precoderGranularity),
664                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
665                 -1,     /* IMPLICIT tag at current level */
666                 &asn_DEF_precoderGranularity_17,
667                 0,
668                 { 0, 0, 0 },
669                 0, 0, /* No default value */
670                 "precoderGranularity"
671                 },
672         { ATF_POINTER, 4, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToAddList),
673                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
674                 0,
675                 &asn_DEF_tci_StatesPDCCH_ToAddList_20,
676                 0,
677                 { &asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_memb_tci_StatesPDCCH_ToAddList_constr_20,  memb_tci_StatesPDCCH_ToAddList_constraint_1 },
678                 0, 0, /* No default value */
679                 "tci-StatesPDCCH-ToAddList"
680                 },
681         { ATF_POINTER, 3, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToReleaseList),
682                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
683                 0,
684                 &asn_DEF_tci_StatesPDCCH_ToReleaseList_22,
685                 0,
686                 { &asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_memb_tci_StatesPDCCH_ToReleaseList_constr_22,  memb_tci_StatesPDCCH_ToReleaseList_constraint_1 },
687                 0, 0, /* No default value */
688                 "tci-StatesPDCCH-ToReleaseList"
689                 },
690         { ATF_POINTER, 2, offsetof(struct ControlResourceSet, tci_PresentInDCI),
691                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
692                 -1,     /* IMPLICIT tag at current level */
693                 &asn_DEF_tci_PresentInDCI_24,
694                 0,
695                 { 0, 0, 0 },
696                 0, 0, /* No default value */
697                 "tci-PresentInDCI"
698                 },
699         { ATF_POINTER, 1, offsetof(struct ControlResourceSet, pdcch_DMRS_ScramblingID),
700                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
701                 -1,     /* IMPLICIT tag at current level */
702                 &asn_DEF_NativeInteger,
703                 0,
704                 { &asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26, &asn_PER_memb_pdcch_DMRS_ScramblingID_constr_26,  memb_pdcch_DMRS_ScramblingID_constraint_1 },
705                 0, 0, /* No default value */
706                 "pdcch-DMRS-ScramblingID"
707                 },
708 };
709 static const int asn_MAP_ControlResourceSet_oms_1[] = { 5, 6, 7, 8 };
710 static const ber_tlv_tag_t asn_DEF_ControlResourceSet_tags_1[] = {
711         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
712 };
713 static const asn_TYPE_tag2member_t asn_MAP_ControlResourceSet_tag2el_1[] = {
714     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlResourceSetId */
715     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyDomainResources */
716     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* duration */
717     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cce-REG-MappingType */
718     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* precoderGranularity */
719     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tci-StatesPDCCH-ToAddList */
720     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* tci-StatesPDCCH-ToReleaseList */
721     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* tci-PresentInDCI */
722     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* pdcch-DMRS-ScramblingID */
723 };
724 asn_SEQUENCE_specifics_t asn_SPC_ControlResourceSet_specs_1 = {
725         sizeof(struct ControlResourceSet),
726         offsetof(struct ControlResourceSet, _asn_ctx),
727         asn_MAP_ControlResourceSet_tag2el_1,
728         9,      /* Count of tags in the map */
729         asn_MAP_ControlResourceSet_oms_1,       /* Optional members */
730         4, 0,   /* Root/Additions */
731         9,      /* First extension addition */
732 };
733 asn_TYPE_descriptor_t asn_DEF_ControlResourceSet = {
734         "ControlResourceSet",
735         "ControlResourceSet",
736         &asn_OP_SEQUENCE,
737         asn_DEF_ControlResourceSet_tags_1,
738         sizeof(asn_DEF_ControlResourceSet_tags_1)
739                 /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */
740         asn_DEF_ControlResourceSet_tags_1,      /* Same as above */
741         sizeof(asn_DEF_ControlResourceSet_tags_1)
742                 /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */
743         { 0, 0, SEQUENCE_constraint },
744         asn_MBR_ControlResourceSet_1,
745         9,      /* Elements count */
746         &asn_SPC_ControlResourceSet_specs_1     /* Additional specs */
747 };
748