[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / CFRA.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 "CFRA.h"
9
10 #include "CFRA-SSB-Resource.h"
11 #include "CFRA-CSIRS-Resource.h"
12 /*
13  * This type is implemented using NativeEnumerated,
14  * so here we adjust the DEF accordingly.
15  */
16 static int
17 memb_ssb_ResourceList_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr,
18                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
19         size_t size;
20         
21         if(!sptr) {
22                 ASN__CTFAIL(app_key, td, sptr,
23                         "%s: value not given (%s:%d)",
24                         td->name, __FILE__, __LINE__);
25                 return -1;
26         }
27         
28         /* Determine the number of elements */
29         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
30         
31         if((size >= 1 && size <= 64)) {
32                 /* Perform validation of the inner elements */
33                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
34         } else {
35                 ASN__CTFAIL(app_key, td, sptr,
36                         "%s: constraint failed (%s:%d)",
37                         td->name, __FILE__, __LINE__);
38                 return -1;
39         }
40 }
41
42 static int
43 memb_ra_ssb_OccasionMaskIndex_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr,
44                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
45         long value;
46         
47         if(!sptr) {
48                 ASN__CTFAIL(app_key, td, sptr,
49                         "%s: value not given (%s:%d)",
50                         td->name, __FILE__, __LINE__);
51                 return -1;
52         }
53         
54         value = *(const long *)sptr;
55         
56         if((value >= 0 && value <= 15)) {
57                 /* Constraint check succeeded */
58                 return 0;
59         } else {
60                 ASN__CTFAIL(app_key, td, sptr,
61                         "%s: constraint failed (%s:%d)",
62                         td->name, __FILE__, __LINE__);
63                 return -1;
64         }
65 }
66
67 static int
68 memb_csirs_ResourceList_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr,
69                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
70         size_t size;
71         
72         if(!sptr) {
73                 ASN__CTFAIL(app_key, td, sptr,
74                         "%s: value not given (%s:%d)",
75                         td->name, __FILE__, __LINE__);
76                 return -1;
77         }
78         
79         /* Determine the number of elements */
80         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
81         
82         if((size >= 1 && size <= 96)) {
83                 /* Perform validation of the inner elements */
84                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
85         } else {
86                 ASN__CTFAIL(app_key, td, sptr,
87                         "%s: constraint failed (%s:%d)",
88                         td->name, __FILE__, __LINE__);
89                 return -1;
90         }
91 }
92
93 static int
94 memb_totalNumberOfRA_Preambles_v1530_constraint_23(const asn_TYPE_descriptor_t *td, const void *sptr,
95                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
96         long value;
97         
98         if(!sptr) {
99                 ASN__CTFAIL(app_key, td, sptr,
100                         "%s: value not given (%s:%d)",
101                         td->name, __FILE__, __LINE__);
102                 return -1;
103         }
104         
105         value = *(const long *)sptr;
106         
107         if((value >= 1 && value <= 63)) {
108                 /* Constraint check succeeded */
109                 return 0;
110         } else {
111                 ASN__CTFAIL(app_key, td, sptr,
112                         "%s: constraint failed (%s:%d)",
113                         td->name, __FILE__, __LINE__);
114                 return -1;
115         }
116 }
117
118 static asn_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = {
119         { 0, 0 },
120         -1};
121 static asn_per_constraints_t asn_PER_type_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = {
122         { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
123         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
124         0, 0    /* No PER value map */
125 };
126 static asn_oer_constraints_t asn_OER_type_ssb_ResourceList_constr_15 CC_NOTUSED = {
127         { 0, 0 },
128         -1      /* (SIZE(1..64)) */};
129 static asn_per_constraints_t asn_PER_type_ssb_ResourceList_constr_15 CC_NOTUSED = {
130         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
131         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
132         0, 0    /* No PER value map */
133 };
134 static asn_oer_constraints_t asn_OER_memb_ssb_ResourceList_constr_15 CC_NOTUSED = {
135         { 0, 0 },
136         -1      /* (SIZE(1..64)) */};
137 static asn_per_constraints_t asn_PER_memb_ssb_ResourceList_constr_15 CC_NOTUSED = {
138         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
139         { APC_CONSTRAINED,       6,  6,  1,  64 }       /* (SIZE(1..64)) */,
140         0, 0    /* No PER value map */
141 };
142 static asn_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_17 CC_NOTUSED = {
143         { 1, 1 }        /* (0..15) */,
144         -1};
145 static asn_per_constraints_t asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_17 CC_NOTUSED = {
146         { APC_CONSTRAINED,       4,  4,  0,  15 }       /* (0..15) */,
147         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
148         0, 0    /* No PER value map */
149 };
150 static asn_oer_constraints_t asn_OER_type_csirs_ResourceList_constr_19 CC_NOTUSED = {
151         { 0, 0 },
152         -1      /* (SIZE(1..96)) */};
153 static asn_per_constraints_t asn_PER_type_csirs_ResourceList_constr_19 CC_NOTUSED = {
154         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
155         { APC_CONSTRAINED,       7,  7,  1,  96 }       /* (SIZE(1..96)) */,
156         0, 0    /* No PER value map */
157 };
158 static asn_oer_constraints_t asn_OER_memb_csirs_ResourceList_constr_19 CC_NOTUSED = {
159         { 0, 0 },
160         -1      /* (SIZE(1..96)) */};
161 static asn_per_constraints_t asn_PER_memb_csirs_ResourceList_constr_19 CC_NOTUSED = {
162         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
163         { APC_CONSTRAINED,       7,  7,  1,  96 }       /* (SIZE(1..96)) */,
164         0, 0    /* No PER value map */
165 };
166 static asn_oer_constraints_t asn_OER_type_resources_constr_13 CC_NOTUSED = {
167         { 0, 0 },
168         -1};
169 static asn_per_constraints_t asn_PER_type_resources_constr_13 CC_NOTUSED = {
170         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
171         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
172         0, 0    /* No PER value map */
173 };
174 static asn_oer_constraints_t asn_OER_memb_totalNumberOfRA_Preambles_v1530_constr_24 CC_NOTUSED = {
175         { 1, 1 }        /* (1..63) */,
176         -1};
177 static asn_per_constraints_t asn_PER_memb_totalNumberOfRA_Preambles_v1530_constr_24 CC_NOTUSED = {
178         { APC_CONSTRAINED,       6,  6,  1,  63 }       /* (1..63) */,
179         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
180         0, 0    /* No PER value map */
181 };
182 static const asn_INTEGER_enum_map_t asn_MAP_ssb_perRACH_Occasion_value2enum_4[] = {
183         { 0,    9,      "oneEighth" },
184         { 1,    9,      "oneFourth" },
185         { 2,    7,      "oneHalf" },
186         { 3,    3,      "one" },
187         { 4,    3,      "two" },
188         { 5,    4,      "four" },
189         { 6,    5,      "eight" },
190         { 7,    7,      "sixteen" }
191 };
192 static const unsigned int asn_MAP_ssb_perRACH_Occasion_enum2value_4[] = {
193         6,      /* eight(6) */
194         5,      /* four(5) */
195         3,      /* one(3) */
196         0,      /* oneEighth(0) */
197         1,      /* oneFourth(1) */
198         2,      /* oneHalf(2) */
199         7,      /* sixteen(7) */
200         4       /* two(4) */
201 };
202 static const asn_INTEGER_specifics_t asn_SPC_ssb_perRACH_Occasion_specs_4 = {
203         asn_MAP_ssb_perRACH_Occasion_value2enum_4,      /* "tag" => N; sorted by tag */
204         asn_MAP_ssb_perRACH_Occasion_enum2value_4,      /* N => "tag"; sorted by N */
205         8,      /* Number of elements in the maps */
206         0,      /* Enumeration is not extensible */
207         1,      /* Strict enumeration */
208         0,      /* Native long size */
209         0
210 };
211 static const ber_tlv_tag_t asn_DEF_ssb_perRACH_Occasion_tags_4[] = {
212         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
213         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
214 };
215 static /* Use -fall-defs-global to expose */
216 asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_4 = {
217         "ssb-perRACH-Occasion",
218         "ssb-perRACH-Occasion",
219         &asn_OP_NativeEnumerated,
220         asn_DEF_ssb_perRACH_Occasion_tags_4,
221         sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4)
222                 /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */
223         asn_DEF_ssb_perRACH_Occasion_tags_4,    /* Same as above */
224         sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4)
225                 /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]), /* 2 */
226         { &asn_OER_type_ssb_perRACH_Occasion_constr_4, &asn_PER_type_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint },
227         0, 0,   /* Defined elsewhere */
228         &asn_SPC_ssb_perRACH_Occasion_specs_4   /* Additional specs */
229 };
230
231 static asn_TYPE_member_t asn_MBR_occasions_2[] = {
232         { ATF_NOFLAGS, 0, offsetof(struct CFRA__occasions, rach_ConfigGeneric),
233                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
234                 -1,     /* IMPLICIT tag at current level */
235                 &asn_DEF_RACH_ConfigGeneric,
236                 0,
237                 { 0, 0, 0 },
238                 0, 0, /* No default value */
239                 "rach-ConfigGeneric"
240                 },
241         { ATF_POINTER, 1, offsetof(struct CFRA__occasions, ssb_perRACH_Occasion),
242                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
243                 -1,     /* IMPLICIT tag at current level */
244                 &asn_DEF_ssb_perRACH_Occasion_4,
245                 0,
246                 { 0, 0, 0 },
247                 0, 0, /* No default value */
248                 "ssb-perRACH-Occasion"
249                 },
250 };
251 static const int asn_MAP_occasions_oms_2[] = { 1 };
252 static const ber_tlv_tag_t asn_DEF_occasions_tags_2[] = {
253         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
254         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
255 };
256 static const asn_TYPE_tag2member_t asn_MAP_occasions_tag2el_2[] = {
257     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-ConfigGeneric */
258     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-perRACH-Occasion */
259 };
260 static asn_SEQUENCE_specifics_t asn_SPC_occasions_specs_2 = {
261         sizeof(struct CFRA__occasions),
262         offsetof(struct CFRA__occasions, _asn_ctx),
263         asn_MAP_occasions_tag2el_2,
264         2,      /* Count of tags in the map */
265         asn_MAP_occasions_oms_2,        /* Optional members */
266         1, 0,   /* Root/Additions */
267         -1,     /* First extension addition */
268 };
269 static /* Use -fall-defs-global to expose */
270 asn_TYPE_descriptor_t asn_DEF_occasions_2 = {
271         "occasions",
272         "occasions",
273         &asn_OP_SEQUENCE,
274         asn_DEF_occasions_tags_2,
275         sizeof(asn_DEF_occasions_tags_2)
276                 /sizeof(asn_DEF_occasions_tags_2[0]) - 1, /* 1 */
277         asn_DEF_occasions_tags_2,       /* Same as above */
278         sizeof(asn_DEF_occasions_tags_2)
279                 /sizeof(asn_DEF_occasions_tags_2[0]), /* 2 */
280         { 0, 0, SEQUENCE_constraint },
281         asn_MBR_occasions_2,
282         2,      /* Elements count */
283         &asn_SPC_occasions_specs_2      /* Additional specs */
284 };
285
286 static asn_TYPE_member_t asn_MBR_ssb_ResourceList_15[] = {
287         { ATF_POINTER, 0, 0,
288                 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
289                 0,
290                 &asn_DEF_CFRA_SSB_Resource,
291                 0,
292                 { 0, 0, 0 },
293                 0, 0, /* No default value */
294                 ""
295                 },
296 };
297 static const ber_tlv_tag_t asn_DEF_ssb_ResourceList_tags_15[] = {
298         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
299         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
300 };
301 static asn_SET_OF_specifics_t asn_SPC_ssb_ResourceList_specs_15 = {
302         sizeof(struct CFRA__resources__ssb__ssb_ResourceList),
303         offsetof(struct CFRA__resources__ssb__ssb_ResourceList, _asn_ctx),
304         0,      /* XER encoding is XMLDelimitedItemList */
305 };
306 static /* Use -fall-defs-global to expose */
307 asn_TYPE_descriptor_t asn_DEF_ssb_ResourceList_15 = {
308         "ssb-ResourceList",
309         "ssb-ResourceList",
310         &asn_OP_SEQUENCE_OF,
311         asn_DEF_ssb_ResourceList_tags_15,
312         sizeof(asn_DEF_ssb_ResourceList_tags_15)
313                 /sizeof(asn_DEF_ssb_ResourceList_tags_15[0]) - 1, /* 1 */
314         asn_DEF_ssb_ResourceList_tags_15,       /* Same as above */
315         sizeof(asn_DEF_ssb_ResourceList_tags_15)
316                 /sizeof(asn_DEF_ssb_ResourceList_tags_15[0]), /* 2 */
317         { &asn_OER_type_ssb_ResourceList_constr_15, &asn_PER_type_ssb_ResourceList_constr_15, SEQUENCE_OF_constraint },
318         asn_MBR_ssb_ResourceList_15,
319         1,      /* Single element */
320         &asn_SPC_ssb_ResourceList_specs_15      /* Additional specs */
321 };
322
323 static asn_TYPE_member_t asn_MBR_ssb_14[] = {
324         { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__ssb, ssb_ResourceList),
325                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
326                 0,
327                 &asn_DEF_ssb_ResourceList_15,
328                 0,
329                 { &asn_OER_memb_ssb_ResourceList_constr_15, &asn_PER_memb_ssb_ResourceList_constr_15,  memb_ssb_ResourceList_constraint_14 },
330                 0, 0, /* No default value */
331                 "ssb-ResourceList"
332                 },
333         { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__ssb, ra_ssb_OccasionMaskIndex),
334                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
335                 -1,     /* IMPLICIT tag at current level */
336                 &asn_DEF_NativeInteger,
337                 0,
338                 { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_17, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_17,  memb_ra_ssb_OccasionMaskIndex_constraint_14 },
339                 0, 0, /* No default value */
340                 "ra-ssb-OccasionMaskIndex"
341                 },
342 };
343 static const ber_tlv_tag_t asn_DEF_ssb_tags_14[] = {
344         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
345         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
346 };
347 static const asn_TYPE_tag2member_t asn_MAP_ssb_tag2el_14[] = {
348     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-ResourceList */
349     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ra-ssb-OccasionMaskIndex */
350 };
351 static asn_SEQUENCE_specifics_t asn_SPC_ssb_specs_14 = {
352         sizeof(struct CFRA__resources__ssb),
353         offsetof(struct CFRA__resources__ssb, _asn_ctx),
354         asn_MAP_ssb_tag2el_14,
355         2,      /* Count of tags in the map */
356         0, 0, 0,        /* Optional elements (not needed) */
357         -1,     /* First extension addition */
358 };
359 static /* Use -fall-defs-global to expose */
360 asn_TYPE_descriptor_t asn_DEF_ssb_14 = {
361         "ssb",
362         "ssb",
363         &asn_OP_SEQUENCE,
364         asn_DEF_ssb_tags_14,
365         sizeof(asn_DEF_ssb_tags_14)
366                 /sizeof(asn_DEF_ssb_tags_14[0]) - 1, /* 1 */
367         asn_DEF_ssb_tags_14,    /* Same as above */
368         sizeof(asn_DEF_ssb_tags_14)
369                 /sizeof(asn_DEF_ssb_tags_14[0]), /* 2 */
370         { 0, 0, SEQUENCE_constraint },
371         asn_MBR_ssb_14,
372         2,      /* Elements count */
373         &asn_SPC_ssb_specs_14   /* Additional specs */
374 };
375
376 static asn_TYPE_member_t asn_MBR_csirs_ResourceList_19[] = {
377         { ATF_POINTER, 0, 0,
378                 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
379                 0,
380                 &asn_DEF_CFRA_CSIRS_Resource,
381                 0,
382                 { 0, 0, 0 },
383                 0, 0, /* No default value */
384                 ""
385                 },
386 };
387 static const ber_tlv_tag_t asn_DEF_csirs_ResourceList_tags_19[] = {
388         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
389         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
390 };
391 static asn_SET_OF_specifics_t asn_SPC_csirs_ResourceList_specs_19 = {
392         sizeof(struct CFRA__resources__csirs__csirs_ResourceList),
393         offsetof(struct CFRA__resources__csirs__csirs_ResourceList, _asn_ctx),
394         0,      /* XER encoding is XMLDelimitedItemList */
395 };
396 static /* Use -fall-defs-global to expose */
397 asn_TYPE_descriptor_t asn_DEF_csirs_ResourceList_19 = {
398         "csirs-ResourceList",
399         "csirs-ResourceList",
400         &asn_OP_SEQUENCE_OF,
401         asn_DEF_csirs_ResourceList_tags_19,
402         sizeof(asn_DEF_csirs_ResourceList_tags_19)
403                 /sizeof(asn_DEF_csirs_ResourceList_tags_19[0]) - 1, /* 1 */
404         asn_DEF_csirs_ResourceList_tags_19,     /* Same as above */
405         sizeof(asn_DEF_csirs_ResourceList_tags_19)
406                 /sizeof(asn_DEF_csirs_ResourceList_tags_19[0]), /* 2 */
407         { &asn_OER_type_csirs_ResourceList_constr_19, &asn_PER_type_csirs_ResourceList_constr_19, SEQUENCE_OF_constraint },
408         asn_MBR_csirs_ResourceList_19,
409         1,      /* Single element */
410         &asn_SPC_csirs_ResourceList_specs_19    /* Additional specs */
411 };
412
413 static asn_TYPE_member_t asn_MBR_csirs_18[] = {
414         { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__csirs, csirs_ResourceList),
415                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
416                 0,
417                 &asn_DEF_csirs_ResourceList_19,
418                 0,
419                 { &asn_OER_memb_csirs_ResourceList_constr_19, &asn_PER_memb_csirs_ResourceList_constr_19,  memb_csirs_ResourceList_constraint_18 },
420                 0, 0, /* No default value */
421                 "csirs-ResourceList"
422                 },
423         { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__csirs, rsrp_ThresholdCSI_RS),
424                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
425                 -1,     /* IMPLICIT tag at current level */
426                 &asn_DEF_RSRP_Range,
427                 0,
428                 { 0, 0, 0 },
429                 0, 0, /* No default value */
430                 "rsrp-ThresholdCSI-RS"
431                 },
432 };
433 static const ber_tlv_tag_t asn_DEF_csirs_tags_18[] = {
434         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
435         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
436 };
437 static const asn_TYPE_tag2member_t asn_MAP_csirs_tag2el_18[] = {
438     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csirs-ResourceList */
439     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsrp-ThresholdCSI-RS */
440 };
441 static asn_SEQUENCE_specifics_t asn_SPC_csirs_specs_18 = {
442         sizeof(struct CFRA__resources__csirs),
443         offsetof(struct CFRA__resources__csirs, _asn_ctx),
444         asn_MAP_csirs_tag2el_18,
445         2,      /* Count of tags in the map */
446         0, 0, 0,        /* Optional elements (not needed) */
447         -1,     /* First extension addition */
448 };
449 static /* Use -fall-defs-global to expose */
450 asn_TYPE_descriptor_t asn_DEF_csirs_18 = {
451         "csirs",
452         "csirs",
453         &asn_OP_SEQUENCE,
454         asn_DEF_csirs_tags_18,
455         sizeof(asn_DEF_csirs_tags_18)
456                 /sizeof(asn_DEF_csirs_tags_18[0]) - 1, /* 1 */
457         asn_DEF_csirs_tags_18,  /* Same as above */
458         sizeof(asn_DEF_csirs_tags_18)
459                 /sizeof(asn_DEF_csirs_tags_18[0]), /* 2 */
460         { 0, 0, SEQUENCE_constraint },
461         asn_MBR_csirs_18,
462         2,      /* Elements count */
463         &asn_SPC_csirs_specs_18 /* Additional specs */
464 };
465
466 static asn_TYPE_member_t asn_MBR_resources_13[] = {
467         { ATF_POINTER, 0, offsetof(struct CFRA__resources, choice.ssb),
468                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
469                 0,
470                 &asn_DEF_ssb_14,
471                 0,
472                 { 0, 0, 0 },
473                 0, 0, /* No default value */
474                 "ssb"
475                 },
476         { ATF_POINTER, 0, offsetof(struct CFRA__resources, choice.csirs),
477                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
478                 0,
479                 &asn_DEF_csirs_18,
480                 0,
481                 { 0, 0, 0 },
482                 0, 0, /* No default value */
483                 "csirs"
484                 },
485 };
486 static const asn_TYPE_tag2member_t asn_MAP_resources_tag2el_13[] = {
487     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb */
488     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csirs */
489 };
490 static asn_CHOICE_specifics_t asn_SPC_resources_specs_13 = {
491         sizeof(struct CFRA__resources),
492         offsetof(struct CFRA__resources, _asn_ctx),
493         offsetof(struct CFRA__resources, present),
494         sizeof(((struct CFRA__resources *)0)->present),
495         asn_MAP_resources_tag2el_13,
496         2,      /* Count of tags in the map */
497         0, 0,
498         -1      /* Extensions start */
499 };
500 static /* Use -fall-defs-global to expose */
501 asn_TYPE_descriptor_t asn_DEF_resources_13 = {
502         "resources",
503         "resources",
504         &asn_OP_CHOICE,
505         0,      /* No effective tags (pointer) */
506         0,      /* No effective tags (count) */
507         0,      /* No tags (pointer) */
508         0,      /* No tags (count) */
509         { &asn_OER_type_resources_constr_13, &asn_PER_type_resources_constr_13, CHOICE_constraint },
510         asn_MBR_resources_13,
511         2,      /* Elements count */
512         &asn_SPC_resources_specs_13     /* Additional specs */
513 };
514
515 static asn_TYPE_member_t asn_MBR_ext1_23[] = {
516         { ATF_POINTER, 1, offsetof(struct CFRA__ext1, totalNumberOfRA_Preambles_v1530),
517                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
518                 -1,     /* IMPLICIT tag at current level */
519                 &asn_DEF_NativeInteger,
520                 0,
521                 { &asn_OER_memb_totalNumberOfRA_Preambles_v1530_constr_24, &asn_PER_memb_totalNumberOfRA_Preambles_v1530_constr_24,  memb_totalNumberOfRA_Preambles_v1530_constraint_23 },
522                 0, 0, /* No default value */
523                 "totalNumberOfRA-Preambles-v1530"
524                 },
525 };
526 static const int asn_MAP_ext1_oms_23[] = { 0 };
527 static const ber_tlv_tag_t asn_DEF_ext1_tags_23[] = {
528         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
529         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
530 };
531 static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_23[] = {
532     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* totalNumberOfRA-Preambles-v1530 */
533 };
534 static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_23 = {
535         sizeof(struct CFRA__ext1),
536         offsetof(struct CFRA__ext1, _asn_ctx),
537         asn_MAP_ext1_tag2el_23,
538         1,      /* Count of tags in the map */
539         asn_MAP_ext1_oms_23,    /* Optional members */
540         1, 0,   /* Root/Additions */
541         -1,     /* First extension addition */
542 };
543 static /* Use -fall-defs-global to expose */
544 asn_TYPE_descriptor_t asn_DEF_ext1_23 = {
545         "ext1",
546         "ext1",
547         &asn_OP_SEQUENCE,
548         asn_DEF_ext1_tags_23,
549         sizeof(asn_DEF_ext1_tags_23)
550                 /sizeof(asn_DEF_ext1_tags_23[0]) - 1, /* 1 */
551         asn_DEF_ext1_tags_23,   /* Same as above */
552         sizeof(asn_DEF_ext1_tags_23)
553                 /sizeof(asn_DEF_ext1_tags_23[0]), /* 2 */
554         { 0, 0, SEQUENCE_constraint },
555         asn_MBR_ext1_23,
556         1,      /* Elements count */
557         &asn_SPC_ext1_specs_23  /* Additional specs */
558 };
559
560 asn_TYPE_member_t asn_MBR_CFRA_1[] = {
561         { ATF_POINTER, 1, offsetof(struct CFRA, occasions),
562                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
563                 0,
564                 &asn_DEF_occasions_2,
565                 0,
566                 { 0, 0, 0 },
567                 0, 0, /* No default value */
568                 "occasions"
569                 },
570         { ATF_NOFLAGS, 0, offsetof(struct CFRA, resources),
571                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
572                 +1,     /* EXPLICIT tag at current level */
573                 &asn_DEF_resources_13,
574                 0,
575                 { 0, 0, 0 },
576                 0, 0, /* No default value */
577                 "resources"
578                 },
579         { ATF_POINTER, 1, offsetof(struct CFRA, ext1),
580                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
581                 0,
582                 &asn_DEF_ext1_23,
583                 0,
584                 { 0, 0, 0 },
585                 0, 0, /* No default value */
586                 "ext1"
587                 },
588 };
589 static const int asn_MAP_CFRA_oms_1[] = { 0, 2 };
590 static const ber_tlv_tag_t asn_DEF_CFRA_tags_1[] = {
591         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
592 };
593 static const asn_TYPE_tag2member_t asn_MAP_CFRA_tag2el_1[] = {
594     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* occasions */
595     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resources */
596     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */
597 };
598 asn_SEQUENCE_specifics_t asn_SPC_CFRA_specs_1 = {
599         sizeof(struct CFRA),
600         offsetof(struct CFRA, _asn_ctx),
601         asn_MAP_CFRA_tag2el_1,
602         3,      /* Count of tags in the map */
603         asn_MAP_CFRA_oms_1,     /* Optional members */
604         1, 1,   /* Root/Additions */
605         2,      /* First extension addition */
606 };
607 asn_TYPE_descriptor_t asn_DEF_CFRA = {
608         "CFRA",
609         "CFRA",
610         &asn_OP_SEQUENCE,
611         asn_DEF_CFRA_tags_1,
612         sizeof(asn_DEF_CFRA_tags_1)
613                 /sizeof(asn_DEF_CFRA_tags_1[0]), /* 1 */
614         asn_DEF_CFRA_tags_1,    /* Same as above */
615         sizeof(asn_DEF_CFRA_tags_1)
616                 /sizeof(asn_DEF_CFRA_tags_1[0]), /* 1 */
617         { 0, 0, SEQUENCE_constraint },
618         asn_MBR_CFRA_1,
619         3,      /* Elements count */
620         &asn_SPC_CFRA_specs_1   /* Additional specs */
621 };
622