X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fcodec_utils%2FSYSINFO%2FRACH-ConfigCommon.c;fp=src%2Fcodec_utils%2FSYSINFO%2FRACH-ConfigCommon.c;h=1e867510afabee3dc086380ee0598ed8d2ec7cc9;hb=3235ecfc7414aa0b72d0ad50db63ae8b5626045b;hp=0000000000000000000000000000000000000000;hpb=997e3f26d55352586a1d4d0c46c41a98452af88a;p=o-du%2Fl2.git diff --git a/src/codec_utils/SYSINFO/RACH-ConfigCommon.c b/src/codec_utils/SYSINFO/RACH-ConfigCommon.c new file mode 100644 index 000000000..1e867510a --- /dev/null +++ b/src/codec_utils/SYSINFO/RACH-ConfigCommon.c @@ -0,0 +1,1286 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../mib_sib1.asn1" + * `asn1c -D ./mib_sib_out/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RACH-ConfigCommon.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_four_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_eight_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_sixteen_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_numberOfRA_PreamblesGroupA_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_l839_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 837)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_l139_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 137)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_totalNumberOfRA_Preambles_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 63)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_oneEighth_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_oneEighth_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_oneFourth_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_oneFourth_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_oneHalf_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_oneHalf_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_one_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_one_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_two_constr_73 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_two_constr_73 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_four_constr_82 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_four_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_eight_constr_83 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_eight_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_sixteen_constr_84 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_sixteen_constr_84 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ra_Msg3SizeGroupA_constr_86 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ra_Msg3SizeGroupA_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_messagePowerOffsetGroupB_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_messagePowerOffsetGroupB_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_numberOfRA_PreamblesGroupA_constr_112 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ra_ContentionResolutionTimer_constr_113 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ra_ContentionResolutionTimer_constr_113 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_l839_constr_125 CC_NOTUSED = { + { 2, 1 } /* (0..837) */, + -1}; +static asn_per_constraints_t asn_PER_memb_l839_constr_125 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 837 } /* (0..837) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_l139_constr_126 CC_NOTUSED = { + { 1, 1 } /* (0..137) */, + -1}; +static asn_per_constraints_t asn_PER_memb_l139_constr_126 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 137 } /* (0..137) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_prach_RootSequenceIndex_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_prach_RootSequenceIndex_constr_124 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_restrictedSetConfig_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_restrictedSetConfig_constr_128 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_msg3_transformPrecoder_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_msg3_transformPrecoder_constr_132 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_totalNumberOfRA_Preambles_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_totalNumberOfRA_Preambles_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_oneEighth_value2enum_5[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_oneEighth_enum2value_5[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_oneEighth_specs_5 = { + asn_MAP_oneEighth_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_oneEighth_enum2value_5, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_oneEighth_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_oneEighth_5 = { + "oneEighth", + "oneEighth", + &asn_OP_NativeEnumerated, + asn_DEF_oneEighth_tags_5, + sizeof(asn_DEF_oneEighth_tags_5) + /sizeof(asn_DEF_oneEighth_tags_5[0]) - 1, /* 1 */ + asn_DEF_oneEighth_tags_5, /* Same as above */ + sizeof(asn_DEF_oneEighth_tags_5) + /sizeof(asn_DEF_oneEighth_tags_5[0]), /* 2 */ + { &asn_OER_type_oneEighth_constr_5, &asn_PER_type_oneEighth_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneEighth_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_oneFourth_value2enum_22[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_oneFourth_enum2value_22[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_oneFourth_specs_22 = { + asn_MAP_oneFourth_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_oneFourth_enum2value_22, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_oneFourth_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_oneFourth_22 = { + "oneFourth", + "oneFourth", + &asn_OP_NativeEnumerated, + asn_DEF_oneFourth_tags_22, + sizeof(asn_DEF_oneFourth_tags_22) + /sizeof(asn_DEF_oneFourth_tags_22[0]) - 1, /* 1 */ + asn_DEF_oneFourth_tags_22, /* Same as above */ + sizeof(asn_DEF_oneFourth_tags_22) + /sizeof(asn_DEF_oneFourth_tags_22[0]), /* 2 */ + { &asn_OER_type_oneFourth_constr_22, &asn_PER_type_oneFourth_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneFourth_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_oneHalf_value2enum_39[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_oneHalf_enum2value_39[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_oneHalf_specs_39 = { + asn_MAP_oneHalf_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_oneHalf_enum2value_39, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_oneHalf_tags_39[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_oneHalf_39 = { + "oneHalf", + "oneHalf", + &asn_OP_NativeEnumerated, + asn_DEF_oneHalf_tags_39, + sizeof(asn_DEF_oneHalf_tags_39) + /sizeof(asn_DEF_oneHalf_tags_39[0]) - 1, /* 1 */ + asn_DEF_oneHalf_tags_39, /* Same as above */ + sizeof(asn_DEF_oneHalf_tags_39) + /sizeof(asn_DEF_oneHalf_tags_39[0]), /* 2 */ + { &asn_OER_type_oneHalf_constr_39, &asn_PER_type_oneHalf_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneHalf_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_one_value2enum_56[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_one_enum2value_56[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_one_specs_56 = { + asn_MAP_one_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_one_enum2value_56, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_one_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_one_56 = { + "one", + "one", + &asn_OP_NativeEnumerated, + asn_DEF_one_tags_56, + sizeof(asn_DEF_one_tags_56) + /sizeof(asn_DEF_one_tags_56[0]) - 1, /* 1 */ + asn_DEF_one_tags_56, /* Same as above */ + sizeof(asn_DEF_one_tags_56) + /sizeof(asn_DEF_one_tags_56[0]), /* 2 */ + { &asn_OER_type_one_constr_56, &asn_PER_type_one_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_one_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_two_value2enum_73[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" } +}; +static const unsigned int asn_MAP_two_enum2value_73[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 0, /* n4(0) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_two_specs_73 = { + asn_MAP_two_value2enum_73, /* "tag" => N; sorted by tag */ + asn_MAP_two_enum2value_73, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_two_tags_73[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_two_73 = { + "two", + "two", + &asn_OP_NativeEnumerated, + asn_DEF_two_tags_73, + sizeof(asn_DEF_two_tags_73) + /sizeof(asn_DEF_two_tags_73[0]) - 1, /* 1 */ + asn_DEF_two_tags_73, /* Same as above */ + sizeof(asn_DEF_two_tags_73) + /sizeof(asn_DEF_two_tags_73[0]), /* 2 */ + { &asn_OER_type_two_constr_73, &asn_PER_type_two_constr_73, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_two_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneEighth), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneEighth_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneEighth" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneFourth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneFourth_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFourth" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneHalf), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneHalf_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneHalf" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.one), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_one_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "one" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.two), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_two_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "two" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.four), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_four_constr_82, &asn_PER_memb_four_constr_82, memb_four_constraint_4 }, + 0, 0, /* No default value */ + "four" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.eight), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_eight_constr_83, &asn_PER_memb_eight_constr_83, memb_eight_constraint_4 }, + 0, 0, /* No default value */ + "eight" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.sixteen), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sixteen_constr_84, &asn_PER_memb_sixteen_constr_84, memb_sixteen_constraint_4 }, + 0, 0, /* No default value */ + "sixteen" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneEighth */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oneFourth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* oneHalf */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* one */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* two */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* sixteen */ +}; +static asn_CHOICE_specifics_t asn_SPC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 = { + sizeof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, _asn_ctx), + offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, present), + sizeof(((struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB *)0)->present), + asn_MAP_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_tag2el_4, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4 = { + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB", + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, &asn_PER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, CHOICE_constraint }, + asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 8, /* Elements count */ + &asn_SPC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ra_Msg3SizeGroupA_value2enum_86[] = { + { 0, 3, "b56" }, + { 1, 4, "b144" }, + { 2, 4, "b208" }, + { 3, 4, "b256" }, + { 4, 4, "b282" }, + { 5, 4, "b480" }, + { 6, 4, "b640" }, + { 7, 4, "b800" }, + { 8, 5, "b1000" }, + { 9, 3, "b72" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ra_Msg3SizeGroupA_enum2value_86[] = { + 8, /* b1000(8) */ + 1, /* b144(1) */ + 2, /* b208(2) */ + 3, /* b256(3) */ + 4, /* b282(4) */ + 5, /* b480(5) */ + 0, /* b56(0) */ + 6, /* b640(6) */ + 9, /* b72(9) */ + 7, /* b800(7) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10 /* spare6(10) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ra_Msg3SizeGroupA_specs_86 = { + asn_MAP_ra_Msg3SizeGroupA_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_ra_Msg3SizeGroupA_enum2value_86, /* N => "tag"; sorted by N */ + 16, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ra_Msg3SizeGroupA_tags_86[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ra_Msg3SizeGroupA_86 = { + "ra-Msg3SizeGroupA", + "ra-Msg3SizeGroupA", + &asn_OP_NativeEnumerated, + asn_DEF_ra_Msg3SizeGroupA_tags_86, + sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]) - 1, /* 1 */ + asn_DEF_ra_Msg3SizeGroupA_tags_86, /* Same as above */ + sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]), /* 2 */ + { &asn_OER_type_ra_Msg3SizeGroupA_constr_86, &asn_PER_type_ra_Msg3SizeGroupA_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_Msg3SizeGroupA_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_messagePowerOffsetGroupB_value2enum_103[] = { + { 0, 13, "minusinfinity" }, + { 1, 3, "dB0" }, + { 2, 3, "dB5" }, + { 3, 3, "dB8" }, + { 4, 4, "dB10" }, + { 5, 4, "dB12" }, + { 6, 4, "dB15" }, + { 7, 4, "dB18" } +}; +static const unsigned int asn_MAP_messagePowerOffsetGroupB_enum2value_103[] = { + 1, /* dB0(1) */ + 4, /* dB10(4) */ + 5, /* dB12(5) */ + 6, /* dB15(6) */ + 7, /* dB18(7) */ + 2, /* dB5(2) */ + 3, /* dB8(3) */ + 0 /* minusinfinity(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_messagePowerOffsetGroupB_specs_103 = { + asn_MAP_messagePowerOffsetGroupB_value2enum_103, /* "tag" => N; sorted by tag */ + asn_MAP_messagePowerOffsetGroupB_enum2value_103, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_messagePowerOffsetGroupB_tags_103[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_messagePowerOffsetGroupB_103 = { + "messagePowerOffsetGroupB", + "messagePowerOffsetGroupB", + &asn_OP_NativeEnumerated, + asn_DEF_messagePowerOffsetGroupB_tags_103, + sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]) - 1, /* 1 */ + asn_DEF_messagePowerOffsetGroupB_tags_103, /* Same as above */ + sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]), /* 2 */ + { &asn_OER_type_messagePowerOffsetGroupB_constr_103, &asn_PER_type_messagePowerOffsetGroupB_constr_103, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_messagePowerOffsetGroupB_specs_103 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_groupBconfigured_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, ra_Msg3SizeGroupA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_Msg3SizeGroupA_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Msg3SizeGroupA" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, messagePowerOffsetGroupB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_messagePowerOffsetGroupB_103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messagePowerOffsetGroupB" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, numberOfRA_PreamblesGroupA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112, &asn_PER_memb_numberOfRA_PreamblesGroupA_constr_112, memb_numberOfRA_PreamblesGroupA_constraint_85 }, + 0, 0, /* No default value */ + "numberOfRA-PreamblesGroupA" + }, +}; +static const ber_tlv_tag_t asn_DEF_groupBconfigured_tags_85[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_groupBconfigured_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ra-Msg3SizeGroupA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messagePowerOffsetGroupB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* numberOfRA-PreamblesGroupA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_groupBconfigured_specs_85 = { + sizeof(struct RACH_ConfigCommon__groupBconfigured), + offsetof(struct RACH_ConfigCommon__groupBconfigured, _asn_ctx), + asn_MAP_groupBconfigured_tag2el_85, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_groupBconfigured_85 = { + "groupBconfigured", + "groupBconfigured", + &asn_OP_SEQUENCE, + asn_DEF_groupBconfigured_tags_85, + sizeof(asn_DEF_groupBconfigured_tags_85) + /sizeof(asn_DEF_groupBconfigured_tags_85[0]) - 1, /* 1 */ + asn_DEF_groupBconfigured_tags_85, /* Same as above */ + sizeof(asn_DEF_groupBconfigured_tags_85) + /sizeof(asn_DEF_groupBconfigured_tags_85[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_groupBconfigured_85, + 3, /* Elements count */ + &asn_SPC_groupBconfigured_specs_85 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ra_ContentionResolutionTimer_value2enum_113[] = { + { 0, 3, "sf8" }, + { 1, 4, "sf16" }, + { 2, 4, "sf24" }, + { 3, 4, "sf32" }, + { 4, 4, "sf40" }, + { 5, 4, "sf48" }, + { 6, 4, "sf56" }, + { 7, 4, "sf64" } +}; +static const unsigned int asn_MAP_ra_ContentionResolutionTimer_enum2value_113[] = { + 1, /* sf16(1) */ + 2, /* sf24(2) */ + 3, /* sf32(3) */ + 4, /* sf40(4) */ + 5, /* sf48(5) */ + 6, /* sf56(6) */ + 7, /* sf64(7) */ + 0 /* sf8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ra_ContentionResolutionTimer_specs_113 = { + asn_MAP_ra_ContentionResolutionTimer_value2enum_113, /* "tag" => N; sorted by tag */ + asn_MAP_ra_ContentionResolutionTimer_enum2value_113, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ra_ContentionResolutionTimer_tags_113[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ra_ContentionResolutionTimer_113 = { + "ra-ContentionResolutionTimer", + "ra-ContentionResolutionTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ra_ContentionResolutionTimer_tags_113, + sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]) - 1, /* 1 */ + asn_DEF_ra_ContentionResolutionTimer_tags_113, /* Same as above */ + sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]), /* 2 */ + { &asn_OER_type_ra_ContentionResolutionTimer_constr_113, &asn_PER_type_ra_ContentionResolutionTimer_constr_113, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_ContentionResolutionTimer_specs_113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_prach_RootSequenceIndex_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l839), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_l839_constr_125, &asn_PER_memb_l839_constr_125, memb_l839_constraint_124 }, + 0, 0, /* No default value */ + "l839" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l139), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_l139_constr_126, &asn_PER_memb_l139_constr_126, memb_l139_constraint_124 }, + 0, 0, /* No default value */ + "l139" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_prach_RootSequenceIndex_tag2el_124[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* l839 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* l139 */ +}; +static asn_CHOICE_specifics_t asn_SPC_prach_RootSequenceIndex_specs_124 = { + sizeof(struct RACH_ConfigCommon__prach_RootSequenceIndex), + offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, _asn_ctx), + offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, present), + sizeof(((struct RACH_ConfigCommon__prach_RootSequenceIndex *)0)->present), + asn_MAP_prach_RootSequenceIndex_tag2el_124, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_prach_RootSequenceIndex_124 = { + "prach-RootSequenceIndex", + "prach-RootSequenceIndex", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_prach_RootSequenceIndex_constr_124, &asn_PER_type_prach_RootSequenceIndex_constr_124, CHOICE_constraint }, + asn_MBR_prach_RootSequenceIndex_124, + 2, /* Elements count */ + &asn_SPC_prach_RootSequenceIndex_specs_124 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_restrictedSetConfig_value2enum_128[] = { + { 0, 15, "unrestrictedSet" }, + { 1, 18, "restrictedSetTypeA" }, + { 2, 18, "restrictedSetTypeB" } +}; +static const unsigned int asn_MAP_restrictedSetConfig_enum2value_128[] = { + 1, /* restrictedSetTypeA(1) */ + 2, /* restrictedSetTypeB(2) */ + 0 /* unrestrictedSet(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_restrictedSetConfig_specs_128 = { + asn_MAP_restrictedSetConfig_value2enum_128, /* "tag" => N; sorted by tag */ + asn_MAP_restrictedSetConfig_enum2value_128, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_restrictedSetConfig_tags_128[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_restrictedSetConfig_128 = { + "restrictedSetConfig", + "restrictedSetConfig", + &asn_OP_NativeEnumerated, + asn_DEF_restrictedSetConfig_tags_128, + sizeof(asn_DEF_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]) - 1, /* 1 */ + asn_DEF_restrictedSetConfig_tags_128, /* Same as above */ + sizeof(asn_DEF_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]), /* 2 */ + { &asn_OER_type_restrictedSetConfig_constr_128, &asn_PER_type_restrictedSetConfig_constr_128, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_restrictedSetConfig_specs_128 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_msg3_transformPrecoder_value2enum_132[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_msg3_transformPrecoder_enum2value_132[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_msg3_transformPrecoder_specs_132 = { + asn_MAP_msg3_transformPrecoder_value2enum_132, /* "tag" => N; sorted by tag */ + asn_MAP_msg3_transformPrecoder_enum2value_132, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_msg3_transformPrecoder_tags_132[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_msg3_transformPrecoder_132 = { + "msg3-transformPrecoder", + "msg3-transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_msg3_transformPrecoder_tags_132, + sizeof(asn_DEF_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]) - 1, /* 1 */ + asn_DEF_msg3_transformPrecoder_tags_132, /* Same as above */ + sizeof(asn_DEF_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]), /* 2 */ + { &asn_OER_type_msg3_transformPrecoder_constr_132, &asn_PER_type_msg3_transformPrecoder_constr_132, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_msg3_transformPrecoder_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RACH_ConfigCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, rach_ConfigGeneric), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigGeneric" + }, + { ATF_POINTER, 3, offsetof(struct RACH_ConfigCommon, totalNumberOfRA_Preambles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberOfRA_Preambles_constr_3, &asn_PER_memb_totalNumberOfRA_Preambles_constr_3, memb_totalNumberOfRA_Preambles_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberOfRA-Preambles" + }, + { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, groupBconfigured), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_groupBconfigured_85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBconfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, ra_ContentionResolutionTimer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_ContentionResolutionTimer_113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-ContentionResolutionTimer" + }, + { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB_SUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB-SUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, prach_RootSequenceIndex), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_prach_RootSequenceIndex_124, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prach-RootSequenceIndex" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg1_SubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-SubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, restrictedSetConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_restrictedSetConfig_128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictedSetConfig" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg3_transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_msg3_transformPrecoder_132, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg3-transformPrecoder" + }, +}; +static const int asn_MAP_RACH_ConfigCommon_oms_1[] = { 1, 2, 3, 5, 6, 8, 10 }; +static const ber_tlv_tag_t asn_DEF_RACH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RACH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-ConfigGeneric */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* totalNumberOfRA-Preambles */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ssb-perRACH-OccasionAndCB-PreamblesPerSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* groupBconfigured */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ra-ContentionResolutionTimer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rsrp-ThresholdSSB */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rsrp-ThresholdSSB-SUL */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* prach-RootSequenceIndex */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* msg1-SubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* restrictedSetConfig */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* msg3-transformPrecoder */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigCommon_specs_1 = { + sizeof(struct RACH_ConfigCommon), + offsetof(struct RACH_ConfigCommon, _asn_ctx), + asn_MAP_RACH_ConfigCommon_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_RACH_ConfigCommon_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RACH_ConfigCommon = { + "RACH-ConfigCommon", + "RACH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_RACH_ConfigCommon_tags_1, + sizeof(asn_DEF_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_RACH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RACH_ConfigCommon_1, + 11, /* Elements count */ + &asn_SPC_RACH_ConfigCommon_specs_1 /* Additional specs */ +}; +