2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "../ASN1_Input/rrc_15_3_asn.asn1"
5 * `asn1c -D ../RRC_output_14Nov/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
8 #include "BeamFailureRecoveryConfig.h"
10 #include "RACH-ConfigGeneric.h"
11 #include "RA-Prioritization.h"
12 #include "PRACH-ResourceDedicatedBFR.h"
14 * This type is implemented using NativeEnumerated,
15 * so here we adjust the DEF accordingly.
18 * This type is implemented using NativeEnumerated,
19 * so here we adjust the DEF accordingly.
22 memb_rootSequenceIndex_BFR_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
23 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
27 ASN__CTFAIL(app_key, td, sptr,
28 "%s: value not given (%s:%d)",
29 td->name, __FILE__, __LINE__);
33 value = *(const long *)sptr;
35 if((value >= 0 && value <= 137)) {
36 /* Constraint check succeeded */
39 ASN__CTFAIL(app_key, td, sptr,
40 "%s: constraint failed (%s:%d)",
41 td->name, __FILE__, __LINE__);
47 memb_candidateBeamRSList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
48 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
52 ASN__CTFAIL(app_key, td, sptr,
53 "%s: value not given (%s:%d)",
54 td->name, __FILE__, __LINE__);
58 /* Determine the number of elements */
59 size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
61 if((size >= 1 && size <= 16)) {
62 /* Perform validation of the inner elements */
63 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
65 ASN__CTFAIL(app_key, td, sptr,
66 "%s: constraint failed (%s:%d)",
67 td->name, __FILE__, __LINE__);
73 memb_ra_ssb_OccasionMaskIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
74 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
78 ASN__CTFAIL(app_key, td, sptr,
79 "%s: value not given (%s:%d)",
80 td->name, __FILE__, __LINE__);
84 value = *(const long *)sptr;
86 if((value >= 0 && value <= 15)) {
87 /* Constraint check succeeded */
90 ASN__CTFAIL(app_key, td, sptr,
91 "%s: constraint failed (%s:%d)",
92 td->name, __FILE__, __LINE__);
97 static asn_oer_constraints_t asn_OER_type_candidateBeamRSList_constr_5 CC_NOTUSED = {
99 -1 /* (SIZE(1..16)) */};
100 static asn_per_constraints_t asn_PER_type_candidateBeamRSList_constr_5 CC_NOTUSED = {
101 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
102 { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */,
103 0, 0 /* No PER value map */
105 static asn_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_7 CC_NOTUSED = {
108 static asn_per_constraints_t asn_PER_type_ssb_perRACH_Occasion_constr_7 CC_NOTUSED = {
109 { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
110 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
111 0, 0 /* No PER value map */
113 static asn_oer_constraints_t asn_OER_type_beamFailureRecoveryTimer_constr_19 CC_NOTUSED = {
116 static asn_per_constraints_t asn_PER_type_beamFailureRecoveryTimer_constr_19 CC_NOTUSED = {
117 { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
118 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
119 0, 0 /* No PER value map */
121 static asn_oer_constraints_t asn_OER_memb_rootSequenceIndex_BFR_constr_2 CC_NOTUSED = {
122 { 1, 1 } /* (0..137) */,
124 static asn_per_constraints_t asn_PER_memb_rootSequenceIndex_BFR_constr_2 CC_NOTUSED = {
125 { APC_CONSTRAINED, 8, 8, 0, 137 } /* (0..137) */,
126 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
127 0, 0 /* No PER value map */
129 static asn_oer_constraints_t asn_OER_memb_candidateBeamRSList_constr_5 CC_NOTUSED = {
131 -1 /* (SIZE(1..16)) */};
132 static asn_per_constraints_t asn_PER_memb_candidateBeamRSList_constr_5 CC_NOTUSED = {
133 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
134 { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */,
135 0, 0 /* No PER value map */
137 static asn_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_16 CC_NOTUSED = {
138 { 1, 1 } /* (0..15) */,
140 static asn_per_constraints_t asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_16 CC_NOTUSED = {
141 { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
142 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
143 0, 0 /* No PER value map */
145 static asn_TYPE_member_t asn_MBR_candidateBeamRSList_5[] = {
147 -1 /* Ambiguous tag (CHOICE?) */,
149 &asn_DEF_PRACH_ResourceDedicatedBFR,
152 0, 0, /* No default value */
156 static const ber_tlv_tag_t asn_DEF_candidateBeamRSList_tags_5[] = {
157 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
158 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
160 static asn_SET_OF_specifics_t asn_SPC_candidateBeamRSList_specs_5 = {
161 sizeof(struct BeamFailureRecoveryConfig__candidateBeamRSList),
162 offsetof(struct BeamFailureRecoveryConfig__candidateBeamRSList, _asn_ctx),
163 2, /* XER encoding is XMLValueList */
165 static /* Use -fall-defs-global to expose */
166 asn_TYPE_descriptor_t asn_DEF_candidateBeamRSList_5 = {
167 "candidateBeamRSList",
168 "candidateBeamRSList",
170 asn_DEF_candidateBeamRSList_tags_5,
171 sizeof(asn_DEF_candidateBeamRSList_tags_5)
172 /sizeof(asn_DEF_candidateBeamRSList_tags_5[0]) - 1, /* 1 */
173 asn_DEF_candidateBeamRSList_tags_5, /* Same as above */
174 sizeof(asn_DEF_candidateBeamRSList_tags_5)
175 /sizeof(asn_DEF_candidateBeamRSList_tags_5[0]), /* 2 */
176 { &asn_OER_type_candidateBeamRSList_constr_5, &asn_PER_type_candidateBeamRSList_constr_5, SEQUENCE_OF_constraint },
177 asn_MBR_candidateBeamRSList_5,
178 1, /* Single element */
179 &asn_SPC_candidateBeamRSList_specs_5 /* Additional specs */
182 static const asn_INTEGER_enum_map_t asn_MAP_ssb_perRACH_Occasion_value2enum_7[] = {
183 { 0, 9, "oneEighth" },
184 { 1, 9, "oneFourth" },
192 static const unsigned int asn_MAP_ssb_perRACH_Occasion_enum2value_7[] = {
196 0, /* oneEighth(0) */
197 1, /* oneFourth(1) */
202 static const asn_INTEGER_specifics_t asn_SPC_ssb_perRACH_Occasion_specs_7 = {
203 asn_MAP_ssb_perRACH_Occasion_value2enum_7, /* "tag" => N; sorted by tag */
204 asn_MAP_ssb_perRACH_Occasion_enum2value_7, /* 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 */
211 static const ber_tlv_tag_t asn_DEF_ssb_perRACH_Occasion_tags_7[] = {
212 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
213 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
215 static /* Use -fall-defs-global to expose */
216 asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_7 = {
217 "ssb-perRACH-Occasion",
218 "ssb-perRACH-Occasion",
219 &asn_OP_NativeEnumerated,
220 asn_DEF_ssb_perRACH_Occasion_tags_7,
221 sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7)
222 /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7[0]) - 1, /* 1 */
223 asn_DEF_ssb_perRACH_Occasion_tags_7, /* Same as above */
224 sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7)
225 /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7[0]), /* 2 */
226 { &asn_OER_type_ssb_perRACH_Occasion_constr_7, &asn_PER_type_ssb_perRACH_Occasion_constr_7, NativeEnumerated_constraint },
227 0, 0, /* Defined elsewhere */
228 &asn_SPC_ssb_perRACH_Occasion_specs_7 /* Additional specs */
231 static const asn_INTEGER_enum_map_t asn_MAP_beamFailureRecoveryTimer_value2enum_19[] = {
241 static const unsigned int asn_MAP_beamFailureRecoveryTimer_enum2value_19[] = {
251 static const asn_INTEGER_specifics_t asn_SPC_beamFailureRecoveryTimer_specs_19 = {
252 asn_MAP_beamFailureRecoveryTimer_value2enum_19, /* "tag" => N; sorted by tag */
253 asn_MAP_beamFailureRecoveryTimer_enum2value_19, /* N => "tag"; sorted by N */
254 8, /* Number of elements in the maps */
255 0, /* Enumeration is not extensible */
256 1, /* Strict enumeration */
257 0, /* Native long size */
260 static const ber_tlv_tag_t asn_DEF_beamFailureRecoveryTimer_tags_19[] = {
261 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
262 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
264 static /* Use -fall-defs-global to expose */
265 asn_TYPE_descriptor_t asn_DEF_beamFailureRecoveryTimer_19 = {
266 "beamFailureRecoveryTimer",
267 "beamFailureRecoveryTimer",
268 &asn_OP_NativeEnumerated,
269 asn_DEF_beamFailureRecoveryTimer_tags_19,
270 sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19)
271 /sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19[0]) - 1, /* 1 */
272 asn_DEF_beamFailureRecoveryTimer_tags_19, /* Same as above */
273 sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19)
274 /sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19[0]), /* 2 */
275 { &asn_OER_type_beamFailureRecoveryTimer_constr_19, &asn_PER_type_beamFailureRecoveryTimer_constr_19, NativeEnumerated_constraint },
276 0, 0, /* Defined elsewhere */
277 &asn_SPC_beamFailureRecoveryTimer_specs_19 /* Additional specs */
280 static asn_TYPE_member_t asn_MBR_ext1_29[] = {
281 { ATF_POINTER, 1, offsetof(struct BeamFailureRecoveryConfig__ext1, msg1_SubcarrierSpacing_v1530),
282 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
283 -1, /* IMPLICIT tag at current level */
284 &asn_DEF_SubcarrierSpacing,
287 0, 0, /* No default value */
288 "msg1-SubcarrierSpacing-v1530"
291 static const int asn_MAP_ext1_oms_29[] = { 0 };
292 static const ber_tlv_tag_t asn_DEF_ext1_tags_29[] = {
293 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
294 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
296 static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_29[] = {
297 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* msg1-SubcarrierSpacing-v1530 */
299 static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_29 = {
300 sizeof(struct BeamFailureRecoveryConfig__ext1),
301 offsetof(struct BeamFailureRecoveryConfig__ext1, _asn_ctx),
302 asn_MAP_ext1_tag2el_29,
303 1, /* Count of tags in the map */
304 asn_MAP_ext1_oms_29, /* Optional members */
305 1, 0, /* Root/Additions */
306 -1, /* First extension addition */
308 static /* Use -fall-defs-global to expose */
309 asn_TYPE_descriptor_t asn_DEF_ext1_29 = {
313 asn_DEF_ext1_tags_29,
314 sizeof(asn_DEF_ext1_tags_29)
315 /sizeof(asn_DEF_ext1_tags_29[0]) - 1, /* 1 */
316 asn_DEF_ext1_tags_29, /* Same as above */
317 sizeof(asn_DEF_ext1_tags_29)
318 /sizeof(asn_DEF_ext1_tags_29[0]), /* 2 */
319 { 0, 0, SEQUENCE_constraint },
321 1, /* Elements count */
322 &asn_SPC_ext1_specs_29 /* Additional specs */
325 asn_TYPE_member_t asn_MBR_BeamFailureRecoveryConfig_1[] = {
326 { ATF_POINTER, 10, offsetof(struct BeamFailureRecoveryConfig, rootSequenceIndex_BFR),
327 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
328 -1, /* IMPLICIT tag at current level */
329 &asn_DEF_NativeInteger,
331 { &asn_OER_memb_rootSequenceIndex_BFR_constr_2, &asn_PER_memb_rootSequenceIndex_BFR_constr_2, memb_rootSequenceIndex_BFR_constraint_1 },
332 0, 0, /* No default value */
333 "rootSequenceIndex-BFR"
335 { ATF_POINTER, 9, offsetof(struct BeamFailureRecoveryConfig, rach_ConfigBFR),
336 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
337 -1, /* IMPLICIT tag at current level */
338 &asn_DEF_RACH_ConfigGeneric,
341 0, 0, /* No default value */
344 { ATF_POINTER, 8, offsetof(struct BeamFailureRecoveryConfig, rsrp_ThresholdSSB),
345 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
346 -1, /* IMPLICIT tag at current level */
350 0, 0, /* No default value */
353 { ATF_POINTER, 7, offsetof(struct BeamFailureRecoveryConfig, candidateBeamRSList),
354 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
356 &asn_DEF_candidateBeamRSList_5,
358 { &asn_OER_memb_candidateBeamRSList_constr_5, &asn_PER_memb_candidateBeamRSList_constr_5, memb_candidateBeamRSList_constraint_1 },
359 0, 0, /* No default value */
360 "candidateBeamRSList"
362 { ATF_POINTER, 6, offsetof(struct BeamFailureRecoveryConfig, ssb_perRACH_Occasion),
363 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
364 -1, /* IMPLICIT tag at current level */
365 &asn_DEF_ssb_perRACH_Occasion_7,
368 0, 0, /* No default value */
369 "ssb-perRACH-Occasion"
371 { ATF_POINTER, 5, offsetof(struct BeamFailureRecoveryConfig, ra_ssb_OccasionMaskIndex),
372 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
373 -1, /* IMPLICIT tag at current level */
374 &asn_DEF_NativeInteger,
376 { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_16, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_16, memb_ra_ssb_OccasionMaskIndex_constraint_1 },
377 0, 0, /* No default value */
378 "ra-ssb-OccasionMaskIndex"
380 { ATF_POINTER, 4, offsetof(struct BeamFailureRecoveryConfig, recoverySearchSpaceId),
381 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
382 -1, /* IMPLICIT tag at current level */
383 &asn_DEF_SearchSpaceId,
386 0, 0, /* No default value */
387 "recoverySearchSpaceId"
389 { ATF_POINTER, 3, offsetof(struct BeamFailureRecoveryConfig, ra_Prioritization),
390 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
391 -1, /* IMPLICIT tag at current level */
392 &asn_DEF_RA_Prioritization,
395 0, 0, /* No default value */
398 { ATF_POINTER, 2, offsetof(struct BeamFailureRecoveryConfig, beamFailureRecoveryTimer),
399 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
400 -1, /* IMPLICIT tag at current level */
401 &asn_DEF_beamFailureRecoveryTimer_19,
404 0, 0, /* No default value */
405 "beamFailureRecoveryTimer"
407 { ATF_POINTER, 1, offsetof(struct BeamFailureRecoveryConfig, ext1),
408 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
413 0, 0, /* No default value */
417 static const int asn_MAP_BeamFailureRecoveryConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
418 static const ber_tlv_tag_t asn_DEF_BeamFailureRecoveryConfig_tags_1[] = {
419 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
421 static const asn_TYPE_tag2member_t asn_MAP_BeamFailureRecoveryConfig_tag2el_1[] = {
422 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rootSequenceIndex-BFR */
423 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rach-ConfigBFR */
424 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rsrp-ThresholdSSB */
425 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* candidateBeamRSList */
426 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ssb-perRACH-Occasion */
427 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ra-ssb-OccasionMaskIndex */
428 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* recoverySearchSpaceId */
429 { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ra-Prioritization */
430 { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* beamFailureRecoveryTimer */
431 { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* ext1 */
433 asn_SEQUENCE_specifics_t asn_SPC_BeamFailureRecoveryConfig_specs_1 = {
434 sizeof(struct BeamFailureRecoveryConfig),
435 offsetof(struct BeamFailureRecoveryConfig, _asn_ctx),
436 asn_MAP_BeamFailureRecoveryConfig_tag2el_1,
437 10, /* Count of tags in the map */
438 asn_MAP_BeamFailureRecoveryConfig_oms_1, /* Optional members */
439 9, 1, /* Root/Additions */
440 9, /* First extension addition */
442 asn_TYPE_descriptor_t asn_DEF_BeamFailureRecoveryConfig = {
443 "BeamFailureRecoveryConfig",
444 "BeamFailureRecoveryConfig",
446 asn_DEF_BeamFailureRecoveryConfig_tags_1,
447 sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1)
448 /sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */
449 asn_DEF_BeamFailureRecoveryConfig_tags_1, /* Same as above */
450 sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1)
451 /sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */
452 { 0, 0, SEQUENCE_constraint },
453 asn_MBR_BeamFailureRecoveryConfig_1,
454 10, /* Elements count */
455 &asn_SPC_BeamFailureRecoveryConfig_specs_1 /* Additional specs */