[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / SIB2.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 "SIB2.h"
9
10 #include "ThresholdNR.h"
11 #include "MultiFrequencyBandListNR-SIB.h"
12 #include "SSB-MTC.h"
13 #include "SS-RSSI-Measurement.h"
14 #include "SSB-ToMeasure.h"
15 #include "SpeedStateScaleFactors.h"
16 /*
17  * This type is implemented using NativeEnumerated,
18  * so here we adjust the DEF accordingly.
19  */
20 /*
21  * This type is implemented using NativeEnumerated,
22  * so here we adjust the DEF accordingly.
23  */
24 /*
25  * This type is implemented using NativeEnumerated,
26  * so here we adjust the DEF accordingly.
27  */
28 static int
29 memb_nrofSS_BlocksToAverage_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
30                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
31         long value;
32         
33         if(!sptr) {
34                 ASN__CTFAIL(app_key, td, sptr,
35                         "%s: value not given (%s:%d)",
36                         td->name, __FILE__, __LINE__);
37                 return -1;
38         }
39         
40         value = *(const long *)sptr;
41         
42         if((value >= 2 && value <= 16)) {
43                 /* Constraint check succeeded */
44                 return 0;
45         } else {
46                 ASN__CTFAIL(app_key, td, sptr,
47                         "%s: constraint failed (%s:%d)",
48                         td->name, __FILE__, __LINE__);
49                 return -1;
50         }
51 }
52
53 static asn_oer_constraints_t asn_OER_type_q_Hyst_constr_6 CC_NOTUSED = {
54         { 0, 0 },
55         -1};
56 static asn_per_constraints_t asn_PER_type_q_Hyst_constr_6 CC_NOTUSED = {
57         { APC_CONSTRAINED,       4,  4,  0,  15 }       /* (0..15) */,
58         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
59         0, 0    /* No PER value map */
60 };
61 static asn_oer_constraints_t asn_OER_type_sf_Medium_constr_26 CC_NOTUSED = {
62         { 0, 0 },
63         -1};
64 static asn_per_constraints_t asn_PER_type_sf_Medium_constr_26 CC_NOTUSED = {
65         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
66         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
67         0, 0    /* No PER value map */
68 };
69 static asn_oer_constraints_t asn_OER_type_sf_High_constr_31 CC_NOTUSED = {
70         { 0, 0 },
71         -1};
72 static asn_per_constraints_t asn_PER_type_sf_High_constr_31 CC_NOTUSED = {
73         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
74         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
75         0, 0    /* No PER value map */
76 };
77 static asn_oer_constraints_t asn_OER_memb_nrofSS_BlocksToAverage_constr_3 CC_NOTUSED = {
78         { 1, 1 }        /* (2..16) */,
79         -1};
80 static asn_per_constraints_t asn_PER_memb_nrofSS_BlocksToAverage_constr_3 CC_NOTUSED = {
81         { APC_CONSTRAINED,       4,  4,  2,  16 }       /* (2..16) */,
82         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
83         0, 0    /* No PER value map */
84 };
85 static const asn_INTEGER_enum_map_t asn_MAP_q_Hyst_value2enum_6[] = {
86         { 0,    3,      "dB0" },
87         { 1,    3,      "dB1" },
88         { 2,    3,      "dB2" },
89         { 3,    3,      "dB3" },
90         { 4,    3,      "dB4" },
91         { 5,    3,      "dB5" },
92         { 6,    3,      "dB6" },
93         { 7,    3,      "dB8" },
94         { 8,    4,      "dB10" },
95         { 9,    4,      "dB12" },
96         { 10,   4,      "dB14" },
97         { 11,   4,      "dB16" },
98         { 12,   4,      "dB18" },
99         { 13,   4,      "dB20" },
100         { 14,   4,      "dB22" },
101         { 15,   4,      "dB24" }
102 };
103 static const unsigned int asn_MAP_q_Hyst_enum2value_6[] = {
104         0,      /* dB0(0) */
105         1,      /* dB1(1) */
106         8,      /* dB10(8) */
107         9,      /* dB12(9) */
108         10,     /* dB14(10) */
109         11,     /* dB16(11) */
110         12,     /* dB18(12) */
111         2,      /* dB2(2) */
112         13,     /* dB20(13) */
113         14,     /* dB22(14) */
114         15,     /* dB24(15) */
115         3,      /* dB3(3) */
116         4,      /* dB4(4) */
117         5,      /* dB5(5) */
118         6,      /* dB6(6) */
119         7       /* dB8(7) */
120 };
121 static const asn_INTEGER_specifics_t asn_SPC_q_Hyst_specs_6 = {
122         asn_MAP_q_Hyst_value2enum_6,    /* "tag" => N; sorted by tag */
123         asn_MAP_q_Hyst_enum2value_6,    /* N => "tag"; sorted by N */
124         16,     /* Number of elements in the maps */
125         0,      /* Enumeration is not extensible */
126         1,      /* Strict enumeration */
127         0,      /* Native long size */
128         0
129 };
130 static const ber_tlv_tag_t asn_DEF_q_Hyst_tags_6[] = {
131         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
132         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
133 };
134 static /* Use -fall-defs-global to expose */
135 asn_TYPE_descriptor_t asn_DEF_q_Hyst_6 = {
136         "q-Hyst",
137         "q-Hyst",
138         &asn_OP_NativeEnumerated,
139         asn_DEF_q_Hyst_tags_6,
140         sizeof(asn_DEF_q_Hyst_tags_6)
141                 /sizeof(asn_DEF_q_Hyst_tags_6[0]) - 1, /* 1 */
142         asn_DEF_q_Hyst_tags_6,  /* Same as above */
143         sizeof(asn_DEF_q_Hyst_tags_6)
144                 /sizeof(asn_DEF_q_Hyst_tags_6[0]), /* 2 */
145         { &asn_OER_type_q_Hyst_constr_6, &asn_PER_type_q_Hyst_constr_6, NativeEnumerated_constraint },
146         0, 0,   /* Defined elsewhere */
147         &asn_SPC_q_Hyst_specs_6 /* Additional specs */
148 };
149
150 static const asn_INTEGER_enum_map_t asn_MAP_sf_Medium_value2enum_26[] = {
151         { 0,    4,      "dB-6" },
152         { 1,    4,      "dB-4" },
153         { 2,    4,      "dB-2" },
154         { 3,    3,      "dB0" }
155 };
156 static const unsigned int asn_MAP_sf_Medium_enum2value_26[] = {
157         2,      /* dB-2(2) */
158         1,      /* dB-4(1) */
159         0,      /* dB-6(0) */
160         3       /* dB0(3) */
161 };
162 static const asn_INTEGER_specifics_t asn_SPC_sf_Medium_specs_26 = {
163         asn_MAP_sf_Medium_value2enum_26,        /* "tag" => N; sorted by tag */
164         asn_MAP_sf_Medium_enum2value_26,        /* N => "tag"; sorted by N */
165         4,      /* Number of elements in the maps */
166         0,      /* Enumeration is not extensible */
167         1,      /* Strict enumeration */
168         0,      /* Native long size */
169         0
170 };
171 static const ber_tlv_tag_t asn_DEF_sf_Medium_tags_26[] = {
172         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
173         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
174 };
175 static /* Use -fall-defs-global to expose */
176 asn_TYPE_descriptor_t asn_DEF_sf_Medium_26 = {
177         "sf-Medium",
178         "sf-Medium",
179         &asn_OP_NativeEnumerated,
180         asn_DEF_sf_Medium_tags_26,
181         sizeof(asn_DEF_sf_Medium_tags_26)
182                 /sizeof(asn_DEF_sf_Medium_tags_26[0]) - 1, /* 1 */
183         asn_DEF_sf_Medium_tags_26,      /* Same as above */
184         sizeof(asn_DEF_sf_Medium_tags_26)
185                 /sizeof(asn_DEF_sf_Medium_tags_26[0]), /* 2 */
186         { &asn_OER_type_sf_Medium_constr_26, &asn_PER_type_sf_Medium_constr_26, NativeEnumerated_constraint },
187         0, 0,   /* Defined elsewhere */
188         &asn_SPC_sf_Medium_specs_26     /* Additional specs */
189 };
190
191 static const asn_INTEGER_enum_map_t asn_MAP_sf_High_value2enum_31[] = {
192         { 0,    4,      "dB-6" },
193         { 1,    4,      "dB-4" },
194         { 2,    4,      "dB-2" },
195         { 3,    3,      "dB0" }
196 };
197 static const unsigned int asn_MAP_sf_High_enum2value_31[] = {
198         2,      /* dB-2(2) */
199         1,      /* dB-4(1) */
200         0,      /* dB-6(0) */
201         3       /* dB0(3) */
202 };
203 static const asn_INTEGER_specifics_t asn_SPC_sf_High_specs_31 = {
204         asn_MAP_sf_High_value2enum_31,  /* "tag" => N; sorted by tag */
205         asn_MAP_sf_High_enum2value_31,  /* N => "tag"; sorted by N */
206         4,      /* Number of elements in the maps */
207         0,      /* Enumeration is not extensible */
208         1,      /* Strict enumeration */
209         0,      /* Native long size */
210         0
211 };
212 static const ber_tlv_tag_t asn_DEF_sf_High_tags_31[] = {
213         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
214         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
215 };
216 static /* Use -fall-defs-global to expose */
217 asn_TYPE_descriptor_t asn_DEF_sf_High_31 = {
218         "sf-High",
219         "sf-High",
220         &asn_OP_NativeEnumerated,
221         asn_DEF_sf_High_tags_31,
222         sizeof(asn_DEF_sf_High_tags_31)
223                 /sizeof(asn_DEF_sf_High_tags_31[0]) - 1, /* 1 */
224         asn_DEF_sf_High_tags_31,        /* Same as above */
225         sizeof(asn_DEF_sf_High_tags_31)
226                 /sizeof(asn_DEF_sf_High_tags_31[0]), /* 2 */
227         { &asn_OER_type_sf_High_constr_31, &asn_PER_type_sf_High_constr_31, NativeEnumerated_constraint },
228         0, 0,   /* Defined elsewhere */
229         &asn_SPC_sf_High_specs_31       /* Additional specs */
230 };
231
232 static asn_TYPE_member_t asn_MBR_q_HystSF_25[] = {
233         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_Medium),
234                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
235                 -1,     /* IMPLICIT tag at current level */
236                 &asn_DEF_sf_Medium_26,
237                 0,
238                 { 0, 0, 0 },
239                 0, 0, /* No default value */
240                 "sf-Medium"
241                 },
242         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_High),
243                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
244                 -1,     /* IMPLICIT tag at current level */
245                 &asn_DEF_sf_High_31,
246                 0,
247                 { 0, 0, 0 },
248                 0, 0, /* No default value */
249                 "sf-High"
250                 },
251 };
252 static const ber_tlv_tag_t asn_DEF_q_HystSF_tags_25[] = {
253         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
254         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
255 };
256 static const asn_TYPE_tag2member_t asn_MAP_q_HystSF_tag2el_25[] = {
257     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sf-Medium */
258     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sf-High */
259 };
260 static asn_SEQUENCE_specifics_t asn_SPC_q_HystSF_specs_25 = {
261         sizeof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF),
262         offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, _asn_ctx),
263         asn_MAP_q_HystSF_tag2el_25,
264         2,      /* Count of tags in the map */
265         0, 0, 0,        /* Optional elements (not needed) */
266         -1,     /* First extension addition */
267 };
268 static /* Use -fall-defs-global to expose */
269 asn_TYPE_descriptor_t asn_DEF_q_HystSF_25 = {
270         "q-HystSF",
271         "q-HystSF",
272         &asn_OP_SEQUENCE,
273         asn_DEF_q_HystSF_tags_25,
274         sizeof(asn_DEF_q_HystSF_tags_25)
275                 /sizeof(asn_DEF_q_HystSF_tags_25[0]) - 1, /* 1 */
276         asn_DEF_q_HystSF_tags_25,       /* Same as above */
277         sizeof(asn_DEF_q_HystSF_tags_25)
278                 /sizeof(asn_DEF_q_HystSF_tags_25[0]), /* 2 */
279         { 0, 0, SEQUENCE_constraint },
280         asn_MBR_q_HystSF_25,
281         2,      /* Elements count */
282         &asn_SPC_q_HystSF_specs_25      /* Additional specs */
283 };
284
285 static asn_TYPE_member_t asn_MBR_speedStateReselectionPars_23[] = {
286         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, mobilityStateParameters),
287                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
288                 -1,     /* IMPLICIT tag at current level */
289                 &asn_DEF_MobilityStateParameters,
290                 0,
291                 { 0, 0, 0 },
292                 0, 0, /* No default value */
293                 "mobilityStateParameters"
294                 },
295         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, q_HystSF),
296                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
297                 0,
298                 &asn_DEF_q_HystSF_25,
299                 0,
300                 { 0, 0, 0 },
301                 0, 0, /* No default value */
302                 "q-HystSF"
303                 },
304 };
305 static const ber_tlv_tag_t asn_DEF_speedStateReselectionPars_tags_23[] = {
306         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
307         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
308 };
309 static const asn_TYPE_tag2member_t asn_MAP_speedStateReselectionPars_tag2el_23[] = {
310     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mobilityStateParameters */
311     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* q-HystSF */
312 };
313 static asn_SEQUENCE_specifics_t asn_SPC_speedStateReselectionPars_specs_23 = {
314         sizeof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars),
315         offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, _asn_ctx),
316         asn_MAP_speedStateReselectionPars_tag2el_23,
317         2,      /* Count of tags in the map */
318         0, 0, 0,        /* Optional elements (not needed) */
319         -1,     /* First extension addition */
320 };
321 static /* Use -fall-defs-global to expose */
322 asn_TYPE_descriptor_t asn_DEF_speedStateReselectionPars_23 = {
323         "speedStateReselectionPars",
324         "speedStateReselectionPars",
325         &asn_OP_SEQUENCE,
326         asn_DEF_speedStateReselectionPars_tags_23,
327         sizeof(asn_DEF_speedStateReselectionPars_tags_23)
328                 /sizeof(asn_DEF_speedStateReselectionPars_tags_23[0]) - 1, /* 1 */
329         asn_DEF_speedStateReselectionPars_tags_23,      /* Same as above */
330         sizeof(asn_DEF_speedStateReselectionPars_tags_23)
331                 /sizeof(asn_DEF_speedStateReselectionPars_tags_23[0]), /* 2 */
332         { 0, 0, SEQUENCE_constraint },
333         asn_MBR_speedStateReselectionPars_23,
334         2,      /* Elements count */
335         &asn_SPC_speedStateReselectionPars_specs_23     /* Additional specs */
336 };
337
338 static asn_TYPE_member_t asn_MBR_cellReselectionInfoCommon_2[] = {
339         { ATF_POINTER, 3, offsetof(struct SIB2__cellReselectionInfoCommon, nrofSS_BlocksToAverage),
340                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
341                 -1,     /* IMPLICIT tag at current level */
342                 &asn_DEF_NativeInteger,
343                 0,
344                 { &asn_OER_memb_nrofSS_BlocksToAverage_constr_3, &asn_PER_memb_nrofSS_BlocksToAverage_constr_3,  memb_nrofSS_BlocksToAverage_constraint_2 },
345                 0, 0, /* No default value */
346                 "nrofSS-BlocksToAverage"
347                 },
348         { ATF_POINTER, 2, offsetof(struct SIB2__cellReselectionInfoCommon, absThreshSS_BlocksConsolidation),
349                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
350                 -1,     /* IMPLICIT tag at current level */
351                 &asn_DEF_ThresholdNR,
352                 0,
353                 { 0, 0, 0 },
354                 0, 0, /* No default value */
355                 "absThreshSS-BlocksConsolidation"
356                 },
357         { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionInfoCommon, rangeToBestCell),
358                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
359                 -1,     /* IMPLICIT tag at current level */
360                 &asn_DEF_RangeToBestCell,
361                 0,
362                 { 0, 0, 0 },
363                 0, 0, /* No default value */
364                 "rangeToBestCell"
365                 },
366         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon, q_Hyst),
367                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
368                 -1,     /* IMPLICIT tag at current level */
369                 &asn_DEF_q_Hyst_6,
370                 0,
371                 { 0, 0, 0 },
372                 0, 0, /* No default value */
373                 "q-Hyst"
374                 },
375         { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionInfoCommon, speedStateReselectionPars),
376                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
377                 0,
378                 &asn_DEF_speedStateReselectionPars_23,
379                 0,
380                 { 0, 0, 0 },
381                 0, 0, /* No default value */
382                 "speedStateReselectionPars"
383                 },
384 };
385 static const int asn_MAP_cellReselectionInfoCommon_oms_2[] = { 0, 1, 2, 4 };
386 static const ber_tlv_tag_t asn_DEF_cellReselectionInfoCommon_tags_2[] = {
387         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
388         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
389 };
390 static const asn_TYPE_tag2member_t asn_MAP_cellReselectionInfoCommon_tag2el_2[] = {
391     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofSS-BlocksToAverage */
392     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* absThreshSS-BlocksConsolidation */
393     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rangeToBestCell */
394     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* q-Hyst */
395     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* speedStateReselectionPars */
396 };
397 static asn_SEQUENCE_specifics_t asn_SPC_cellReselectionInfoCommon_specs_2 = {
398         sizeof(struct SIB2__cellReselectionInfoCommon),
399         offsetof(struct SIB2__cellReselectionInfoCommon, _asn_ctx),
400         asn_MAP_cellReselectionInfoCommon_tag2el_2,
401         5,      /* Count of tags in the map */
402         asn_MAP_cellReselectionInfoCommon_oms_2,        /* Optional members */
403         4, 0,   /* Root/Additions */
404         5,      /* First extension addition */
405 };
406 static /* Use -fall-defs-global to expose */
407 asn_TYPE_descriptor_t asn_DEF_cellReselectionInfoCommon_2 = {
408         "cellReselectionInfoCommon",
409         "cellReselectionInfoCommon",
410         &asn_OP_SEQUENCE,
411         asn_DEF_cellReselectionInfoCommon_tags_2,
412         sizeof(asn_DEF_cellReselectionInfoCommon_tags_2)
413                 /sizeof(asn_DEF_cellReselectionInfoCommon_tags_2[0]) - 1, /* 1 */
414         asn_DEF_cellReselectionInfoCommon_tags_2,       /* Same as above */
415         sizeof(asn_DEF_cellReselectionInfoCommon_tags_2)
416                 /sizeof(asn_DEF_cellReselectionInfoCommon_tags_2[0]), /* 2 */
417         { 0, 0, SEQUENCE_constraint },
418         asn_MBR_cellReselectionInfoCommon_2,
419         5,      /* Elements count */
420         &asn_SPC_cellReselectionInfoCommon_specs_2      /* Additional specs */
421 };
422
423 static asn_TYPE_member_t asn_MBR_cellReselectionServingFreqInfo_37[] = {
424         { ATF_POINTER, 2, offsetof(struct SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchP),
425                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
426                 -1,     /* IMPLICIT tag at current level */
427                 &asn_DEF_ReselectionThreshold,
428                 0,
429                 { 0, 0, 0 },
430                 0, 0, /* No default value */
431                 "s-NonIntraSearchP"
432                 },
433         { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchQ),
434                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
435                 -1,     /* IMPLICIT tag at current level */
436                 &asn_DEF_ReselectionThresholdQ,
437                 0,
438                 { 0, 0, 0 },
439                 0, 0, /* No default value */
440                 "s-NonIntraSearchQ"
441                 },
442         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionServingFreqInfo, threshServingLowP),
443                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
444                 -1,     /* IMPLICIT tag at current level */
445                 &asn_DEF_ReselectionThreshold,
446                 0,
447                 { 0, 0, 0 },
448                 0, 0, /* No default value */
449                 "threshServingLowP"
450                 },
451         { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, threshServingLowQ),
452                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
453                 -1,     /* IMPLICIT tag at current level */
454                 &asn_DEF_ReselectionThresholdQ,
455                 0,
456                 { 0, 0, 0 },
457                 0, 0, /* No default value */
458                 "threshServingLowQ"
459                 },
460         { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionServingFreqInfo, cellReselectionPriority),
461                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
462                 -1,     /* IMPLICIT tag at current level */
463                 &asn_DEF_CellReselectionPriority,
464                 0,
465                 { 0, 0, 0 },
466                 0, 0, /* No default value */
467                 "cellReselectionPriority"
468                 },
469         { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, cellReselectionSubPriority),
470                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
471                 -1,     /* IMPLICIT tag at current level */
472                 &asn_DEF_CellReselectionSubPriority,
473                 0,
474                 { 0, 0, 0 },
475                 0, 0, /* No default value */
476                 "cellReselectionSubPriority"
477                 },
478 };
479 static const int asn_MAP_cellReselectionServingFreqInfo_oms_37[] = { 0, 1, 3, 5 };
480 static const ber_tlv_tag_t asn_DEF_cellReselectionServingFreqInfo_tags_37[] = {
481         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
482         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
483 };
484 static const asn_TYPE_tag2member_t asn_MAP_cellReselectionServingFreqInfo_tag2el_37[] = {
485     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NonIntraSearchP */
486     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s-NonIntraSearchQ */
487     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* threshServingLowP */
488     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* threshServingLowQ */
489     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cellReselectionPriority */
490     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* cellReselectionSubPriority */
491 };
492 static asn_SEQUENCE_specifics_t asn_SPC_cellReselectionServingFreqInfo_specs_37 = {
493         sizeof(struct SIB2__cellReselectionServingFreqInfo),
494         offsetof(struct SIB2__cellReselectionServingFreqInfo, _asn_ctx),
495         asn_MAP_cellReselectionServingFreqInfo_tag2el_37,
496         6,      /* Count of tags in the map */
497         asn_MAP_cellReselectionServingFreqInfo_oms_37,  /* Optional members */
498         4, 0,   /* Root/Additions */
499         6,      /* First extension addition */
500 };
501 static /* Use -fall-defs-global to expose */
502 asn_TYPE_descriptor_t asn_DEF_cellReselectionServingFreqInfo_37 = {
503         "cellReselectionServingFreqInfo",
504         "cellReselectionServingFreqInfo",
505         &asn_OP_SEQUENCE,
506         asn_DEF_cellReselectionServingFreqInfo_tags_37,
507         sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37)
508                 /sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37[0]) - 1, /* 1 */
509         asn_DEF_cellReselectionServingFreqInfo_tags_37, /* Same as above */
510         sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37)
511                 /sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37[0]), /* 2 */
512         { 0, 0, SEQUENCE_constraint },
513         asn_MBR_cellReselectionServingFreqInfo_37,
514         6,      /* Elements count */
515         &asn_SPC_cellReselectionServingFreqInfo_specs_37        /* Additional specs */
516 };
517
518 static asn_TYPE_member_t asn_MBR_ext1_60[] = {
519         { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo__ext1, t_ReselectionNR_SF),
520                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
521                 -1,     /* IMPLICIT tag at current level */
522                 &asn_DEF_SpeedStateScaleFactors,
523                 0,
524                 { 0, 0, 0 },
525                 0, 0, /* No default value */
526                 "t-ReselectionNR-SF"
527                 },
528 };
529 static const int asn_MAP_ext1_oms_60[] = { 0 };
530 static const ber_tlv_tag_t asn_DEF_ext1_tags_60[] = {
531         (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
532         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
533 };
534 static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_60[] = {
535     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* t-ReselectionNR-SF */
536 };
537 static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_60 = {
538         sizeof(struct SIB2__intraFreqCellReselectionInfo__ext1),
539         offsetof(struct SIB2__intraFreqCellReselectionInfo__ext1, _asn_ctx),
540         asn_MAP_ext1_tag2el_60,
541         1,      /* Count of tags in the map */
542         asn_MAP_ext1_oms_60,    /* Optional members */
543         1, 0,   /* Root/Additions */
544         -1,     /* First extension addition */
545 };
546 static /* Use -fall-defs-global to expose */
547 asn_TYPE_descriptor_t asn_DEF_ext1_60 = {
548         "ext1",
549         "ext1",
550         &asn_OP_SEQUENCE,
551         asn_DEF_ext1_tags_60,
552         sizeof(asn_DEF_ext1_tags_60)
553                 /sizeof(asn_DEF_ext1_tags_60[0]) - 1, /* 1 */
554         asn_DEF_ext1_tags_60,   /* Same as above */
555         sizeof(asn_DEF_ext1_tags_60)
556                 /sizeof(asn_DEF_ext1_tags_60[0]), /* 2 */
557         { 0, 0, SEQUENCE_constraint },
558         asn_MBR_ext1_60,
559         1,      /* Elements count */
560         &asn_SPC_ext1_specs_60  /* Additional specs */
561 };
562
563 static asn_TYPE_member_t asn_MBR_intraFreqCellReselectionInfo_45[] = {
564         { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_RxLevMin),
565                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
566                 -1,     /* IMPLICIT tag at current level */
567                 &asn_DEF_Q_RxLevMin,
568                 0,
569                 { 0, 0, 0 },
570                 0, 0, /* No default value */
571                 "q-RxLevMin"
572                 },
573         { ATF_POINTER, 2, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_RxLevMinSUL),
574                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
575                 -1,     /* IMPLICIT tag at current level */
576                 &asn_DEF_Q_RxLevMin,
577                 0,
578                 { 0, 0, 0 },
579                 0, 0, /* No default value */
580                 "q-RxLevMinSUL"
581                 },
582         { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_QualMin),
583                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
584                 -1,     /* IMPLICIT tag at current level */
585                 &asn_DEF_Q_QualMin,
586                 0,
587                 { 0, 0, 0 },
588                 0, 0, /* No default value */
589                 "q-QualMin"
590                 },
591         { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, s_IntraSearchP),
592                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
593                 -1,     /* IMPLICIT tag at current level */
594                 &asn_DEF_ReselectionThreshold,
595                 0,
596                 { 0, 0, 0 },
597                 0, 0, /* No default value */
598                 "s-IntraSearchP"
599                 },
600         { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, s_IntraSearchQ),
601                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
602                 -1,     /* IMPLICIT tag at current level */
603                 &asn_DEF_ReselectionThresholdQ,
604                 0,
605                 { 0, 0, 0 },
606                 0, 0, /* No default value */
607                 "s-IntraSearchQ"
608                 },
609         { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, t_ReselectionNR),
610                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
611                 -1,     /* IMPLICIT tag at current level */
612                 &asn_DEF_T_Reselection,
613                 0,
614                 { 0, 0, 0 },
615                 0, 0, /* No default value */
616                 "t-ReselectionNR"
617                 },
618         { ATF_POINTER, 6, offsetof(struct SIB2__intraFreqCellReselectionInfo, frequencyBandList),
619                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
620                 -1,     /* IMPLICIT tag at current level */
621                 &asn_DEF_MultiFrequencyBandListNR_SIB,
622                 0,
623                 { 0, 0, 0 },
624                 0, 0, /* No default value */
625                 "frequencyBandList"
626                 },
627         { ATF_POINTER, 5, offsetof(struct SIB2__intraFreqCellReselectionInfo, frequencyBandListSUL),
628                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
629                 -1,     /* IMPLICIT tag at current level */
630                 &asn_DEF_MultiFrequencyBandListNR_SIB,
631                 0,
632                 { 0, 0, 0 },
633                 0, 0, /* No default value */
634                 "frequencyBandListSUL"
635                 },
636         { ATF_POINTER, 4, offsetof(struct SIB2__intraFreqCellReselectionInfo, p_Max),
637                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
638                 -1,     /* IMPLICIT tag at current level */
639                 &asn_DEF_P_Max,
640                 0,
641                 { 0, 0, 0 },
642                 0, 0, /* No default value */
643                 "p-Max"
644                 },
645         { ATF_POINTER, 3, offsetof(struct SIB2__intraFreqCellReselectionInfo, smtc),
646                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
647                 -1,     /* IMPLICIT tag at current level */
648                 &asn_DEF_SSB_MTC,
649                 0,
650                 { 0, 0, 0 },
651                 0, 0, /* No default value */
652                 "smtc"
653                 },
654         { ATF_POINTER, 2, offsetof(struct SIB2__intraFreqCellReselectionInfo, ss_RSSI_Measurement),
655                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
656                 -1,     /* IMPLICIT tag at current level */
657                 &asn_DEF_SS_RSSI_Measurement,
658                 0,
659                 { 0, 0, 0 },
660                 0, 0, /* No default value */
661                 "ss-RSSI-Measurement"
662                 },
663         { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, ssb_ToMeasure),
664                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
665                 +1,     /* EXPLICIT tag at current level */
666                 &asn_DEF_SSB_ToMeasure,
667                 0,
668                 { 0, 0, 0 },
669                 0, 0, /* No default value */
670                 "ssb-ToMeasure"
671                 },
672         { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, deriveSSB_IndexFromCell),
673                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
674                 -1,     /* IMPLICIT tag at current level */
675                 &asn_DEF_BOOLEAN,
676                 0,
677                 { 0, 0, 0 },
678                 0, 0, /* No default value */
679                 "deriveSSB-IndexFromCell"
680                 },
681         { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, ext1),
682                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
683                 0,
684                 &asn_DEF_ext1_60,
685                 0,
686                 { 0, 0, 0 },
687                 0, 0, /* No default value */
688                 "ext1"
689                 },
690 };
691 static const int asn_MAP_intraFreqCellReselectionInfo_oms_45[] = { 1, 2, 4, 6, 7, 8, 9, 10, 11, 13 };
692 static const ber_tlv_tag_t asn_DEF_intraFreqCellReselectionInfo_tags_45[] = {
693         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
694         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
695 };
696 static const asn_TYPE_tag2member_t asn_MAP_intraFreqCellReselectionInfo_tag2el_45[] = {
697     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* q-RxLevMin */
698     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* q-RxLevMinSUL */
699     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-QualMin */
700     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s-IntraSearchP */
701     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s-IntraSearchQ */
702     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* t-ReselectionNR */
703     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* frequencyBandList */
704     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* frequencyBandListSUL */
705     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* p-Max */
706     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* smtc */
707     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ss-RSSI-Measurement */
708     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ssb-ToMeasure */
709     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* deriveSSB-IndexFromCell */
710     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* ext1 */
711 };
712 static asn_SEQUENCE_specifics_t asn_SPC_intraFreqCellReselectionInfo_specs_45 = {
713         sizeof(struct SIB2__intraFreqCellReselectionInfo),
714         offsetof(struct SIB2__intraFreqCellReselectionInfo, _asn_ctx),
715         asn_MAP_intraFreqCellReselectionInfo_tag2el_45,
716         14,     /* Count of tags in the map */
717         asn_MAP_intraFreqCellReselectionInfo_oms_45,    /* Optional members */
718         9, 1,   /* Root/Additions */
719         13,     /* First extension addition */
720 };
721 static /* Use -fall-defs-global to expose */
722 asn_TYPE_descriptor_t asn_DEF_intraFreqCellReselectionInfo_45 = {
723         "intraFreqCellReselectionInfo",
724         "intraFreqCellReselectionInfo",
725         &asn_OP_SEQUENCE,
726         asn_DEF_intraFreqCellReselectionInfo_tags_45,
727         sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45)
728                 /sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45[0]) - 1, /* 1 */
729         asn_DEF_intraFreqCellReselectionInfo_tags_45,   /* Same as above */
730         sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45)
731                 /sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45[0]), /* 2 */
732         { 0, 0, SEQUENCE_constraint },
733         asn_MBR_intraFreqCellReselectionInfo_45,
734         14,     /* Elements count */
735         &asn_SPC_intraFreqCellReselectionInfo_specs_45  /* Additional specs */
736 };
737
738 asn_TYPE_member_t asn_MBR_SIB2_1[] = {
739         { ATF_NOFLAGS, 0, offsetof(struct SIB2, cellReselectionInfoCommon),
740                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
741                 0,
742                 &asn_DEF_cellReselectionInfoCommon_2,
743                 0,
744                 { 0, 0, 0 },
745                 0, 0, /* No default value */
746                 "cellReselectionInfoCommon"
747                 },
748         { ATF_NOFLAGS, 0, offsetof(struct SIB2, cellReselectionServingFreqInfo),
749                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
750                 0,
751                 &asn_DEF_cellReselectionServingFreqInfo_37,
752                 0,
753                 { 0, 0, 0 },
754                 0, 0, /* No default value */
755                 "cellReselectionServingFreqInfo"
756                 },
757         { ATF_NOFLAGS, 0, offsetof(struct SIB2, intraFreqCellReselectionInfo),
758                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
759                 0,
760                 &asn_DEF_intraFreqCellReselectionInfo_45,
761                 0,
762                 { 0, 0, 0 },
763                 0, 0, /* No default value */
764                 "intraFreqCellReselectionInfo"
765                 },
766 };
767 static const ber_tlv_tag_t asn_DEF_SIB2_tags_1[] = {
768         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
769 };
770 static const asn_TYPE_tag2member_t asn_MAP_SIB2_tag2el_1[] = {
771     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellReselectionInfoCommon */
772     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellReselectionServingFreqInfo */
773     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* intraFreqCellReselectionInfo */
774 };
775 asn_SEQUENCE_specifics_t asn_SPC_SIB2_specs_1 = {
776         sizeof(struct SIB2),
777         offsetof(struct SIB2, _asn_ctx),
778         asn_MAP_SIB2_tag2el_1,
779         3,      /* Count of tags in the map */
780         0, 0, 0,        /* Optional elements (not needed) */
781         3,      /* First extension addition */
782 };
783 asn_TYPE_descriptor_t asn_DEF_SIB2 = {
784         "SIB2",
785         "SIB2",
786         &asn_OP_SEQUENCE,
787         asn_DEF_SIB2_tags_1,
788         sizeof(asn_DEF_SIB2_tags_1)
789                 /sizeof(asn_DEF_SIB2_tags_1[0]), /* 1 */
790         asn_DEF_SIB2_tags_1,    /* Same as above */
791         sizeof(asn_DEF_SIB2_tags_1)
792                 /sizeof(asn_DEF_SIB2_tags_1[0]), /* 1 */
793         { 0, 0, SEQUENCE_constraint },
794         asn_MBR_SIB2_1,
795         3,      /* Elements count */
796         &asn_SPC_SIB2_specs_1   /* Additional specs */
797 };
798