X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=asn1c_defs%2FE2N_InitiatingMessage.c;fp=asn1c_defs%2FE2N_InitiatingMessage.c;h=1394c69f4c0ac1bbdd5057d5fbf96263ede2e31a;hb=dc68642f5676cdd49f3ef92f983b319e21f16afa;hp=0000000000000000000000000000000000000000;hpb=0054ece5d9d4bcb28ecda2f0f36584f6a64fc869;p=ric-app%2Fadmin.git diff --git a/asn1c_defs/E2N_InitiatingMessage.c b/asn1c_defs/E2N_InitiatingMessage.c new file mode 100644 index 0000000..1394c69 --- /dev/null +++ b/asn1c_defs/E2N_InitiatingMessage.c @@ -0,0 +1,338 @@ +/* + * Generated by asn1c-0.9.29 n1 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031-subset.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E2N_InitiatingMessage.h" + +static const long asn_VAL_1_E2N_id_ricSubscription = 201; +static const long asn_VAL_1_E2N_reject = 0; +static const long asn_VAL_2_E2N_id_ricSubscriptionDelete = 202; +static const long asn_VAL_2_E2N_reject = 0; +static const long asn_VAL_3_E2N_id_ricServiceUpdate = 203; +static const long asn_VAL_3_E2N_reject = 0; +static const long asn_VAL_4_E2N_id_ricControl = 204; +static const long asn_VAL_4_E2N_reject = 0; +static const long asn_VAL_5_E2N_id_ricIndication = 205; +static const long asn_VAL_5_E2N_ignore = 1; +static const long asn_VAL_6_E2N_id_ricServiceQuery = 206; +static const long asn_VAL_6_E2N_ignore = 1; +static const asn_ioc_cell_t asn_IOS_E2N_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICsubscriptionRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICsubscriptionResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICsubscriptionFailure }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_1_E2N_id_ricSubscription }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_1_E2N_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICsubscriptionDeleteRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICsubscriptionDeleteResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICsubscriptionDeleteFailure }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_2_E2N_id_ricSubscriptionDelete }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_2_E2N_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICserviceUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICserviceUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICserviceUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_3_E2N_id_ricServiceUpdate }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_3_E2N_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICcontrolRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICcontrolAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2N_RICcontrolFailure }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_4_E2N_id_ricControl }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_4_E2N_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_5_E2N_id_ricIndication }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_5_E2N_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_E2N_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_E2N_ProcedureCode, &asn_VAL_6_E2N_id_ricServiceQuery }, + { "&criticality", aioc__value, &asn_DEF_E2N_Criticality, &asn_VAL_6_E2N_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2N_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 6, 5, asn_IOS_E2N_E2AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_E2N_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_InitiatingMessage_E2N_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2N_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2N_InitiatingMessage, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_E2N_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_InitiatingMessage_E2N_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2N_E2AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 0; /* &InitiatingMessage */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2N_InitiatingMessage, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_E2N_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_E2N_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_E2N_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_E2N_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2N_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICsubscriptionRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICsubscriptionRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICsubscriptionDeleteRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICsubscriptionDeleteRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICserviceUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICserviceUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICserviceUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICcontrolRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICcontrolRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcontrolRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICindication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICindication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICindication" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage__value, choice.RICserviceQuery), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2N_RICserviceQuery, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICserviceQuery" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2N_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* RICserviceQuery */ +}; +static asn_CHOICE_specifics_t asn_SPC_E2N_value_specs_4 = { + sizeof(struct E2N_InitiatingMessage__value), + offsetof(struct E2N_InitiatingMessage__value, _asn_ctx), + offsetof(struct E2N_InitiatingMessage__value, present), + sizeof(((struct E2N_InitiatingMessage__value *)0)->present), + asn_MAP_E2N_value_tag2el_4, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_E2N_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_E2N_value_4, + 6, /* Elements count */ + &asn_SPC_E2N_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2N_InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2N_ProcedureCode, + 0, + { 0, &asn_PER_memb_E2N_procedureCode_constr_2, memb_E2N_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2N_Criticality, + select_InitiatingMessage_E2N_criticality_type, + { 0, &asn_PER_memb_E2N_criticality_constr_3, memb_E2N_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2N_InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2N_value_4, + select_InitiatingMessage_E2N_value_type, + { 0, &asn_PER_memb_E2N_value_constr_4, memb_E2N_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2N_InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2N_InitiatingMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2N_InitiatingMessage_specs_1 = { + sizeof(struct E2N_InitiatingMessage), + offsetof(struct E2N_InitiatingMessage, _asn_ctx), + asn_MAP_E2N_InitiatingMessage_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2N_InitiatingMessage = { + "InitiatingMessage", + "InitiatingMessage", + &asn_OP_SEQUENCE, + asn_DEF_E2N_InitiatingMessage_tags_1, + sizeof(asn_DEF_E2N_InitiatingMessage_tags_1) + /sizeof(asn_DEF_E2N_InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_E2N_InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_E2N_InitiatingMessage_tags_1) + /sizeof(asn_DEF_E2N_InitiatingMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2N_InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_E2N_InitiatingMessage_specs_1 /* Additional specs */ +}; +