/* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "NR-RRC-Definitions" * found in "../../../rrc_15.5.1_asn.asn1" * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CodebookConfig.h" static int memb_twoTX_CodebookSubsetRestriction_constraint_7(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 6)) { /* 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_two_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_two_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 64)) { /* 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_four_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_three_two_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 96)) { /* 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_six_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 24)) { /* 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_four_two_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 128)) { /* 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_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 32)) { /* 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_four_three_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 192)) { /* 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_six_two_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 192)) { /* 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_twelve_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 48)) { /* 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_four_four_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 256)) { /* 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_two_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 256)) { /* 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_one_TypeI_SinglePanel_Restriction_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 64)) { /* 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_typeI_SinglePanel_codebookSubsetRestriction_i2_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_typeI_SinglePanel_ri_Restriction_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_two_one_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_four_one_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_four_two_one_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_two_two_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 64)) { /* 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_two_eight_one_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 32)) { /* 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_four_four_one_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_four_two_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 128)) { /* 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_four_two_two_TypeI_MultiPanel_Restriction_constraint_27(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 64)) { /* 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_ri_Restriction_constraint_26(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 4)) { /* 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_codebookMode_constraint_3(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 <= 2)) { /* 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_two_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 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_two_two_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 43)) { /* 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_four_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 32)) { /* 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_three_two_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 59)) { /* 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_six_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 48)) { /* 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_four_two_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 75)) { /* 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_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 64)) { /* 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_four_three_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 107)) { /* 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_six_two_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 107)) { /* 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_twelve_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 96)) { /* 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_four_four_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 139)) { /* 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_two_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 139)) { /* 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_one_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 128)) { /* 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_typeII_RI_Restriction_constraint_40(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 2)) { /* 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_typeII_PortSelectionRI_Restriction_constraint_56(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; size_t size; if(!sptr) { ASN__CTFAIL(app_key, td, sptr, "%s: value not given (%s:%d)", td->name, __FILE__, __LINE__); return -1; } if(st->size > 0) { /* Size in bits */ size = 8 * st->size - (st->bits_unused & 0x07); } else { size = 0; } if((size == 2)) { /* 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 asn_oer_constraints_t asn_OER_memb_twoTX_CodebookSubsetRestriction_constr_8 CC_NOTUSED = { { 0, 0 }, 6 /* (SIZE(6..6)) */}; static asn_per_constraints_t asn_PER_memb_twoTX_CodebookSubsetRestriction_constr_8 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11 CC_NOTUSED = { { 0, 0 }, 8 /* (SIZE(8..8)) */}; static asn_per_constraints_t asn_PER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12 CC_NOTUSED = { { 0, 0 }, 64 /* (SIZE(64..64)) */}; static asn_per_constraints_t asn_PER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13 CC_NOTUSED = { { 0, 0 }, 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14 CC_NOTUSED = { { 0, 0 }, 96 /* (SIZE(96..96)) */}; static asn_per_constraints_t asn_PER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 96, 96 } /* (SIZE(96..96)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15 CC_NOTUSED = { { 0, 0 }, 24 /* (SIZE(24..24)) */}; static asn_per_constraints_t asn_PER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 24, 24 } /* (SIZE(24..24)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16 CC_NOTUSED = { { 0, 0 }, 128 /* (SIZE(128..128)) */}; static asn_per_constraints_t asn_PER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17 CC_NOTUSED = { { 0, 0 }, 32 /* (SIZE(32..32)) */}; static asn_per_constraints_t asn_PER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18 CC_NOTUSED = { { 0, 0 }, 192 /* (SIZE(192..192)) */}; static asn_per_constraints_t asn_PER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 192, 192 } /* (SIZE(192..192)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19 CC_NOTUSED = { { 0, 0 }, 192 /* (SIZE(192..192)) */}; static asn_per_constraints_t asn_PER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 192, 192 } /* (SIZE(192..192)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20 CC_NOTUSED = { { 0, 0 }, 48 /* (SIZE(48..48)) */}; static asn_per_constraints_t asn_PER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21 CC_NOTUSED = { { 0, 0 }, 256 /* (SIZE(256..256)) */}; static asn_per_constraints_t asn_PER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22 CC_NOTUSED = { { 0, 0 }, 256 /* (SIZE(256..256)) */}; static asn_per_constraints_t asn_PER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23 CC_NOTUSED = { { 0, 0 }, 64 /* (SIZE(64..64)) */}; static asn_per_constraints_t asn_PER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_n1_n2_constr_10 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_n1_n2_constr_10 CC_NOTUSED = { { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24 CC_NOTUSED = { { 0, 0 }, 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_nrOfAntennaPorts_constr_6 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_nrOfAntennaPorts_constr_6 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_memb_typeI_SinglePanel_ri_Restriction_constr_25 CC_NOTUSED = { { 0, 0 }, 8 /* (SIZE(8..8)) */}; static asn_per_constraints_t asn_PER_memb_typeI_SinglePanel_ri_Restriction_constr_25 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28 CC_NOTUSED = { { 0, 0 }, 8 /* (SIZE(8..8)) */}; static asn_per_constraints_t asn_PER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29 CC_NOTUSED = { { 0, 0 }, 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30 CC_NOTUSED = { { 0, 0 }, 8 /* (SIZE(8..8)) */}; static asn_per_constraints_t asn_PER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 8, 8 } /* (SIZE(8..8)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31 CC_NOTUSED = { { 0, 0 }, 64 /* (SIZE(64..64)) */}; static asn_per_constraints_t asn_PER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32 CC_NOTUSED = { { 0, 0 }, 32 /* (SIZE(32..32)) */}; static asn_per_constraints_t asn_PER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33 CC_NOTUSED = { { 0, 0 }, 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34 CC_NOTUSED = { { 0, 0 }, 128 /* (SIZE(128..128)) */}; static asn_per_constraints_t asn_PER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35 CC_NOTUSED = { { 0, 0 }, 64 /* (SIZE(64..64)) */}; static asn_per_constraints_t asn_PER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_ng_n1_n2_constr_27 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_ng_n1_n2_constr_27 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_ri_Restriction_constr_36 CC_NOTUSED = { { 0, 0 }, 4 /* (SIZE(4..4)) */}; static asn_per_constraints_t asn_PER_memb_ri_Restriction_constr_36 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_subType_constr_4 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_subType_constr_4 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_memb_codebookMode_constr_37 CC_NOTUSED = { { 1, 1 } /* (1..2) */, -1}; static asn_per_constraints_t asn_PER_memb_codebookMode_constr_37 CC_NOTUSED = { { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_one_constr_42 CC_NOTUSED = { { 0, 0 }, 16 /* (SIZE(16..16)) */}; static asn_per_constraints_t asn_PER_memb_two_one_constr_42 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_two_two_constr_43 CC_NOTUSED = { { 0, 0 }, 43 /* (SIZE(43..43)) */}; static asn_per_constraints_t asn_PER_memb_two_two_constr_43 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 43, 43 } /* (SIZE(43..43)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_one_constr_44 CC_NOTUSED = { { 0, 0 }, 32 /* (SIZE(32..32)) */}; static asn_per_constraints_t asn_PER_memb_four_one_constr_44 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_three_two_constr_45 CC_NOTUSED = { { 0, 0 }, 59 /* (SIZE(59..59)) */}; static asn_per_constraints_t asn_PER_memb_three_two_constr_45 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 59, 59 } /* (SIZE(59..59)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_six_one_constr_46 CC_NOTUSED = { { 0, 0 }, 48 /* (SIZE(48..48)) */}; static asn_per_constraints_t asn_PER_memb_six_one_constr_46 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_two_constr_47 CC_NOTUSED = { { 0, 0 }, 75 /* (SIZE(75..75)) */}; static asn_per_constraints_t asn_PER_memb_four_two_constr_47 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 75, 75 } /* (SIZE(75..75)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_eight_one_constr_48 CC_NOTUSED = { { 0, 0 }, 64 /* (SIZE(64..64)) */}; static asn_per_constraints_t asn_PER_memb_eight_one_constr_48 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_three_constr_49 CC_NOTUSED = { { 0, 0 }, 107 /* (SIZE(107..107)) */}; static asn_per_constraints_t asn_PER_memb_four_three_constr_49 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 107, 107 } /* (SIZE(107..107)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_six_two_constr_50 CC_NOTUSED = { { 0, 0 }, 107 /* (SIZE(107..107)) */}; static asn_per_constraints_t asn_PER_memb_six_two_constr_50 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 107, 107 } /* (SIZE(107..107)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_twelve_one_constr_51 CC_NOTUSED = { { 0, 0 }, 96 /* (SIZE(96..96)) */}; static asn_per_constraints_t asn_PER_memb_twelve_one_constr_51 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 96, 96 } /* (SIZE(96..96)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_four_four_constr_52 CC_NOTUSED = { { 0, 0 }, 139 /* (SIZE(139..139)) */}; static asn_per_constraints_t asn_PER_memb_four_four_constr_52 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 139, 139 } /* (SIZE(139..139)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_eight_two_constr_53 CC_NOTUSED = { { 0, 0 }, 139 /* (SIZE(139..139)) */}; static asn_per_constraints_t asn_PER_memb_eight_two_constr_53 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 139, 139 } /* (SIZE(139..139)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_sixteen_one_constr_54 CC_NOTUSED = { { 0, 0 }, 128 /* (SIZE(128..128)) */}; static asn_per_constraints_t asn_PER_memb_sixteen_one_constr_54 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_n1_n2_codebookSubsetRestriction_constr_41 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_n1_n2_codebookSubsetRestriction_constr_41 CC_NOTUSED = { { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_typeII_RI_Restriction_constr_55 CC_NOTUSED = { { 0, 0 }, 2 /* (SIZE(2..2)) */}; static asn_per_constraints_t asn_PER_memb_typeII_RI_Restriction_constr_55 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_portSelectionSamplingSize_constr_57 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_portSelectionSamplingSize_constr_57 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_memb_typeII_PortSelectionRI_Restriction_constr_62 CC_NOTUSED = { { 0, 0 }, 2 /* (SIZE(2..2)) */}; static asn_per_constraints_t asn_PER_memb_typeII_PortSelectionRI_Restriction_constr_62 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, 0, 0 /* No PER value map */ }; static asn_oer_constraints_t asn_OER_type_subType_constr_39 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_subType_constr_39 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_phaseAlphabetSize_constr_63 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_phaseAlphabetSize_constr_63 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_numberOfBeams_constr_67 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_numberOfBeams_constr_67 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_codebookType_constr_2 CC_NOTUSED = { { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_codebookType_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static asn_TYPE_member_t asn_MBR_two_7[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two, twoTX_CodebookSubsetRestriction), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_twoTX_CodebookSubsetRestriction_constr_8, &asn_PER_memb_twoTX_CodebookSubsetRestriction_constr_8, memb_twoTX_CodebookSubsetRestriction_constraint_7 }, 0, 0, /* No default value */ "twoTX-CodebookSubsetRestriction" }, }; static const ber_tlv_tag_t asn_DEF_two_tags_7[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_two_tag2el_7[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* twoTX-CodebookSubsetRestriction */ }; static asn_SEQUENCE_specifics_t asn_SPC_two_specs_7 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two, _asn_ctx), asn_MAP_two_tag2el_7, 1, /* 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_two_7 = { "two", "two", &asn_OP_SEQUENCE, asn_DEF_two_tags_7, sizeof(asn_DEF_two_tags_7) /sizeof(asn_DEF_two_tags_7[0]) - 1, /* 1 */ asn_DEF_two_tags_7, /* Same as above */ sizeof(asn_DEF_two_tags_7) /sizeof(asn_DEF_two_tags_7[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_two_7, 1, /* Elements count */ &asn_SPC_two_specs_7 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_n1_n2_10[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.two_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11, &asn_PER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11, memb_two_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "two-one-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.two_two_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12, &asn_PER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12, memb_two_two_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "two-two-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13, &asn_PER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13, memb_four_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "four-one-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.three_two_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14, &asn_PER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14, memb_three_two_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "three-two-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.six_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15, &asn_PER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15, memb_six_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "six-one-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_two_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16, &asn_PER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16, memb_four_two_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "four-two-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.eight_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (6 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17, &asn_PER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17, memb_eight_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "eight-one-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_three_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (7 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18, &asn_PER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18, memb_four_three_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "four-three-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.six_two_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (8 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19, &asn_PER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19, memb_six_two_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "six-two-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.twelve_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (9 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20, &asn_PER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20, memb_twelve_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "twelve-one-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_four_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (10 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21, &asn_PER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21, memb_four_four_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "four-four-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.eight_two_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (11 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22, &asn_PER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22, memb_eight_two_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "eight-two-TypeI-SinglePanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.sixteen_one_TypeI_SinglePanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (12 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23, &asn_PER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23, memb_sixteen_one_TypeI_SinglePanel_Restriction_constraint_10 }, 0, 0, /* No default value */ "sixteen-one-TypeI-SinglePanel-Restriction" }, }; static const asn_TYPE_tag2member_t asn_MAP_n1_n2_tag2el_10[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-one-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-two-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-one-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* three-two-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* six-one-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-two-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight-one-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* four-three-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* six-two-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* twelve-one-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* four-four-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* eight-two-TypeI-SinglePanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* sixteen-one-TypeI-SinglePanel-Restriction */ }; static asn_CHOICE_specifics_t asn_SPC_n1_n2_specs_10 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, present), sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 *)0)->present), asn_MAP_n1_n2_tag2el_10, 13, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ asn_TYPE_descriptor_t asn_DEF_n1_n2_10 = { "n1-n2", "n1-n2", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_n1_n2_constr_10, &asn_PER_type_n1_n2_constr_10, CHOICE_constraint }, asn_MBR_n1_n2_10, 13, /* Elements count */ &asn_SPC_n1_n2_specs_10 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_moreThanTwo_9[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, n1_n2), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_n1_n2_10, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "n1-n2" }, { ATF_POINTER, 1, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, typeI_SinglePanel_codebookSubsetRestriction_i2), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24, &asn_PER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24, memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constraint_9 }, 0, 0, /* No default value */ "typeI-SinglePanel-codebookSubsetRestriction-i2" }, }; static const int asn_MAP_moreThanTwo_oms_9[] = { 1 }; static const ber_tlv_tag_t asn_DEF_moreThanTwo_tags_9[] = { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_moreThanTwo_tag2el_9[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n1-n2 */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-SinglePanel-codebookSubsetRestriction-i2 */ }; static asn_SEQUENCE_specifics_t asn_SPC_moreThanTwo_specs_9 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, _asn_ctx), asn_MAP_moreThanTwo_tag2el_9, 2, /* Count of tags in the map */ asn_MAP_moreThanTwo_oms_9, /* Optional members */ 1, 0, /* Root/Additions */ -1, /* First extension addition */ }; static /* Use -fall-defs-global to expose */ asn_TYPE_descriptor_t asn_DEF_moreThanTwo_9 = { "moreThanTwo", "moreThanTwo", &asn_OP_SEQUENCE, asn_DEF_moreThanTwo_tags_9, sizeof(asn_DEF_moreThanTwo_tags_9) /sizeof(asn_DEF_moreThanTwo_tags_9[0]) - 1, /* 1 */ asn_DEF_moreThanTwo_tags_9, /* Same as above */ sizeof(asn_DEF_moreThanTwo_tags_9) /sizeof(asn_DEF_moreThanTwo_tags_9[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_moreThanTwo_9, 2, /* Elements count */ &asn_SPC_moreThanTwo_specs_9 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_nrOfAntennaPorts_6[] = { { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.two), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, &asn_DEF_two_7, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "two" }, { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.moreThanTwo), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, &asn_DEF_moreThanTwo_9, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "moreThanTwo" }, }; static const asn_TYPE_tag2member_t asn_MAP_nrOfAntennaPorts_tag2el_6[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* moreThanTwo */ }; static asn_CHOICE_specifics_t asn_SPC_nrOfAntennaPorts_specs_6 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, present), sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts *)0)->present), asn_MAP_nrOfAntennaPorts_tag2el_6, 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_nrOfAntennaPorts_6 = { "nrOfAntennaPorts", "nrOfAntennaPorts", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_nrOfAntennaPorts_constr_6, &asn_PER_type_nrOfAntennaPorts_constr_6, CHOICE_constraint }, asn_MBR_nrOfAntennaPorts_6, 2, /* Elements count */ &asn_SPC_nrOfAntennaPorts_specs_6 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_typeI_SinglePanel_5[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, nrOfAntennaPorts), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_nrOfAntennaPorts_6, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "nrOfAntennaPorts" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, typeI_SinglePanel_ri_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_typeI_SinglePanel_ri_Restriction_constr_25, &asn_PER_memb_typeI_SinglePanel_ri_Restriction_constr_25, memb_typeI_SinglePanel_ri_Restriction_constraint_5 }, 0, 0, /* No default value */ "typeI-SinglePanel-ri-Restriction" }, }; static const ber_tlv_tag_t asn_DEF_typeI_SinglePanel_tags_5[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_typeI_SinglePanel_tag2el_5[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrOfAntennaPorts */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-SinglePanel-ri-Restriction */ }; static asn_SEQUENCE_specifics_t asn_SPC_typeI_SinglePanel_specs_5 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, _asn_ctx), asn_MAP_typeI_SinglePanel_tag2el_5, 2, /* 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_typeI_SinglePanel_5 = { "typeI-SinglePanel", "typeI-SinglePanel", &asn_OP_SEQUENCE, asn_DEF_typeI_SinglePanel_tags_5, sizeof(asn_DEF_typeI_SinglePanel_tags_5) /sizeof(asn_DEF_typeI_SinglePanel_tags_5[0]) - 1, /* 1 */ asn_DEF_typeI_SinglePanel_tags_5, /* Same as above */ sizeof(asn_DEF_typeI_SinglePanel_tags_5) /sizeof(asn_DEF_typeI_SinglePanel_tags_5[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_typeI_SinglePanel_5, 2, /* Elements count */ &asn_SPC_typeI_SinglePanel_specs_5 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_ng_n1_n2_27[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_two_one_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28, &asn_PER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28, memb_two_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "two-two-one-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_four_one_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29, &asn_PER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29, memb_two_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "two-four-one-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_two_one_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30, &asn_PER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30, memb_four_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "four-two-one-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_two_two_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31, &asn_PER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31, memb_two_two_two_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "two-two-two-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_eight_one_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32, &asn_PER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32, memb_two_eight_one_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "two-eight-one-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_four_one_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33, &asn_PER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33, memb_four_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "four-four-one-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_four_two_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (6 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34, &asn_PER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34, memb_two_four_two_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "two-four-two-TypeI-MultiPanel-Restriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_two_two_TypeI_MultiPanel_Restriction), (ASN_TAG_CLASS_CONTEXT | (7 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35, &asn_PER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35, memb_four_two_two_TypeI_MultiPanel_Restriction_constraint_27 }, 0, 0, /* No default value */ "four-two-two-TypeI-MultiPanel-Restriction" }, }; static const asn_TYPE_tag2member_t asn_MAP_ng_n1_n2_tag2el_27[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-two-one-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-four-one-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-two-one-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* two-two-two-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* two-eight-one-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-four-one-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* two-four-two-TypeI-MultiPanel-Restriction */ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* four-two-two-TypeI-MultiPanel-Restriction */ }; static asn_CHOICE_specifics_t asn_SPC_ng_n1_n2_specs_27 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, present), sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 *)0)->present), asn_MAP_ng_n1_n2_tag2el_27, 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_ng_n1_n2_27 = { "ng-n1-n2", "ng-n1-n2", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_ng_n1_n2_constr_27, &asn_PER_type_ng_n1_n2_constr_27, CHOICE_constraint }, asn_MBR_ng_n1_n2_27, 8, /* Elements count */ &asn_SPC_ng_n1_n2_specs_27 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_typeI_MultiPanel_26[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, ng_n1_n2), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_ng_n1_n2_27, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "ng-n1-n2" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, ri_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_ri_Restriction_constr_36, &asn_PER_memb_ri_Restriction_constr_36, memb_ri_Restriction_constraint_26 }, 0, 0, /* No default value */ "ri-Restriction" }, }; static const ber_tlv_tag_t asn_DEF_typeI_MultiPanel_tags_26[] = { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_typeI_MultiPanel_tag2el_26[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ng-n1-n2 */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ri-Restriction */ }; static asn_SEQUENCE_specifics_t asn_SPC_typeI_MultiPanel_specs_26 = { sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel), offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, _asn_ctx), asn_MAP_typeI_MultiPanel_tag2el_26, 2, /* 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_typeI_MultiPanel_26 = { "typeI-MultiPanel", "typeI-MultiPanel", &asn_OP_SEQUENCE, asn_DEF_typeI_MultiPanel_tags_26, sizeof(asn_DEF_typeI_MultiPanel_tags_26) /sizeof(asn_DEF_typeI_MultiPanel_tags_26[0]) - 1, /* 1 */ asn_DEF_typeI_MultiPanel_tags_26, /* Same as above */ sizeof(asn_DEF_typeI_MultiPanel_tags_26) /sizeof(asn_DEF_typeI_MultiPanel_tags_26[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_typeI_MultiPanel_26, 2, /* Elements count */ &asn_SPC_typeI_MultiPanel_specs_26 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_subType_4[] = { { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType, choice.typeI_SinglePanel), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, &asn_DEF_typeI_SinglePanel_5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "typeI-SinglePanel" }, { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType, choice.typeI_MultiPanel), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, &asn_DEF_typeI_MultiPanel_26, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "typeI-MultiPanel" }, }; static const asn_TYPE_tag2member_t asn_MAP_subType_tag2el_4[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeI-SinglePanel */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-MultiPanel */ }; static asn_CHOICE_specifics_t asn_SPC_subType_specs_4 = { sizeof(struct CodebookConfig__codebookType__type1__subType), offsetof(struct CodebookConfig__codebookType__type1__subType, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type1__subType, present), sizeof(((struct CodebookConfig__codebookType__type1__subType *)0)->present), asn_MAP_subType_tag2el_4, 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_subType_4 = { "subType", "subType", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_subType_constr_4, &asn_PER_type_subType_constr_4, CHOICE_constraint }, asn_MBR_subType_4, 2, /* Elements count */ &asn_SPC_subType_specs_4 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_type1_3[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1, subType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_subType_4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "subType" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1, codebookMode), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { &asn_OER_memb_codebookMode_constr_37, &asn_PER_memb_codebookMode_constr_37, memb_codebookMode_constraint_3 }, 0, 0, /* No default value */ "codebookMode" }, }; static const ber_tlv_tag_t asn_DEF_type1_tags_3[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_type1_tag2el_3[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* codebookMode */ }; static asn_SEQUENCE_specifics_t asn_SPC_type1_specs_3 = { sizeof(struct CodebookConfig__codebookType__type1), offsetof(struct CodebookConfig__codebookType__type1, _asn_ctx), asn_MAP_type1_tag2el_3, 2, /* 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_type1_3 = { "type1", "type1", &asn_OP_SEQUENCE, asn_DEF_type1_tags_3, sizeof(asn_DEF_type1_tags_3) /sizeof(asn_DEF_type1_tags_3[0]) - 1, /* 1 */ asn_DEF_type1_tags_3, /* Same as above */ sizeof(asn_DEF_type1_tags_3) /sizeof(asn_DEF_type1_tags_3[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_type1_3, 2, /* Elements count */ &asn_SPC_type1_specs_3 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_n1_n2_codebookSubsetRestriction_41[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.two_one), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_one_constr_42, &asn_PER_memb_two_one_constr_42, memb_two_one_constraint_41 }, 0, 0, /* No default value */ "two-one" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.two_two), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_two_two_constr_43, &asn_PER_memb_two_two_constr_43, memb_two_two_constraint_41 }, 0, 0, /* No default value */ "two-two" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_one), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_one_constr_44, &asn_PER_memb_four_one_constr_44, memb_four_one_constraint_41 }, 0, 0, /* No default value */ "four-one" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.three_two), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_three_two_constr_45, &asn_PER_memb_three_two_constr_45, memb_three_two_constraint_41 }, 0, 0, /* No default value */ "three-two" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.six_one), (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_six_one_constr_46, &asn_PER_memb_six_one_constr_46, memb_six_one_constraint_41 }, 0, 0, /* No default value */ "six-one" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_two), (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_two_constr_47, &asn_PER_memb_four_two_constr_47, memb_four_two_constraint_41 }, 0, 0, /* No default value */ "four-two" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.eight_one), (ASN_TAG_CLASS_CONTEXT | (6 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_eight_one_constr_48, &asn_PER_memb_eight_one_constr_48, memb_eight_one_constraint_41 }, 0, 0, /* No default value */ "eight-one" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_three), (ASN_TAG_CLASS_CONTEXT | (7 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_three_constr_49, &asn_PER_memb_four_three_constr_49, memb_four_three_constraint_41 }, 0, 0, /* No default value */ "four-three" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.six_two), (ASN_TAG_CLASS_CONTEXT | (8 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_six_two_constr_50, &asn_PER_memb_six_two_constr_50, memb_six_two_constraint_41 }, 0, 0, /* No default value */ "six-two" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.twelve_one), (ASN_TAG_CLASS_CONTEXT | (9 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_twelve_one_constr_51, &asn_PER_memb_twelve_one_constr_51, memb_twelve_one_constraint_41 }, 0, 0, /* No default value */ "twelve-one" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_four), (ASN_TAG_CLASS_CONTEXT | (10 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_four_four_constr_52, &asn_PER_memb_four_four_constr_52, memb_four_four_constraint_41 }, 0, 0, /* No default value */ "four-four" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.eight_two), (ASN_TAG_CLASS_CONTEXT | (11 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_eight_two_constr_53, &asn_PER_memb_eight_two_constr_53, memb_eight_two_constraint_41 }, 0, 0, /* No default value */ "eight-two" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.sixteen_one), (ASN_TAG_CLASS_CONTEXT | (12 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_sixteen_one_constr_54, &asn_PER_memb_sixteen_one_constr_54, memb_sixteen_one_constraint_41 }, 0, 0, /* No default value */ "sixteen-one" }, }; static const asn_TYPE_tag2member_t asn_MAP_n1_n2_codebookSubsetRestriction_tag2el_41[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-one */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-two */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-one */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* three-two */ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* six-one */ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-two */ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight-one */ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* four-three */ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* six-two */ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* twelve-one */ { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* four-four */ { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* eight-two */ { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* sixteen-one */ }; static asn_CHOICE_specifics_t asn_SPC_n1_n2_codebookSubsetRestriction_specs_41 = { sizeof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction), offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, present), sizeof(((struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction *)0)->present), asn_MAP_n1_n2_codebookSubsetRestriction_tag2el_41, 13, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ asn_TYPE_descriptor_t asn_DEF_n1_n2_codebookSubsetRestriction_41 = { "n1-n2-codebookSubsetRestriction", "n1-n2-codebookSubsetRestriction", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_n1_n2_codebookSubsetRestriction_constr_41, &asn_PER_type_n1_n2_codebookSubsetRestriction_constr_41, CHOICE_constraint }, asn_MBR_n1_n2_codebookSubsetRestriction_41, 13, /* Elements count */ &asn_SPC_n1_n2_codebookSubsetRestriction_specs_41 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_typeII_40[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII, n1_n2_codebookSubsetRestriction), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_n1_n2_codebookSubsetRestriction_41, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "n1-n2-codebookSubsetRestriction" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII, typeII_RI_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_typeII_RI_Restriction_constr_55, &asn_PER_memb_typeII_RI_Restriction_constr_55, memb_typeII_RI_Restriction_constraint_40 }, 0, 0, /* No default value */ "typeII-RI-Restriction" }, }; static const ber_tlv_tag_t asn_DEF_typeII_tags_40[] = { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_typeII_tag2el_40[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n1-n2-codebookSubsetRestriction */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-RI-Restriction */ }; static asn_SEQUENCE_specifics_t asn_SPC_typeII_specs_40 = { sizeof(struct CodebookConfig__codebookType__type2__subType__typeII), offsetof(struct CodebookConfig__codebookType__type2__subType__typeII, _asn_ctx), asn_MAP_typeII_tag2el_40, 2, /* 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_typeII_40 = { "typeII", "typeII", &asn_OP_SEQUENCE, asn_DEF_typeII_tags_40, sizeof(asn_DEF_typeII_tags_40) /sizeof(asn_DEF_typeII_tags_40[0]) - 1, /* 1 */ asn_DEF_typeII_tags_40, /* Same as above */ sizeof(asn_DEF_typeII_tags_40) /sizeof(asn_DEF_typeII_tags_40[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_typeII_40, 2, /* Elements count */ &asn_SPC_typeII_specs_40 /* Additional specs */ }; static const asn_INTEGER_enum_map_t asn_MAP_portSelectionSamplingSize_value2enum_57[] = { { 0, 2, "n1" }, { 1, 2, "n2" }, { 2, 2, "n3" }, { 3, 2, "n4" } }; static const unsigned int asn_MAP_portSelectionSamplingSize_enum2value_57[] = { 0, /* n1(0) */ 1, /* n2(1) */ 2, /* n3(2) */ 3 /* n4(3) */ }; static const asn_INTEGER_specifics_t asn_SPC_portSelectionSamplingSize_specs_57 = { asn_MAP_portSelectionSamplingSize_value2enum_57, /* "tag" => N; sorted by tag */ asn_MAP_portSelectionSamplingSize_enum2value_57, /* N => "tag"; sorted by N */ 4, /* 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_portSelectionSamplingSize_tags_57[] = { (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_portSelectionSamplingSize_57 = { "portSelectionSamplingSize", "portSelectionSamplingSize", &asn_OP_NativeEnumerated, asn_DEF_portSelectionSamplingSize_tags_57, sizeof(asn_DEF_portSelectionSamplingSize_tags_57) /sizeof(asn_DEF_portSelectionSamplingSize_tags_57[0]) - 1, /* 1 */ asn_DEF_portSelectionSamplingSize_tags_57, /* Same as above */ sizeof(asn_DEF_portSelectionSamplingSize_tags_57) /sizeof(asn_DEF_portSelectionSamplingSize_tags_57[0]), /* 2 */ { &asn_OER_type_portSelectionSamplingSize_constr_57, &asn_PER_type_portSelectionSamplingSize_constr_57, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_portSelectionSamplingSize_specs_57 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_typeII_PortSelection_56[] = { { ATF_POINTER, 1, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection, portSelectionSamplingSize), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_portSelectionSamplingSize_57, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "portSelectionSamplingSize" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection, typeII_PortSelectionRI_Restriction), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, { &asn_OER_memb_typeII_PortSelectionRI_Restriction_constr_62, &asn_PER_memb_typeII_PortSelectionRI_Restriction_constr_62, memb_typeII_PortSelectionRI_Restriction_constraint_56 }, 0, 0, /* No default value */ "typeII-PortSelectionRI-Restriction" }, }; static const int asn_MAP_typeII_PortSelection_oms_56[] = { 0 }; static const ber_tlv_tag_t asn_DEF_typeII_PortSelection_tags_56[] = { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_typeII_PortSelection_tag2el_56[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* portSelectionSamplingSize */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-PortSelectionRI-Restriction */ }; static asn_SEQUENCE_specifics_t asn_SPC_typeII_PortSelection_specs_56 = { sizeof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection), offsetof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection, _asn_ctx), asn_MAP_typeII_PortSelection_tag2el_56, 2, /* Count of tags in the map */ asn_MAP_typeII_PortSelection_oms_56, /* Optional members */ 1, 0, /* Root/Additions */ -1, /* First extension addition */ }; static /* Use -fall-defs-global to expose */ asn_TYPE_descriptor_t asn_DEF_typeII_PortSelection_56 = { "typeII-PortSelection", "typeII-PortSelection", &asn_OP_SEQUENCE, asn_DEF_typeII_PortSelection_tags_56, sizeof(asn_DEF_typeII_PortSelection_tags_56) /sizeof(asn_DEF_typeII_PortSelection_tags_56[0]) - 1, /* 1 */ asn_DEF_typeII_PortSelection_tags_56, /* Same as above */ sizeof(asn_DEF_typeII_PortSelection_tags_56) /sizeof(asn_DEF_typeII_PortSelection_tags_56[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_typeII_PortSelection_56, 2, /* Elements count */ &asn_SPC_typeII_PortSelection_specs_56 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_subType_39[] = { { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type2__subType, choice.typeII), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, &asn_DEF_typeII_40, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "typeII" }, { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type2__subType, choice.typeII_PortSelection), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, &asn_DEF_typeII_PortSelection_56, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "typeII-PortSelection" }, }; static const asn_TYPE_tag2member_t asn_MAP_subType_tag2el_39[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeII */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-PortSelection */ }; static asn_CHOICE_specifics_t asn_SPC_subType_specs_39 = { sizeof(struct CodebookConfig__codebookType__type2__subType), offsetof(struct CodebookConfig__codebookType__type2__subType, _asn_ctx), offsetof(struct CodebookConfig__codebookType__type2__subType, present), sizeof(((struct CodebookConfig__codebookType__type2__subType *)0)->present), asn_MAP_subType_tag2el_39, 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_subType_39 = { "subType", "subType", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_subType_constr_39, &asn_PER_type_subType_constr_39, CHOICE_constraint }, asn_MBR_subType_39, 2, /* Elements count */ &asn_SPC_subType_specs_39 /* Additional specs */ }; static const asn_INTEGER_enum_map_t asn_MAP_phaseAlphabetSize_value2enum_63[] = { { 0, 2, "n4" }, { 1, 2, "n8" } }; static const unsigned int asn_MAP_phaseAlphabetSize_enum2value_63[] = { 0, /* n4(0) */ 1 /* n8(1) */ }; static const asn_INTEGER_specifics_t asn_SPC_phaseAlphabetSize_specs_63 = { asn_MAP_phaseAlphabetSize_value2enum_63, /* "tag" => N; sorted by tag */ asn_MAP_phaseAlphabetSize_enum2value_63, /* N => "tag"; sorted by N */ 2, /* 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_phaseAlphabetSize_tags_63[] = { (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_phaseAlphabetSize_63 = { "phaseAlphabetSize", "phaseAlphabetSize", &asn_OP_NativeEnumerated, asn_DEF_phaseAlphabetSize_tags_63, sizeof(asn_DEF_phaseAlphabetSize_tags_63) /sizeof(asn_DEF_phaseAlphabetSize_tags_63[0]) - 1, /* 1 */ asn_DEF_phaseAlphabetSize_tags_63, /* Same as above */ sizeof(asn_DEF_phaseAlphabetSize_tags_63) /sizeof(asn_DEF_phaseAlphabetSize_tags_63[0]), /* 2 */ { &asn_OER_type_phaseAlphabetSize_constr_63, &asn_PER_type_phaseAlphabetSize_constr_63, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_phaseAlphabetSize_specs_63 /* Additional specs */ }; static const asn_INTEGER_enum_map_t asn_MAP_numberOfBeams_value2enum_67[] = { { 0, 3, "two" }, { 1, 5, "three" }, { 2, 4, "four" } }; static const unsigned int asn_MAP_numberOfBeams_enum2value_67[] = { 2, /* four(2) */ 1, /* three(1) */ 0 /* two(0) */ }; static const asn_INTEGER_specifics_t asn_SPC_numberOfBeams_specs_67 = { asn_MAP_numberOfBeams_value2enum_67, /* "tag" => N; sorted by tag */ asn_MAP_numberOfBeams_enum2value_67, /* 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_numberOfBeams_tags_67[] = { (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_numberOfBeams_67 = { "numberOfBeams", "numberOfBeams", &asn_OP_NativeEnumerated, asn_DEF_numberOfBeams_tags_67, sizeof(asn_DEF_numberOfBeams_tags_67) /sizeof(asn_DEF_numberOfBeams_tags_67[0]) - 1, /* 1 */ asn_DEF_numberOfBeams_tags_67, /* Same as above */ sizeof(asn_DEF_numberOfBeams_tags_67) /sizeof(asn_DEF_numberOfBeams_tags_67[0]), /* 2 */ { &asn_OER_type_numberOfBeams_constr_67, &asn_PER_type_numberOfBeams_constr_67, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_numberOfBeams_specs_67 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_type2_38[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, subType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_subType_39, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "subType" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, phaseAlphabetSize), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_phaseAlphabetSize_63, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "phaseAlphabetSize" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, subbandAmplitude), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_BOOLEAN, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "subbandAmplitude" }, { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, numberOfBeams), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_numberOfBeams_67, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "numberOfBeams" }, }; static const ber_tlv_tag_t asn_DEF_type2_tags_38[] = { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_type2_tag2el_38[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subType */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phaseAlphabetSize */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbandAmplitude */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* numberOfBeams */ }; static asn_SEQUENCE_specifics_t asn_SPC_type2_specs_38 = { sizeof(struct CodebookConfig__codebookType__type2), offsetof(struct CodebookConfig__codebookType__type2, _asn_ctx), asn_MAP_type2_tag2el_38, 4, /* 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_type2_38 = { "type2", "type2", &asn_OP_SEQUENCE, asn_DEF_type2_tags_38, sizeof(asn_DEF_type2_tags_38) /sizeof(asn_DEF_type2_tags_38[0]) - 1, /* 1 */ asn_DEF_type2_tags_38, /* Same as above */ sizeof(asn_DEF_type2_tags_38) /sizeof(asn_DEF_type2_tags_38[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_type2_38, 4, /* Elements count */ &asn_SPC_type2_specs_38 /* Additional specs */ }; static asn_TYPE_member_t asn_MBR_codebookType_2[] = { { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType, choice.type1), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, &asn_DEF_type1_3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "type1" }, { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType, choice.type2), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, &asn_DEF_type2_38, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "type2" }, }; static const asn_TYPE_tag2member_t asn_MAP_codebookType_tag2el_2[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type1 */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* type2 */ }; static asn_CHOICE_specifics_t asn_SPC_codebookType_specs_2 = { sizeof(struct CodebookConfig__codebookType), offsetof(struct CodebookConfig__codebookType, _asn_ctx), offsetof(struct CodebookConfig__codebookType, present), sizeof(((struct CodebookConfig__codebookType *)0)->present), asn_MAP_codebookType_tag2el_2, 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_codebookType_2 = { "codebookType", "codebookType", &asn_OP_CHOICE, 0, /* No effective tags (pointer) */ 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ { &asn_OER_type_codebookType_constr_2, &asn_PER_type_codebookType_constr_2, CHOICE_constraint }, asn_MBR_codebookType_2, 2, /* Elements count */ &asn_SPC_codebookType_specs_2 /* Additional specs */ }; asn_TYPE_member_t asn_MBR_CodebookConfig_1[] = { { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig, codebookType), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_codebookType_2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "codebookType" }, }; static const ber_tlv_tag_t asn_DEF_CodebookConfig_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_CodebookConfig_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* codebookType */ }; asn_SEQUENCE_specifics_t asn_SPC_CodebookConfig_specs_1 = { sizeof(struct CodebookConfig), offsetof(struct CodebookConfig, _asn_ctx), asn_MAP_CodebookConfig_tag2el_1, 1, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_CodebookConfig = { "CodebookConfig", "CodebookConfig", &asn_OP_SEQUENCE, asn_DEF_CodebookConfig_tags_1, sizeof(asn_DEF_CodebookConfig_tags_1) /sizeof(asn_DEF_CodebookConfig_tags_1[0]), /* 1 */ asn_DEF_CodebookConfig_tags_1, /* Same as above */ sizeof(asn_DEF_CodebookConfig_tags_1) /sizeof(asn_DEF_CodebookConfig_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_CodebookConfig_1, 1, /* Elements count */ &asn_SPC_CodebookConfig_specs_1 /* Additional specs */ };