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`
8 #include "OverheatingAssistance.h"
11 memb_reducedCCsDL_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
12 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
16 ASN__CTFAIL(app_key, td, sptr,
17 "%s: value not given (%s:%d)",
18 td->name, __FILE__, __LINE__);
22 value = *(const long *)sptr;
24 if((value >= 0 && value <= 31)) {
25 /* Constraint check succeeded */
28 ASN__CTFAIL(app_key, td, sptr,
29 "%s: constraint failed (%s:%d)",
30 td->name, __FILE__, __LINE__);
36 memb_reducedCCsUL_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
37 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
41 ASN__CTFAIL(app_key, td, sptr,
42 "%s: value not given (%s:%d)",
43 td->name, __FILE__, __LINE__);
47 value = *(const long *)sptr;
49 if((value >= 0 && value <= 31)) {
50 /* Constraint check succeeded */
53 ASN__CTFAIL(app_key, td, sptr,
54 "%s: constraint failed (%s:%d)",
55 td->name, __FILE__, __LINE__);
60 static asn_oer_constraints_t asn_OER_memb_reducedCCsDL_constr_3 CC_NOTUSED = {
61 { 1, 1 } /* (0..31) */,
63 static asn_per_constraints_t asn_PER_memb_reducedCCsDL_constr_3 CC_NOTUSED = {
64 { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
65 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
66 0, 0 /* No PER value map */
68 static asn_oer_constraints_t asn_OER_memb_reducedCCsUL_constr_4 CC_NOTUSED = {
69 { 1, 1 } /* (0..31) */,
71 static asn_per_constraints_t asn_PER_memb_reducedCCsUL_constr_4 CC_NOTUSED = {
72 { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
73 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
74 0, 0 /* No PER value map */
76 static asn_TYPE_member_t asn_MBR_reducedMaxCCs_2[] = {
77 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxCCs, reducedCCsDL),
78 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
79 -1, /* IMPLICIT tag at current level */
80 &asn_DEF_NativeInteger,
82 { &asn_OER_memb_reducedCCsDL_constr_3, &asn_PER_memb_reducedCCsDL_constr_3, memb_reducedCCsDL_constraint_2 },
83 0, 0, /* No default value */
86 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxCCs, reducedCCsUL),
87 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
88 -1, /* IMPLICIT tag at current level */
89 &asn_DEF_NativeInteger,
91 { &asn_OER_memb_reducedCCsUL_constr_4, &asn_PER_memb_reducedCCsUL_constr_4, memb_reducedCCsUL_constraint_2 },
92 0, 0, /* No default value */
96 static const ber_tlv_tag_t asn_DEF_reducedMaxCCs_tags_2[] = {
97 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
98 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
100 static const asn_TYPE_tag2member_t asn_MAP_reducedMaxCCs_tag2el_2[] = {
101 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedCCsDL */
102 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedCCsUL */
104 static asn_SEQUENCE_specifics_t asn_SPC_reducedMaxCCs_specs_2 = {
105 sizeof(struct OverheatingAssistance__reducedMaxCCs),
106 offsetof(struct OverheatingAssistance__reducedMaxCCs, _asn_ctx),
107 asn_MAP_reducedMaxCCs_tag2el_2,
108 2, /* Count of tags in the map */
109 0, 0, 0, /* Optional elements (not needed) */
110 -1, /* First extension addition */
112 static /* Use -fall-defs-global to expose */
113 asn_TYPE_descriptor_t asn_DEF_reducedMaxCCs_2 = {
117 asn_DEF_reducedMaxCCs_tags_2,
118 sizeof(asn_DEF_reducedMaxCCs_tags_2)
119 /sizeof(asn_DEF_reducedMaxCCs_tags_2[0]) - 1, /* 1 */
120 asn_DEF_reducedMaxCCs_tags_2, /* Same as above */
121 sizeof(asn_DEF_reducedMaxCCs_tags_2)
122 /sizeof(asn_DEF_reducedMaxCCs_tags_2[0]), /* 2 */
123 { 0, 0, SEQUENCE_constraint },
124 asn_MBR_reducedMaxCCs_2,
125 2, /* Elements count */
126 &asn_SPC_reducedMaxCCs_specs_2 /* Additional specs */
129 static asn_TYPE_member_t asn_MBR_reducedMaxBW_FR1_5[] = {
130 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_DL),
131 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
132 -1, /* IMPLICIT tag at current level */
133 &asn_DEF_ReducedAggregatedBandwidth,
136 0, 0, /* No default value */
139 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_UL),
140 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
141 -1, /* IMPLICIT tag at current level */
142 &asn_DEF_ReducedAggregatedBandwidth,
145 0, 0, /* No default value */
149 static const ber_tlv_tag_t asn_DEF_reducedMaxBW_FR1_tags_5[] = {
150 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
151 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
153 static const asn_TYPE_tag2member_t asn_MAP_reducedMaxBW_FR1_tag2el_5[] = {
154 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedBW-FR1-DL */
155 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedBW-FR1-UL */
157 static asn_SEQUENCE_specifics_t asn_SPC_reducedMaxBW_FR1_specs_5 = {
158 sizeof(struct OverheatingAssistance__reducedMaxBW_FR1),
159 offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, _asn_ctx),
160 asn_MAP_reducedMaxBW_FR1_tag2el_5,
161 2, /* Count of tags in the map */
162 0, 0, 0, /* Optional elements (not needed) */
163 -1, /* First extension addition */
165 static /* Use -fall-defs-global to expose */
166 asn_TYPE_descriptor_t asn_DEF_reducedMaxBW_FR1_5 = {
170 asn_DEF_reducedMaxBW_FR1_tags_5,
171 sizeof(asn_DEF_reducedMaxBW_FR1_tags_5)
172 /sizeof(asn_DEF_reducedMaxBW_FR1_tags_5[0]) - 1, /* 1 */
173 asn_DEF_reducedMaxBW_FR1_tags_5, /* Same as above */
174 sizeof(asn_DEF_reducedMaxBW_FR1_tags_5)
175 /sizeof(asn_DEF_reducedMaxBW_FR1_tags_5[0]), /* 2 */
176 { 0, 0, SEQUENCE_constraint },
177 asn_MBR_reducedMaxBW_FR1_5,
178 2, /* Elements count */
179 &asn_SPC_reducedMaxBW_FR1_specs_5 /* Additional specs */
182 static asn_TYPE_member_t asn_MBR_reducedMaxBW_FR2_8[] = {
183 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_DL),
184 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
185 -1, /* IMPLICIT tag at current level */
186 &asn_DEF_ReducedAggregatedBandwidth,
189 0, 0, /* No default value */
192 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_UL),
193 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
194 -1, /* IMPLICIT tag at current level */
195 &asn_DEF_ReducedAggregatedBandwidth,
198 0, 0, /* No default value */
202 static const ber_tlv_tag_t asn_DEF_reducedMaxBW_FR2_tags_8[] = {
203 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
204 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
206 static const asn_TYPE_tag2member_t asn_MAP_reducedMaxBW_FR2_tag2el_8[] = {
207 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedBW-FR2-DL */
208 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedBW-FR2-UL */
210 static asn_SEQUENCE_specifics_t asn_SPC_reducedMaxBW_FR2_specs_8 = {
211 sizeof(struct OverheatingAssistance__reducedMaxBW_FR2),
212 offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, _asn_ctx),
213 asn_MAP_reducedMaxBW_FR2_tag2el_8,
214 2, /* Count of tags in the map */
215 0, 0, 0, /* Optional elements (not needed) */
216 -1, /* First extension addition */
218 static /* Use -fall-defs-global to expose */
219 asn_TYPE_descriptor_t asn_DEF_reducedMaxBW_FR2_8 = {
223 asn_DEF_reducedMaxBW_FR2_tags_8,
224 sizeof(asn_DEF_reducedMaxBW_FR2_tags_8)
225 /sizeof(asn_DEF_reducedMaxBW_FR2_tags_8[0]) - 1, /* 1 */
226 asn_DEF_reducedMaxBW_FR2_tags_8, /* Same as above */
227 sizeof(asn_DEF_reducedMaxBW_FR2_tags_8)
228 /sizeof(asn_DEF_reducedMaxBW_FR2_tags_8[0]), /* 2 */
229 { 0, 0, SEQUENCE_constraint },
230 asn_MBR_reducedMaxBW_FR2_8,
231 2, /* Elements count */
232 &asn_SPC_reducedMaxBW_FR2_specs_8 /* Additional specs */
235 static asn_TYPE_member_t asn_MBR_reducedMaxMIMO_LayersFR1_11[] = {
236 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_DL),
237 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
238 -1, /* IMPLICIT tag at current level */
239 &asn_DEF_MIMO_LayersDL,
242 0, 0, /* No default value */
243 "reducedMIMO-LayersFR1-DL"
245 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_UL),
246 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
247 -1, /* IMPLICIT tag at current level */
248 &asn_DEF_MIMO_LayersUL,
251 0, 0, /* No default value */
252 "reducedMIMO-LayersFR1-UL"
255 static const ber_tlv_tag_t asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[] = {
256 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
257 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
259 static const asn_TYPE_tag2member_t asn_MAP_reducedMaxMIMO_LayersFR1_tag2el_11[] = {
260 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMIMO-LayersFR1-DL */
261 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedMIMO-LayersFR1-UL */
263 static asn_SEQUENCE_specifics_t asn_SPC_reducedMaxMIMO_LayersFR1_specs_11 = {
264 sizeof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1),
265 offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, _asn_ctx),
266 asn_MAP_reducedMaxMIMO_LayersFR1_tag2el_11,
267 2, /* Count of tags in the map */
268 0, 0, 0, /* Optional elements (not needed) */
269 -1, /* First extension addition */
271 static /* Use -fall-defs-global to expose */
272 asn_TYPE_descriptor_t asn_DEF_reducedMaxMIMO_LayersFR1_11 = {
273 "reducedMaxMIMO-LayersFR1",
274 "reducedMaxMIMO-LayersFR1",
276 asn_DEF_reducedMaxMIMO_LayersFR1_tags_11,
277 sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11)
278 /sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[0]) - 1, /* 1 */
279 asn_DEF_reducedMaxMIMO_LayersFR1_tags_11, /* Same as above */
280 sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11)
281 /sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[0]), /* 2 */
282 { 0, 0, SEQUENCE_constraint },
283 asn_MBR_reducedMaxMIMO_LayersFR1_11,
284 2, /* Elements count */
285 &asn_SPC_reducedMaxMIMO_LayersFR1_specs_11 /* Additional specs */
288 static asn_TYPE_member_t asn_MBR_reducedMaxMIMO_LayersFR2_14[] = {
289 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_DL),
290 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
291 -1, /* IMPLICIT tag at current level */
292 &asn_DEF_MIMO_LayersDL,
295 0, 0, /* No default value */
296 "reducedMIMO-LayersFR2-DL"
298 { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_UL),
299 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
300 -1, /* IMPLICIT tag at current level */
301 &asn_DEF_MIMO_LayersUL,
304 0, 0, /* No default value */
305 "reducedMIMO-LayersFR2-UL"
308 static const ber_tlv_tag_t asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[] = {
309 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
310 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
312 static const asn_TYPE_tag2member_t asn_MAP_reducedMaxMIMO_LayersFR2_tag2el_14[] = {
313 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMIMO-LayersFR2-DL */
314 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedMIMO-LayersFR2-UL */
316 static asn_SEQUENCE_specifics_t asn_SPC_reducedMaxMIMO_LayersFR2_specs_14 = {
317 sizeof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2),
318 offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, _asn_ctx),
319 asn_MAP_reducedMaxMIMO_LayersFR2_tag2el_14,
320 2, /* Count of tags in the map */
321 0, 0, 0, /* Optional elements (not needed) */
322 -1, /* First extension addition */
324 static /* Use -fall-defs-global to expose */
325 asn_TYPE_descriptor_t asn_DEF_reducedMaxMIMO_LayersFR2_14 = {
326 "reducedMaxMIMO-LayersFR2",
327 "reducedMaxMIMO-LayersFR2",
329 asn_DEF_reducedMaxMIMO_LayersFR2_tags_14,
330 sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14)
331 /sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[0]) - 1, /* 1 */
332 asn_DEF_reducedMaxMIMO_LayersFR2_tags_14, /* Same as above */
333 sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14)
334 /sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[0]), /* 2 */
335 { 0, 0, SEQUENCE_constraint },
336 asn_MBR_reducedMaxMIMO_LayersFR2_14,
337 2, /* Elements count */
338 &asn_SPC_reducedMaxMIMO_LayersFR2_specs_14 /* Additional specs */
341 asn_TYPE_member_t asn_MBR_OverheatingAssistance_1[] = {
342 { ATF_POINTER, 5, offsetof(struct OverheatingAssistance, reducedMaxCCs),
343 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
345 &asn_DEF_reducedMaxCCs_2,
348 0, 0, /* No default value */
351 { ATF_POINTER, 4, offsetof(struct OverheatingAssistance, reducedMaxBW_FR1),
352 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
354 &asn_DEF_reducedMaxBW_FR1_5,
357 0, 0, /* No default value */
360 { ATF_POINTER, 3, offsetof(struct OverheatingAssistance, reducedMaxBW_FR2),
361 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
363 &asn_DEF_reducedMaxBW_FR2_8,
366 0, 0, /* No default value */
369 { ATF_POINTER, 2, offsetof(struct OverheatingAssistance, reducedMaxMIMO_LayersFR1),
370 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
372 &asn_DEF_reducedMaxMIMO_LayersFR1_11,
375 0, 0, /* No default value */
376 "reducedMaxMIMO-LayersFR1"
378 { ATF_POINTER, 1, offsetof(struct OverheatingAssistance, reducedMaxMIMO_LayersFR2),
379 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
381 &asn_DEF_reducedMaxMIMO_LayersFR2_14,
384 0, 0, /* No default value */
385 "reducedMaxMIMO-LayersFR2"
388 static const int asn_MAP_OverheatingAssistance_oms_1[] = { 0, 1, 2, 3, 4 };
389 static const ber_tlv_tag_t asn_DEF_OverheatingAssistance_tags_1[] = {
390 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
392 static const asn_TYPE_tag2member_t asn_MAP_OverheatingAssistance_tag2el_1[] = {
393 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMaxCCs */
394 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reducedMaxBW-FR1 */
395 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reducedMaxBW-FR2 */
396 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reducedMaxMIMO-LayersFR1 */
397 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* reducedMaxMIMO-LayersFR2 */
399 asn_SEQUENCE_specifics_t asn_SPC_OverheatingAssistance_specs_1 = {
400 sizeof(struct OverheatingAssistance),
401 offsetof(struct OverheatingAssistance, _asn_ctx),
402 asn_MAP_OverheatingAssistance_tag2el_1,
403 5, /* Count of tags in the map */
404 asn_MAP_OverheatingAssistance_oms_1, /* Optional members */
405 5, 0, /* Root/Additions */
406 -1, /* First extension addition */
408 asn_TYPE_descriptor_t asn_DEF_OverheatingAssistance = {
409 "OverheatingAssistance",
410 "OverheatingAssistance",
412 asn_DEF_OverheatingAssistance_tags_1,
413 sizeof(asn_DEF_OverheatingAssistance_tags_1)
414 /sizeof(asn_DEF_OverheatingAssistance_tags_1[0]), /* 1 */
415 asn_DEF_OverheatingAssistance_tags_1, /* Same as above */
416 sizeof(asn_DEF_OverheatingAssistance_tags_1)
417 /sizeof(asn_DEF_OverheatingAssistance_tags_1[0]), /* 1 */
418 { 0, 0, SEQUENCE_constraint },
419 asn_MBR_OverheatingAssistance_1,
420 5, /* Elements count */
421 &asn_SPC_OverheatingAssistance_specs_1 /* Additional specs */