--- /dev/null
+/*
+ * 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 */
+};
+