/* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "S1AP-IEs" * found in "../support/s1ap-r16.7.0/36413-g70.asn" * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER` */ #include "S1AP_InterSystemMeasurementItem.h" #include "S1AP_ProtocolExtensionContainer.h" /* * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ static int memb_S1AP_freqBandIndicatorNR_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 >= 1L && value <= 1024L)) { /* 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_S1AP_sSBfrequencies_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 >= 0L && value <= 32L)) { /* 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_S1AP_maxRSIndexCellQual_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 >= 1L && value <= 16L)) { /* Constraint check succeeded */ return 0; } else { ASN__CTFAIL(app_key, td, sptr, "%s: constraint failed (%s:%d)", td->name, __FILE__, __LINE__); return -1; } } #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) static asn_per_constraints_t asn_PER_type_S1AP_subcarrierSpacingSSB_constr_4 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) static asn_per_constraints_t asn_PER_memb_S1AP_freqBandIndicatorNR_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) static asn_per_constraints_t asn_PER_memb_S1AP_sSBfrequencies_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) static asn_per_constraints_t asn_PER_memb_S1AP_maxRSIndexCellQual_constr_11 CC_NOTUSED = { { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ static const asn_INTEGER_enum_map_t asn_MAP_S1AP_subcarrierSpacingSSB_value2enum_4[] = { { 0, 5, "kHz15" }, { 1, 5, "kHz30" }, { 2, 5, "kHz60" }, { 3, 6, "kHz120" }, { 4, 6, "kHz240" } /* This list is extensible */ }; static const unsigned int asn_MAP_S1AP_subcarrierSpacingSSB_enum2value_4[] = { 3, /* kHz120(3) */ 0, /* kHz15(0) */ 4, /* kHz240(4) */ 1, /* kHz30(1) */ 2 /* kHz60(2) */ /* This list is extensible */ }; static const asn_INTEGER_specifics_t asn_SPC_S1AP_subcarrierSpacingSSB_specs_4 = { asn_MAP_S1AP_subcarrierSpacingSSB_value2enum_4, /* "tag" => N; sorted by tag */ asn_MAP_S1AP_subcarrierSpacingSSB_enum2value_4, /* N => "tag"; sorted by N */ 5, /* Number of elements in the maps */ 6, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 }; static const ber_tlv_tag_t asn_DEF_S1AP_subcarrierSpacingSSB_tags_4[] = { (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_S1AP_subcarrierSpacingSSB_4 = { "subcarrierSpacingSSB", "subcarrierSpacingSSB", &asn_OP_NativeEnumerated, asn_DEF_S1AP_subcarrierSpacingSSB_tags_4, sizeof(asn_DEF_S1AP_subcarrierSpacingSSB_tags_4) /sizeof(asn_DEF_S1AP_subcarrierSpacingSSB_tags_4[0]) - 1, /* 1 */ asn_DEF_S1AP_subcarrierSpacingSSB_tags_4, /* Same as above */ sizeof(asn_DEF_S1AP_subcarrierSpacingSSB_tags_4) /sizeof(asn_DEF_S1AP_subcarrierSpacingSSB_tags_4[0]), /* 2 */ { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) &asn_PER_type_S1AP_subcarrierSpacingSSB_constr_4, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_S1AP_subcarrierSpacingSSB_specs_4 /* Additional specs */ }; asn_TYPE_member_t asn_MBR_S1AP_InterSystemMeasurementItem_1[] = { { ATF_NOFLAGS, 0, offsetof(struct S1AP_InterSystemMeasurementItem, freqBandIndicatorNR), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) &asn_PER_memb_S1AP_freqBandIndicatorNR_constr_2, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ memb_S1AP_freqBandIndicatorNR_constraint_1 }, 0, 0, /* No default value */ "freqBandIndicatorNR" }, { ATF_NOFLAGS, 0, offsetof(struct S1AP_InterSystemMeasurementItem, sSBfrequencies), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) &asn_PER_memb_S1AP_sSBfrequencies_constr_3, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ memb_S1AP_sSBfrequencies_constraint_1 }, 0, 0, /* No default value */ "sSBfrequencies" }, { ATF_NOFLAGS, 0, offsetof(struct S1AP_InterSystemMeasurementItem, subcarrierSpacingSSB), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_S1AP_subcarrierSpacingSSB_4, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "subcarrierSpacingSSB" }, { ATF_POINTER, 8, offsetof(struct S1AP_InterSystemMeasurementItem, maxRSIndexCellQual), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) &asn_PER_memb_S1AP_maxRSIndexCellQual_constr_11, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ memb_S1AP_maxRSIndexCellQual_constraint_1 }, 0, 0, /* No default value */ "maxRSIndexCellQual" }, { ATF_POINTER, 7, offsetof(struct S1AP_InterSystemMeasurementItem, sMTC), (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "sMTC" }, { ATF_POINTER, 6, offsetof(struct S1AP_InterSystemMeasurementItem, threshRS_Index_r15), (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "threshRS-Index-r15" }, { ATF_POINTER, 5, offsetof(struct S1AP_InterSystemMeasurementItem, sSBToMeasure), (ASN_TAG_CLASS_CONTEXT | (6 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "sSBToMeasure" }, { ATF_POINTER, 4, offsetof(struct S1AP_InterSystemMeasurementItem, sSRSSIMeasurement), (ASN_TAG_CLASS_CONTEXT | (7 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "sSRSSIMeasurement" }, { ATF_POINTER, 3, offsetof(struct S1AP_InterSystemMeasurementItem, quantityConfigNR_R15), (ASN_TAG_CLASS_CONTEXT | (8 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "quantityConfigNR-R15" }, { ATF_POINTER, 2, offsetof(struct S1AP_InterSystemMeasurementItem, blackCellsToAddModList), (ASN_TAG_CLASS_CONTEXT | (9 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OCTET_STRING, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "blackCellsToAddModList" }, { ATF_POINTER, 1, offsetof(struct S1AP_InterSystemMeasurementItem, iE_Extensions), (ASN_TAG_CLASS_CONTEXT | (10 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_S1AP_ProtocolExtensionContainer_7898P82, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "iE-Extensions" }, }; static const int asn_MAP_S1AP_InterSystemMeasurementItem_oms_1[] = { 3, 4, 5, 6, 7, 8, 9, 10 }; static const ber_tlv_tag_t asn_DEF_S1AP_InterSystemMeasurementItem_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_S1AP_InterSystemMeasurementItem_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNR */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sSBfrequencies */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subcarrierSpacingSSB */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxRSIndexCellQual */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sMTC */ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* threshRS-Index-r15 */ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sSBToMeasure */ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sSRSSIMeasurement */ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* quantityConfigNR-R15 */ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* blackCellsToAddModList */ { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* iE-Extensions */ }; asn_SEQUENCE_specifics_t asn_SPC_S1AP_InterSystemMeasurementItem_specs_1 = { sizeof(struct S1AP_InterSystemMeasurementItem), offsetof(struct S1AP_InterSystemMeasurementItem, _asn_ctx), asn_MAP_S1AP_InterSystemMeasurementItem_tag2el_1, 11, /* Count of tags in the map */ asn_MAP_S1AP_InterSystemMeasurementItem_oms_1, /* Optional members */ 8, 0, /* Root/Additions */ -1, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_S1AP_InterSystemMeasurementItem = { "InterSystemMeasurementItem", "InterSystemMeasurementItem", &asn_OP_SEQUENCE, asn_DEF_S1AP_InterSystemMeasurementItem_tags_1, sizeof(asn_DEF_S1AP_InterSystemMeasurementItem_tags_1) /sizeof(asn_DEF_S1AP_InterSystemMeasurementItem_tags_1[0]), /* 1 */ asn_DEF_S1AP_InterSystemMeasurementItem_tags_1, /* Same as above */ sizeof(asn_DEF_S1AP_InterSystemMeasurementItem_tags_1) /sizeof(asn_DEF_S1AP_InterSystemMeasurementItem_tags_1[0]), /* 1 */ { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ SEQUENCE_constraint }, asn_MBR_S1AP_InterSystemMeasurementItem_1, 11, /* Elements count */ &asn_SPC_S1AP_InterSystemMeasurementItem_specs_1 /* Additional specs */ };