From 019830c4600cc0ecfd362bf94ccef55e1b22427c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 10 Sep 2015 10:20:56 +0200 Subject: [PATCH] add asn1c generated RUA c+header files --- src/rua/{Makefile.local => Makefile} | 9 +- src/rua/RUA_Ansi-41-IDNNS.c | 171 +++++ src/rua/RUA_Ansi-41-IDNNS.h | 42 ++ src/rua/RUA_CN-DomainIndicator.c | 165 +++++ src/rua/RUA_CN-DomainIndicator.h | 48 ++ src/rua/RUA_CSGMembershipStatus.c | 167 +++++ src/rua/RUA_CSGMembershipStatus.h | 51 ++ src/rua/RUA_Cause.c | 92 +++ src/rua/RUA_Cause.h | 61 ++ src/rua/RUA_CauseMisc.c | 171 +++++ src/rua/RUA_CauseMisc.h | 53 ++ src/rua/RUA_CauseProtocol.c | 177 ++++++ src/rua/RUA_CauseProtocol.h | 56 ++ src/rua/RUA_CauseRadioNetwork.c | 171 +++++ src/rua/RUA_CauseRadioNetwork.h | 53 ++ src/rua/RUA_CauseTransport.c | 167 +++++ src/rua/RUA_CauseTransport.h | 51 ++ src/rua/RUA_Connect.c | 145 +++++ src/rua/RUA_Connect.h | 48 ++ src/rua/RUA_ConnectionlessTransfer.c | 145 +++++ src/rua/RUA_ConnectionlessTransfer.h | 48 ++ src/rua/RUA_Context-ID.c | 171 +++++ src/rua/RUA_Context-ID.h | 42 ++ src/rua/RUA_Criticality.c | 167 +++++ src/rua/RUA_Criticality.h | 49 ++ src/rua/RUA_CriticalityDiagnostics-IE-List.c | 145 +++++ src/rua/RUA_CriticalityDiagnostics-IE-List.h | 54 ++ src/rua/RUA_CriticalityDiagnostics.c | 103 +++ src/rua/RUA_CriticalityDiagnostics.h | 49 ++ src/rua/RUA_DirectTransfer.c | 145 +++++ src/rua/RUA_DirectTransfer.h | 48 ++ src/rua/RUA_Disconnect.c | 145 +++++ src/rua/RUA_Disconnect.h | 48 ++ src/rua/RUA_ErrorIndication.c | 145 +++++ src/rua/RUA_ErrorIndication.h | 48 ++ src/rua/RUA_Establishment-Cause.c | 167 +++++ src/rua/RUA_Establishment-Cause.h | 51 ++ src/rua/RUA_Gsm-map-IDNNS.c | 636 +++++++++++++++++++ src/rua/RUA_Gsm-map-IDNNS.h | 108 ++++ src/rua/RUA_IE-Extensions.c | 59 ++ src/rua/RUA_IE-Extensions.h | 38 ++ src/rua/RUA_IE.c | 81 +++ src/rua/RUA_IE.h | 41 ++ src/rua/RUA_InitiatingMessage.c | 81 +++ src/rua/RUA_InitiatingMessage.h | 41 ++ src/rua/RUA_IntraDomainNasNodeSelector.c | 337 ++++++++++ src/rua/RUA_IntraDomainNasNodeSelector.h | 80 +++ src/rua/RUA_Presence.c | 167 +++++ src/rua/RUA_Presence.h | 49 ++ src/rua/RUA_PrivateIE-ID.c | 102 +++ src/rua/RUA_PrivateIE-ID.h | 49 ++ src/rua/RUA_PrivateMessage.c | 145 +++++ src/rua/RUA_PrivateMessage.h | 48 ++ src/rua/RUA_ProcedureCode.c | 165 +++++ src/rua/RUA_ProcedureCode.h | 52 ++ src/rua/RUA_ProtocolIE-ID.c | 165 +++++ src/rua/RUA_ProtocolIE-ID.h | 54 ++ src/rua/RUA_RANAP-Message.c | 143 +++++ src/rua/RUA_RANAP-Message.h | 42 ++ src/rua/RUA_RUA-PDU.c | 82 +++ src/rua/RUA_RUA-PDU.h | 58 ++ src/rua/RUA_RoutingParameter.c | 171 +++++ src/rua/RUA_RoutingParameter.h | 42 ++ src/rua/RUA_SuccessfulOutcome.c | 81 +++ src/rua/RUA_SuccessfulOutcome.h | 41 ++ src/rua/RUA_TriggeringMessage.c | 167 +++++ src/rua/RUA_TriggeringMessage.h | 49 ++ src/rua/RUA_TypeOfError.c | 167 +++++ src/rua/RUA_TypeOfError.h | 51 ++ src/rua/RUA_UnsuccessfulOutcome.c | 81 +++ src/rua/RUA_UnsuccessfulOutcome.h | 41 ++ 71 files changed, 7380 insertions(+), 2 deletions(-) rename src/rua/{Makefile.local => Makefile} (87%) create mode 100644 src/rua/RUA_Ansi-41-IDNNS.c create mode 100644 src/rua/RUA_Ansi-41-IDNNS.h create mode 100644 src/rua/RUA_CN-DomainIndicator.c create mode 100644 src/rua/RUA_CN-DomainIndicator.h create mode 100644 src/rua/RUA_CSGMembershipStatus.c create mode 100644 src/rua/RUA_CSGMembershipStatus.h create mode 100644 src/rua/RUA_Cause.c create mode 100644 src/rua/RUA_Cause.h create mode 100644 src/rua/RUA_CauseMisc.c create mode 100644 src/rua/RUA_CauseMisc.h create mode 100644 src/rua/RUA_CauseProtocol.c create mode 100644 src/rua/RUA_CauseProtocol.h create mode 100644 src/rua/RUA_CauseRadioNetwork.c create mode 100644 src/rua/RUA_CauseRadioNetwork.h create mode 100644 src/rua/RUA_CauseTransport.c create mode 100644 src/rua/RUA_CauseTransport.h create mode 100644 src/rua/RUA_Connect.c create mode 100644 src/rua/RUA_Connect.h create mode 100644 src/rua/RUA_ConnectionlessTransfer.c create mode 100644 src/rua/RUA_ConnectionlessTransfer.h create mode 100644 src/rua/RUA_Context-ID.c create mode 100644 src/rua/RUA_Context-ID.h create mode 100644 src/rua/RUA_Criticality.c create mode 100644 src/rua/RUA_Criticality.h create mode 100644 src/rua/RUA_CriticalityDiagnostics-IE-List.c create mode 100644 src/rua/RUA_CriticalityDiagnostics-IE-List.h create mode 100644 src/rua/RUA_CriticalityDiagnostics.c create mode 100644 src/rua/RUA_CriticalityDiagnostics.h create mode 100644 src/rua/RUA_DirectTransfer.c create mode 100644 src/rua/RUA_DirectTransfer.h create mode 100644 src/rua/RUA_Disconnect.c create mode 100644 src/rua/RUA_Disconnect.h create mode 100644 src/rua/RUA_ErrorIndication.c create mode 100644 src/rua/RUA_ErrorIndication.h create mode 100644 src/rua/RUA_Establishment-Cause.c create mode 100644 src/rua/RUA_Establishment-Cause.h create mode 100644 src/rua/RUA_Gsm-map-IDNNS.c create mode 100644 src/rua/RUA_Gsm-map-IDNNS.h create mode 100644 src/rua/RUA_IE-Extensions.c create mode 100644 src/rua/RUA_IE-Extensions.h create mode 100644 src/rua/RUA_IE.c create mode 100644 src/rua/RUA_IE.h create mode 100644 src/rua/RUA_InitiatingMessage.c create mode 100644 src/rua/RUA_InitiatingMessage.h create mode 100644 src/rua/RUA_IntraDomainNasNodeSelector.c create mode 100644 src/rua/RUA_IntraDomainNasNodeSelector.h create mode 100644 src/rua/RUA_Presence.c create mode 100644 src/rua/RUA_Presence.h create mode 100644 src/rua/RUA_PrivateIE-ID.c create mode 100644 src/rua/RUA_PrivateIE-ID.h create mode 100644 src/rua/RUA_PrivateMessage.c create mode 100644 src/rua/RUA_PrivateMessage.h create mode 100644 src/rua/RUA_ProcedureCode.c create mode 100644 src/rua/RUA_ProcedureCode.h create mode 100644 src/rua/RUA_ProtocolIE-ID.c create mode 100644 src/rua/RUA_ProtocolIE-ID.h create mode 100644 src/rua/RUA_RANAP-Message.c create mode 100644 src/rua/RUA_RANAP-Message.h create mode 100644 src/rua/RUA_RUA-PDU.c create mode 100644 src/rua/RUA_RUA-PDU.h create mode 100644 src/rua/RUA_RoutingParameter.c create mode 100644 src/rua/RUA_RoutingParameter.h create mode 100644 src/rua/RUA_SuccessfulOutcome.c create mode 100644 src/rua/RUA_SuccessfulOutcome.h create mode 100644 src/rua/RUA_TriggeringMessage.c create mode 100644 src/rua/RUA_TriggeringMessage.h create mode 100644 src/rua/RUA_TypeOfError.c create mode 100644 src/rua/RUA_TypeOfError.h create mode 100644 src/rua/RUA_UnsuccessfulOutcome.c create mode 100644 src/rua/RUA_UnsuccessfulOutcome.h diff --git a/src/rua/Makefile.local b/src/rua/Makefile similarity index 87% rename from src/rua/Makefile.local rename to src/rua/Makefile index 8ae65f4c..c8e34717 100644 --- a/src/rua/Makefile.local +++ b/src/rua/Makefile @@ -78,7 +78,7 @@ libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS) # Remove the lines below to convert it into a pure .am file CFLAGS += -I. `pkg-config --cflags libasn1c` -OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o} +OBJS=${ASN_MODULE_SOURCES:.c=.o} all: libosmo-asn1-rua.a @@ -95,8 +95,13 @@ clean: rm -f libosmo-asn1-rua.a rm -f $(OBJS) +clean-srcs: + @rm -f *.c *.h Makefile.am.sample + regen: regenerate-from-asn1-source -regenerate-from-asn1-source: +regenerate-from-asn1-source: clean clean-srcs ASN1C_PREFIX="RUA_" asn1c -gen-PER ../../asn1/rua/RUA-CommonDataTypes.asn ../../asn1/rua/RUA-Constants.asn ../../asn1/rua/RUA-IEs.asn ../../asn1/rua/RUA-PDU.asn + # remove the local copy of the runtime code + @rm ANY.* BOOLEAN.* INTEGER.* NativeEnumerated.* NativeInteger.* OBJECT_IDENTIFIER.* asn_* OCTET_STRING.* converter-sample.c per_* xer_* constr* der_* ber_* BIT_STRING.* diff --git a/src/rua/RUA_Ansi-41-IDNNS.c b/src/rua/RUA_Ansi-41-IDNNS.c new file mode 100644 index 00000000..07388efb --- /dev/null +++ b/src/rua/RUA_Ansi-41-IDNNS.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_Ansi-41-IDNNS.h" + +int +RUA_Ansi_41_IDNNS_constraint(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 == 14l)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static void +RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_BIT_STRING.free_struct; + td->print_struct = asn_DEF_BIT_STRING.print_struct; + td->check_constraints = asn_DEF_BIT_STRING.check_constraints; + td->ber_decoder = asn_DEF_BIT_STRING.ber_decoder; + td->der_encoder = asn_DEF_BIT_STRING.der_encoder; + td->xer_decoder = asn_DEF_BIT_STRING.xer_decoder; + td->xer_encoder = asn_DEF_BIT_STRING.xer_encoder; + td->uper_decoder = asn_DEF_BIT_STRING.uper_decoder; + td->uper_encoder = asn_DEF_BIT_STRING.uper_encoder; + td->aper_decoder = asn_DEF_BIT_STRING.aper_decoder; + td->aper_encoder = asn_DEF_BIT_STRING.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_BIT_STRING.per_constraints; + td->elements = asn_DEF_BIT_STRING.elements; + td->elements_count = asn_DEF_BIT_STRING.elements_count; + td->specifics = asn_DEF_BIT_STRING.specifics; +} + +void +RUA_Ansi_41_IDNNS_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_Ansi_41_IDNNS_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_Ansi_41_IDNNS_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_Ansi_41_IDNNS_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_Ansi_41_IDNNS_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_Ansi_41_IDNNS_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_Ansi_41_IDNNS_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_Ansi_41_IDNNS_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_Ansi_41_IDNNS_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_Ansi_41_IDNNS_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Ansi_41_IDNNS_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_Ansi_41_IDNNS_constr_1 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 14l, 14l } /* (SIZE(14..14)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RUA_Ansi_41_IDNNS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Ansi_41_IDNNS = { + "RUA_Ansi-41-IDNNS", + "RUA_Ansi-41-IDNNS", + RUA_Ansi_41_IDNNS_free, + RUA_Ansi_41_IDNNS_print, + RUA_Ansi_41_IDNNS_constraint, + RUA_Ansi_41_IDNNS_decode_ber, + RUA_Ansi_41_IDNNS_encode_der, + RUA_Ansi_41_IDNNS_decode_xer, + RUA_Ansi_41_IDNNS_encode_xer, + RUA_Ansi_41_IDNNS_decode_uper, + RUA_Ansi_41_IDNNS_encode_uper, + RUA_Ansi_41_IDNNS_decode_aper, + RUA_Ansi_41_IDNNS_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Ansi_41_IDNNS_tags_1, + sizeof(asn_DEF_RUA_Ansi_41_IDNNS_tags_1) + /sizeof(asn_DEF_RUA_Ansi_41_IDNNS_tags_1[0]), /* 1 */ + asn_DEF_RUA_Ansi_41_IDNNS_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Ansi_41_IDNNS_tags_1) + /sizeof(asn_DEF_RUA_Ansi_41_IDNNS_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_Ansi_41_IDNNS_constr_1, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_Ansi-41-IDNNS.h b/src/rua/RUA_Ansi-41-IDNNS.h new file mode 100644 index 00000000..eb0dd6bf --- /dev/null +++ b/src/rua/RUA_Ansi-41-IDNNS.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_Ansi_41_IDNNS_H_ +#define _RUA_Ansi_41_IDNNS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_Ansi-41-IDNNS */ +typedef BIT_STRING_t RUA_Ansi_41_IDNNS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Ansi_41_IDNNS; +asn_struct_free_f RUA_Ansi_41_IDNNS_free; +asn_struct_print_f RUA_Ansi_41_IDNNS_print; +asn_constr_check_f RUA_Ansi_41_IDNNS_constraint; +ber_type_decoder_f RUA_Ansi_41_IDNNS_decode_ber; +der_type_encoder_f RUA_Ansi_41_IDNNS_encode_der; +xer_type_decoder_f RUA_Ansi_41_IDNNS_decode_xer; +xer_type_encoder_f RUA_Ansi_41_IDNNS_encode_xer; +per_type_decoder_f RUA_Ansi_41_IDNNS_decode_uper; +per_type_encoder_f RUA_Ansi_41_IDNNS_encode_uper; +per_type_decoder_f RUA_Ansi_41_IDNNS_decode_aper; +per_type_encoder_f RUA_Ansi_41_IDNNS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Ansi_41_IDNNS_H_ */ +#include diff --git a/src/rua/RUA_CN-DomainIndicator.c b/src/rua/RUA_CN-DomainIndicator.c new file mode 100644 index 00000000..d166460a --- /dev/null +++ b/src/rua/RUA_CN-DomainIndicator.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CN-DomainIndicator.h" + +int +RUA_CN_DomainIndicator_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CN_DomainIndicator_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CN_DomainIndicator_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CN_DomainIndicator_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CN_DomainIndicator_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CN_DomainIndicator_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CN_DomainIndicator_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CN_DomainIndicator_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CN_DomainIndicator_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CN_DomainIndicator_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CN_DomainIndicator_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CN_DomainIndicator_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CN_DomainIndicator_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0l, 1l } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CN_DomainIndicator_value2enum_1[] = { + { 0, 9, "cs-domain" }, + { 1, 9, "ps-domain" } +}; +static const unsigned int asn_MAP_RUA_CN_DomainIndicator_enum2value_1[] = { + 0, /* cs-domain(0) */ + 1 /* ps-domain(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CN_DomainIndicator_specs_1 = { + asn_MAP_RUA_CN_DomainIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CN_DomainIndicator_enum2value_1, /* 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_RUA_CN_DomainIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CN_DomainIndicator = { + "RUA_CN-DomainIndicator", + "RUA_CN-DomainIndicator", + RUA_CN_DomainIndicator_free, + RUA_CN_DomainIndicator_print, + RUA_CN_DomainIndicator_constraint, + RUA_CN_DomainIndicator_decode_ber, + RUA_CN_DomainIndicator_encode_der, + RUA_CN_DomainIndicator_decode_xer, + RUA_CN_DomainIndicator_encode_xer, + RUA_CN_DomainIndicator_decode_uper, + RUA_CN_DomainIndicator_encode_uper, + RUA_CN_DomainIndicator_decode_aper, + RUA_CN_DomainIndicator_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CN_DomainIndicator_tags_1, + sizeof(asn_DEF_RUA_CN_DomainIndicator_tags_1) + /sizeof(asn_DEF_RUA_CN_DomainIndicator_tags_1[0]), /* 1 */ + asn_DEF_RUA_CN_DomainIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CN_DomainIndicator_tags_1) + /sizeof(asn_DEF_RUA_CN_DomainIndicator_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CN_DomainIndicator_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CN_DomainIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CN-DomainIndicator.h b/src/rua/RUA_CN-DomainIndicator.h new file mode 100644 index 00000000..171a049b --- /dev/null +++ b/src/rua/RUA_CN-DomainIndicator.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CN_DomainIndicator_H_ +#define _RUA_CN_DomainIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CN_DomainIndicator { + RUA_CN_DomainIndicator_cs_domain = 0, + RUA_CN_DomainIndicator_ps_domain = 1 +} e_RUA_CN_DomainIndicator; + +/* RUA_CN-DomainIndicator */ +typedef long RUA_CN_DomainIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CN_DomainIndicator; +asn_struct_free_f RUA_CN_DomainIndicator_free; +asn_struct_print_f RUA_CN_DomainIndicator_print; +asn_constr_check_f RUA_CN_DomainIndicator_constraint; +ber_type_decoder_f RUA_CN_DomainIndicator_decode_ber; +der_type_encoder_f RUA_CN_DomainIndicator_encode_der; +xer_type_decoder_f RUA_CN_DomainIndicator_decode_xer; +xer_type_encoder_f RUA_CN_DomainIndicator_encode_xer; +per_type_decoder_f RUA_CN_DomainIndicator_decode_uper; +per_type_encoder_f RUA_CN_DomainIndicator_encode_uper; +per_type_decoder_f RUA_CN_DomainIndicator_decode_aper; +per_type_encoder_f RUA_CN_DomainIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CN_DomainIndicator_H_ */ +#include diff --git a/src/rua/RUA_CSGMembershipStatus.c b/src/rua/RUA_CSGMembershipStatus.c new file mode 100644 index 00000000..85c30bf1 --- /dev/null +++ b/src/rua/RUA_CSGMembershipStatus.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CSGMembershipStatus.h" + +int +RUA_CSGMembershipStatus_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CSGMembershipStatus_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CSGMembershipStatus_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CSGMembershipStatus_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CSGMembershipStatus_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CSGMembershipStatus_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CSGMembershipStatus_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CSGMembershipStatus_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CSGMembershipStatus_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CSGMembershipStatus_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CSGMembershipStatus_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CSGMembershipStatus_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CSGMembershipStatus_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0l, 1l } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CSGMembershipStatus_value2enum_1[] = { + { 0, 6, "member" }, + { 1, 10, "non-member" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_CSGMembershipStatus_enum2value_1[] = { + 0, /* member(0) */ + 1 /* non-member(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CSGMembershipStatus_specs_1 = { + asn_MAP_RUA_CSGMembershipStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CSGMembershipStatus_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_CSGMembershipStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CSGMembershipStatus = { + "RUA_CSGMembershipStatus", + "RUA_CSGMembershipStatus", + RUA_CSGMembershipStatus_free, + RUA_CSGMembershipStatus_print, + RUA_CSGMembershipStatus_constraint, + RUA_CSGMembershipStatus_decode_ber, + RUA_CSGMembershipStatus_encode_der, + RUA_CSGMembershipStatus_decode_xer, + RUA_CSGMembershipStatus_encode_xer, + RUA_CSGMembershipStatus_decode_uper, + RUA_CSGMembershipStatus_encode_uper, + RUA_CSGMembershipStatus_decode_aper, + RUA_CSGMembershipStatus_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CSGMembershipStatus_tags_1, + sizeof(asn_DEF_RUA_CSGMembershipStatus_tags_1) + /sizeof(asn_DEF_RUA_CSGMembershipStatus_tags_1[0]), /* 1 */ + asn_DEF_RUA_CSGMembershipStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CSGMembershipStatus_tags_1) + /sizeof(asn_DEF_RUA_CSGMembershipStatus_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CSGMembershipStatus_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CSGMembershipStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CSGMembershipStatus.h b/src/rua/RUA_CSGMembershipStatus.h new file mode 100644 index 00000000..2c276094 --- /dev/null +++ b/src/rua/RUA_CSGMembershipStatus.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CSGMembershipStatus_H_ +#define _RUA_CSGMembershipStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CSGMembershipStatus { + RUA_CSGMembershipStatus_member = 0, + RUA_CSGMembershipStatus_non_member = 1 + /* + * Enumeration is extensible + */ +} e_RUA_CSGMembershipStatus; + +/* RUA_CSGMembershipStatus */ +typedef long RUA_CSGMembershipStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CSGMembershipStatus; +asn_struct_free_f RUA_CSGMembershipStatus_free; +asn_struct_print_f RUA_CSGMembershipStatus_print; +asn_constr_check_f RUA_CSGMembershipStatus_constraint; +ber_type_decoder_f RUA_CSGMembershipStatus_decode_ber; +der_type_encoder_f RUA_CSGMembershipStatus_encode_der; +xer_type_decoder_f RUA_CSGMembershipStatus_decode_xer; +xer_type_encoder_f RUA_CSGMembershipStatus_encode_xer; +per_type_decoder_f RUA_CSGMembershipStatus_decode_uper; +per_type_encoder_f RUA_CSGMembershipStatus_encode_uper; +per_type_decoder_f RUA_CSGMembershipStatus_decode_aper; +per_type_encoder_f RUA_CSGMembershipStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CSGMembershipStatus_H_ */ +#include diff --git a/src/rua/RUA_Cause.c b/src/rua/RUA_Cause.c new file mode 100644 index 00000000..644762ab --- /dev/null +++ b/src/rua/RUA_Cause.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_Cause.h" + +static asn_per_constraints_t asn_PER_type_RUA_Cause_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0l, 3l } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RUA_Cause_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_Cause, choice.radioNetwork), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_CauseRadioNetwork, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "radioNetwork" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_CauseTransport, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "transport" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_Cause, choice.protocol), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_CauseProtocol, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "protocol" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_Cause, choice.misc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_CauseMisc, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "misc" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_Cause_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_RUA_Cause_specs_1 = { + sizeof(struct RUA_Cause), + offsetof(struct RUA_Cause, _asn_ctx), + offsetof(struct RUA_Cause, present), + sizeof(((struct RUA_Cause *)0)->present), + asn_MAP_RUA_Cause_tag2el_1, + 4, /* Count of tags in the map */ + 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Cause = { + "RUA_Cause", + "RUA_Cause", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_RUA_Cause_constr_1, + asn_MBR_RUA_Cause_1, + 4, /* Elements count */ + &asn_SPC_RUA_Cause_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Cause.h b/src/rua/RUA_Cause.h new file mode 100644 index 00000000..3240023c --- /dev/null +++ b/src/rua/RUA_Cause.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_Cause_H_ +#define _RUA_Cause_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_CauseRadioNetwork.h" +#include "RUA_CauseTransport.h" +#include "RUA_CauseProtocol.h" +#include "RUA_CauseMisc.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_Cause_PR { + RUA_Cause_PR_NOTHING, /* No components present */ + RUA_Cause_PR_radioNetwork, + RUA_Cause_PR_transport, + RUA_Cause_PR_protocol, + RUA_Cause_PR_misc, + /* Extensions may appear below */ + +} RUA_Cause_PR; + +/* RUA_Cause */ +typedef struct RUA_Cause { + RUA_Cause_PR present; + union RUA_Cause_u { + RUA_CauseRadioNetwork_t radioNetwork; + RUA_CauseTransport_t transport; + RUA_CauseProtocol_t protocol; + RUA_CauseMisc_t misc; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_Cause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Cause; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Cause_H_ */ +#include diff --git a/src/rua/RUA_CauseMisc.c b/src/rua/RUA_CauseMisc.c new file mode 100644 index 00000000..9b29b951 --- /dev/null +++ b/src/rua/RUA_CauseMisc.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CauseMisc.h" + +int +RUA_CauseMisc_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CauseMisc_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CauseMisc_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CauseMisc_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseMisc_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CauseMisc_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseMisc_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CauseMisc_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseMisc_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CauseMisc_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CauseMisc_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CauseMisc_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseMisc_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CauseMisc_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0l, 3l } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CauseMisc_value2enum_1[] = { + { 0, 19, "processing-overload" }, + { 1, 16, "hardware-failure" }, + { 2, 20, "o-and-m-intervention" }, + { 3, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_CauseMisc_enum2value_1[] = { + 1, /* hardware-failure(1) */ + 2, /* o-and-m-intervention(2) */ + 0, /* processing-overload(0) */ + 3 /* unspecified(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CauseMisc_specs_1 = { + asn_MAP_RUA_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_CauseMisc_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CauseMisc = { + "RUA_CauseMisc", + "RUA_CauseMisc", + RUA_CauseMisc_free, + RUA_CauseMisc_print, + RUA_CauseMisc_constraint, + RUA_CauseMisc_decode_ber, + RUA_CauseMisc_encode_der, + RUA_CauseMisc_decode_xer, + RUA_CauseMisc_encode_xer, + RUA_CauseMisc_decode_uper, + RUA_CauseMisc_encode_uper, + RUA_CauseMisc_decode_aper, + RUA_CauseMisc_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CauseMisc_tags_1, + sizeof(asn_DEF_RUA_CauseMisc_tags_1) + /sizeof(asn_DEF_RUA_CauseMisc_tags_1[0]), /* 1 */ + asn_DEF_RUA_CauseMisc_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CauseMisc_tags_1) + /sizeof(asn_DEF_RUA_CauseMisc_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CauseMisc_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CauseMisc_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CauseMisc.h b/src/rua/RUA_CauseMisc.h new file mode 100644 index 00000000..d21dc999 --- /dev/null +++ b/src/rua/RUA_CauseMisc.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CauseMisc_H_ +#define _RUA_CauseMisc_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CauseMisc { + RUA_CauseMisc_processing_overload = 0, + RUA_CauseMisc_hardware_failure = 1, + RUA_CauseMisc_o_and_m_intervention = 2, + RUA_CauseMisc_unspecified = 3 + /* + * Enumeration is extensible + */ +} e_RUA_CauseMisc; + +/* RUA_CauseMisc */ +typedef long RUA_CauseMisc_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CauseMisc; +asn_struct_free_f RUA_CauseMisc_free; +asn_struct_print_f RUA_CauseMisc_print; +asn_constr_check_f RUA_CauseMisc_constraint; +ber_type_decoder_f RUA_CauseMisc_decode_ber; +der_type_encoder_f RUA_CauseMisc_encode_der; +xer_type_decoder_f RUA_CauseMisc_decode_xer; +xer_type_encoder_f RUA_CauseMisc_encode_xer; +per_type_decoder_f RUA_CauseMisc_decode_uper; +per_type_encoder_f RUA_CauseMisc_encode_uper; +per_type_decoder_f RUA_CauseMisc_decode_aper; +per_type_encoder_f RUA_CauseMisc_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CauseMisc_H_ */ +#include diff --git a/src/rua/RUA_CauseProtocol.c b/src/rua/RUA_CauseProtocol.c new file mode 100644 index 00000000..53f60fe8 --- /dev/null +++ b/src/rua/RUA_CauseProtocol.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CauseProtocol.h" + +int +RUA_CauseProtocol_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CauseProtocol_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CauseProtocol_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CauseProtocol_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseProtocol_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CauseProtocol_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseProtocol_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CauseProtocol_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseProtocol_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CauseProtocol_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CauseProtocol_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CauseProtocol_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseProtocol_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CauseProtocol_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0l, 6l } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CauseProtocol_value2enum_1[] = { + { 0, 21, "transfer-syntax-error" }, + { 1, 28, "abstract-syntax-error-reject" }, + { 2, 39, "abstract-syntax-error-ignore-and-notify" }, + { 3, 42, "message-not-compatible-with-receiver-state" }, + { 4, 14, "semantic-error" }, + { 5, 11, "unspecified" }, + { 6, 49, "abstract-syntax-error-falsely-constructed-message" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_CauseProtocol_enum2value_1[] = { + 6, /* abstract-syntax-error-falsely-constructed-message(6) */ + 2, /* abstract-syntax-error-ignore-and-notify(2) */ + 1, /* abstract-syntax-error-reject(1) */ + 3, /* message-not-compatible-with-receiver-state(3) */ + 4, /* semantic-error(4) */ + 0, /* transfer-syntax-error(0) */ + 5 /* unspecified(5) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CauseProtocol_specs_1 = { + asn_MAP_RUA_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_CauseProtocol_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CauseProtocol = { + "RUA_CauseProtocol", + "RUA_CauseProtocol", + RUA_CauseProtocol_free, + RUA_CauseProtocol_print, + RUA_CauseProtocol_constraint, + RUA_CauseProtocol_decode_ber, + RUA_CauseProtocol_encode_der, + RUA_CauseProtocol_decode_xer, + RUA_CauseProtocol_encode_xer, + RUA_CauseProtocol_decode_uper, + RUA_CauseProtocol_encode_uper, + RUA_CauseProtocol_decode_aper, + RUA_CauseProtocol_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CauseProtocol_tags_1, + sizeof(asn_DEF_RUA_CauseProtocol_tags_1) + /sizeof(asn_DEF_RUA_CauseProtocol_tags_1[0]), /* 1 */ + asn_DEF_RUA_CauseProtocol_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CauseProtocol_tags_1) + /sizeof(asn_DEF_RUA_CauseProtocol_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CauseProtocol_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CauseProtocol_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CauseProtocol.h b/src/rua/RUA_CauseProtocol.h new file mode 100644 index 00000000..a1d8f118 --- /dev/null +++ b/src/rua/RUA_CauseProtocol.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CauseProtocol_H_ +#define _RUA_CauseProtocol_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CauseProtocol { + RUA_CauseProtocol_transfer_syntax_error = 0, + RUA_CauseProtocol_abstract_syntax_error_reject = 1, + RUA_CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, + RUA_CauseProtocol_message_not_compatible_with_receiver_state = 3, + RUA_CauseProtocol_semantic_error = 4, + RUA_CauseProtocol_unspecified = 5, + RUA_CauseProtocol_abstract_syntax_error_falsely_constructed_message = 6 + /* + * Enumeration is extensible + */ +} e_RUA_CauseProtocol; + +/* RUA_CauseProtocol */ +typedef long RUA_CauseProtocol_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CauseProtocol; +asn_struct_free_f RUA_CauseProtocol_free; +asn_struct_print_f RUA_CauseProtocol_print; +asn_constr_check_f RUA_CauseProtocol_constraint; +ber_type_decoder_f RUA_CauseProtocol_decode_ber; +der_type_encoder_f RUA_CauseProtocol_encode_der; +xer_type_decoder_f RUA_CauseProtocol_decode_xer; +xer_type_encoder_f RUA_CauseProtocol_encode_xer; +per_type_decoder_f RUA_CauseProtocol_decode_uper; +per_type_encoder_f RUA_CauseProtocol_encode_uper; +per_type_decoder_f RUA_CauseProtocol_decode_aper; +per_type_encoder_f RUA_CauseProtocol_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CauseProtocol_H_ */ +#include diff --git a/src/rua/RUA_CauseRadioNetwork.c b/src/rua/RUA_CauseRadioNetwork.c new file mode 100644 index 00000000..4655cde2 --- /dev/null +++ b/src/rua/RUA_CauseRadioNetwork.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CauseRadioNetwork.h" + +int +RUA_CauseRadioNetwork_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CauseRadioNetwork_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CauseRadioNetwork_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseRadioNetwork_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CauseRadioNetwork_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseRadioNetwork_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CauseRadioNetwork_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseRadioNetwork_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CauseRadioNetwork_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CauseRadioNetwork_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CauseRadioNetwork_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseRadioNetwork_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CauseRadioNetwork_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0l, 3l } /* (0..3,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CauseRadioNetwork_value2enum_1[] = { + { 0, 6, "normal" }, + { 1, 14, "connect-failed" }, + { 2, 15, "network-release" }, + { 3, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_CauseRadioNetwork_enum2value_1[] = { + 1, /* connect-failed(1) */ + 2, /* network-release(2) */ + 0, /* normal(0) */ + 3 /* unspecified(3) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CauseRadioNetwork_specs_1 = { + asn_MAP_RUA_CauseRadioNetwork_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CauseRadioNetwork_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* Number of elements in the maps */ + 5, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_CauseRadioNetwork_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CauseRadioNetwork = { + "RUA_CauseRadioNetwork", + "RUA_CauseRadioNetwork", + RUA_CauseRadioNetwork_free, + RUA_CauseRadioNetwork_print, + RUA_CauseRadioNetwork_constraint, + RUA_CauseRadioNetwork_decode_ber, + RUA_CauseRadioNetwork_encode_der, + RUA_CauseRadioNetwork_decode_xer, + RUA_CauseRadioNetwork_encode_xer, + RUA_CauseRadioNetwork_decode_uper, + RUA_CauseRadioNetwork_encode_uper, + RUA_CauseRadioNetwork_decode_aper, + RUA_CauseRadioNetwork_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CauseRadioNetwork_tags_1, + sizeof(asn_DEF_RUA_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_RUA_CauseRadioNetwork_tags_1[0]), /* 1 */ + asn_DEF_RUA_CauseRadioNetwork_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_RUA_CauseRadioNetwork_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CauseRadioNetwork_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CauseRadioNetwork_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CauseRadioNetwork.h b/src/rua/RUA_CauseRadioNetwork.h new file mode 100644 index 00000000..d267b69e --- /dev/null +++ b/src/rua/RUA_CauseRadioNetwork.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CauseRadioNetwork_H_ +#define _RUA_CauseRadioNetwork_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CauseRadioNetwork { + RUA_CauseRadioNetwork_normal = 0, + RUA_CauseRadioNetwork_connect_failed = 1, + RUA_CauseRadioNetwork_network_release = 2, + RUA_CauseRadioNetwork_unspecified = 3 + /* + * Enumeration is extensible + */ +} e_RUA_CauseRadioNetwork; + +/* RUA_CauseRadioNetwork */ +typedef long RUA_CauseRadioNetwork_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CauseRadioNetwork; +asn_struct_free_f RUA_CauseRadioNetwork_free; +asn_struct_print_f RUA_CauseRadioNetwork_print; +asn_constr_check_f RUA_CauseRadioNetwork_constraint; +ber_type_decoder_f RUA_CauseRadioNetwork_decode_ber; +der_type_encoder_f RUA_CauseRadioNetwork_encode_der; +xer_type_decoder_f RUA_CauseRadioNetwork_decode_xer; +xer_type_encoder_f RUA_CauseRadioNetwork_encode_xer; +per_type_decoder_f RUA_CauseRadioNetwork_decode_uper; +per_type_encoder_f RUA_CauseRadioNetwork_encode_uper; +per_type_decoder_f RUA_CauseRadioNetwork_decode_aper; +per_type_encoder_f RUA_CauseRadioNetwork_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CauseRadioNetwork_H_ */ +#include diff --git a/src/rua/RUA_CauseTransport.c b/src/rua/RUA_CauseTransport.c new file mode 100644 index 00000000..2765461e --- /dev/null +++ b/src/rua/RUA_CauseTransport.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CauseTransport.h" + +int +RUA_CauseTransport_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_CauseTransport_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_CauseTransport_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_CauseTransport_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseTransport_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_CauseTransport_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseTransport_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_CauseTransport_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_CauseTransport_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_CauseTransport_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_CauseTransport_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_CauseTransport_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_CauseTransport_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_CauseTransport_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0l, 1l } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_CauseTransport_value2enum_1[] = { + { 0, 30, "transport-resource-unavailable" }, + { 1, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_CauseTransport_enum2value_1[] = { + 0, /* transport-resource-unavailable(0) */ + 1 /* unspecified(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_CauseTransport_specs_1 = { + asn_MAP_RUA_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_CauseTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CauseTransport = { + "RUA_CauseTransport", + "RUA_CauseTransport", + RUA_CauseTransport_free, + RUA_CauseTransport_print, + RUA_CauseTransport_constraint, + RUA_CauseTransport_decode_ber, + RUA_CauseTransport_encode_der, + RUA_CauseTransport_decode_xer, + RUA_CauseTransport_encode_xer, + RUA_CauseTransport_decode_uper, + RUA_CauseTransport_encode_uper, + RUA_CauseTransport_decode_aper, + RUA_CauseTransport_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CauseTransport_tags_1, + sizeof(asn_DEF_RUA_CauseTransport_tags_1) + /sizeof(asn_DEF_RUA_CauseTransport_tags_1[0]), /* 1 */ + asn_DEF_RUA_CauseTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CauseTransport_tags_1) + /sizeof(asn_DEF_RUA_CauseTransport_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CauseTransport_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_CauseTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CauseTransport.h b/src/rua/RUA_CauseTransport.h new file mode 100644 index 00000000..62597a75 --- /dev/null +++ b/src/rua/RUA_CauseTransport.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CauseTransport_H_ +#define _RUA_CauseTransport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_CauseTransport { + RUA_CauseTransport_transport_resource_unavailable = 0, + RUA_CauseTransport_unspecified = 1 + /* + * Enumeration is extensible + */ +} e_RUA_CauseTransport; + +/* RUA_CauseTransport */ +typedef long RUA_CauseTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CauseTransport; +asn_struct_free_f RUA_CauseTransport_free; +asn_struct_print_f RUA_CauseTransport_print; +asn_constr_check_f RUA_CauseTransport_constraint; +ber_type_decoder_f RUA_CauseTransport_decode_ber; +der_type_encoder_f RUA_CauseTransport_encode_der; +xer_type_decoder_f RUA_CauseTransport_decode_xer; +xer_type_encoder_f RUA_CauseTransport_encode_xer; +per_type_decoder_f RUA_CauseTransport_decode_uper; +per_type_encoder_f RUA_CauseTransport_encode_uper; +per_type_decoder_f RUA_CauseTransport_decode_aper; +per_type_encoder_f RUA_CauseTransport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CauseTransport_H_ */ +#include diff --git a/src/rua/RUA_Connect.c b/src/rua/RUA_Connect.c new file mode 100644 index 00000000..b80a86f8 --- /dev/null +++ b/src/rua/RUA_Connect.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_Connect.h" + +static int +memb_connect_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_connect_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_connect_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_connect_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_connect_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_connect_ies_specs_2 = { + sizeof(struct connect_ies), + offsetof(struct connect_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_connect_ies_2 = { + "connect-ies", + "connect-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_connect_ies_tags_2, + sizeof(asn_DEF_connect_ies_tags_2) + /sizeof(asn_DEF_connect_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_connect_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_connect_ies_tags_2) + /sizeof(asn_DEF_connect_ies_tags_2[0]), /* 2 */ + &asn_PER_type_connect_ies_constr_2, + asn_MBR_connect_ies_2, + 1, /* Single element */ + &asn_SPC_connect_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_Connect_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_Connect, connect_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_connect_ies_2, + memb_connect_ies_constraint_1, + &asn_PER_memb_connect_ies_constr_2, + 0, + "connect-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_Connect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_Connect_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* connect-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_Connect_specs_1 = { + sizeof(struct RUA_Connect), + offsetof(struct RUA_Connect, _asn_ctx), + asn_MAP_RUA_Connect_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Connect = { + "RUA_Connect", + "RUA_Connect", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Connect_tags_1, + sizeof(asn_DEF_RUA_Connect_tags_1) + /sizeof(asn_DEF_RUA_Connect_tags_1[0]), /* 1 */ + asn_DEF_RUA_Connect_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Connect_tags_1) + /sizeof(asn_DEF_RUA_Connect_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_Connect_1, + 1, /* Elements count */ + &asn_SPC_RUA_Connect_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Connect.h b/src/rua/RUA_Connect.h new file mode 100644 index 00000000..54197ff9 --- /dev/null +++ b/src/rua/RUA_Connect.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_Connect_H_ +#define _RUA_Connect_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_Connect */ +typedef struct RUA_Connect { + struct connect_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } connect_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_Connect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Connect; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Connect_H_ */ +#include diff --git a/src/rua/RUA_ConnectionlessTransfer.c b/src/rua/RUA_ConnectionlessTransfer.c new file mode 100644 index 00000000..1e8b6ea5 --- /dev/null +++ b/src/rua/RUA_ConnectionlessTransfer.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_ConnectionlessTransfer.h" + +static int +memb_connectionlessTransfer_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_connectionlessTransfer_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_connectionlessTransfer_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_connectionlessTransfer_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_connectionlessTransfer_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_connectionlessTransfer_ies_specs_2 = { + sizeof(struct connectionlessTransfer_ies), + offsetof(struct connectionlessTransfer_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_connectionlessTransfer_ies_2 = { + "connectionlessTransfer-ies", + "connectionlessTransfer-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_connectionlessTransfer_ies_tags_2, + sizeof(asn_DEF_connectionlessTransfer_ies_tags_2) + /sizeof(asn_DEF_connectionlessTransfer_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_connectionlessTransfer_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_connectionlessTransfer_ies_tags_2) + /sizeof(asn_DEF_connectionlessTransfer_ies_tags_2[0]), /* 2 */ + &asn_PER_type_connectionlessTransfer_ies_constr_2, + asn_MBR_connectionlessTransfer_ies_2, + 1, /* Single element */ + &asn_SPC_connectionlessTransfer_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_ConnectionlessTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_ConnectionlessTransfer, connectionlessTransfer_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_connectionlessTransfer_ies_2, + memb_connectionlessTransfer_ies_constraint_1, + &asn_PER_memb_connectionlessTransfer_ies_constr_2, + 0, + "connectionlessTransfer-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_ConnectionlessTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_ConnectionlessTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* connectionlessTransfer-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_ConnectionlessTransfer_specs_1 = { + sizeof(struct RUA_ConnectionlessTransfer), + offsetof(struct RUA_ConnectionlessTransfer, _asn_ctx), + asn_MAP_RUA_ConnectionlessTransfer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_ConnectionlessTransfer = { + "RUA_ConnectionlessTransfer", + "RUA_ConnectionlessTransfer", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_ConnectionlessTransfer_tags_1, + sizeof(asn_DEF_RUA_ConnectionlessTransfer_tags_1) + /sizeof(asn_DEF_RUA_ConnectionlessTransfer_tags_1[0]), /* 1 */ + asn_DEF_RUA_ConnectionlessTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_ConnectionlessTransfer_tags_1) + /sizeof(asn_DEF_RUA_ConnectionlessTransfer_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_ConnectionlessTransfer_1, + 1, /* Elements count */ + &asn_SPC_RUA_ConnectionlessTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_ConnectionlessTransfer.h b/src/rua/RUA_ConnectionlessTransfer.h new file mode 100644 index 00000000..41f8acae --- /dev/null +++ b/src/rua/RUA_ConnectionlessTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_ConnectionlessTransfer_H_ +#define _RUA_ConnectionlessTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_ConnectionlessTransfer */ +typedef struct RUA_ConnectionlessTransfer { + struct connectionlessTransfer_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } connectionlessTransfer_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_ConnectionlessTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_ConnectionlessTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_ConnectionlessTransfer_H_ */ +#include diff --git a/src/rua/RUA_Context-ID.c b/src/rua/RUA_Context-ID.c new file mode 100644 index 00000000..fdaec9cb --- /dev/null +++ b/src/rua/RUA_Context-ID.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_Context-ID.h" + +int +RUA_Context_ID_constraint(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 == 24l)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static void +RUA_Context_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_BIT_STRING.free_struct; + td->print_struct = asn_DEF_BIT_STRING.print_struct; + td->check_constraints = asn_DEF_BIT_STRING.check_constraints; + td->ber_decoder = asn_DEF_BIT_STRING.ber_decoder; + td->der_encoder = asn_DEF_BIT_STRING.der_encoder; + td->xer_decoder = asn_DEF_BIT_STRING.xer_decoder; + td->xer_encoder = asn_DEF_BIT_STRING.xer_encoder; + td->uper_decoder = asn_DEF_BIT_STRING.uper_decoder; + td->uper_encoder = asn_DEF_BIT_STRING.uper_encoder; + td->aper_decoder = asn_DEF_BIT_STRING.aper_decoder; + td->aper_encoder = asn_DEF_BIT_STRING.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_BIT_STRING.per_constraints; + td->elements = asn_DEF_BIT_STRING.elements; + td->elements_count = asn_DEF_BIT_STRING.elements_count; + td->specifics = asn_DEF_BIT_STRING.specifics; +} + +void +RUA_Context_ID_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_Context_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_Context_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_Context_ID_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_Context_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_Context_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_Context_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_Context_ID_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_Context_ID_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_Context_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Context_ID_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_Context_ID_constr_1 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 24l, 24l } /* (SIZE(24..24)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RUA_Context_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Context_ID = { + "RUA_Context-ID", + "RUA_Context-ID", + RUA_Context_ID_free, + RUA_Context_ID_print, + RUA_Context_ID_constraint, + RUA_Context_ID_decode_ber, + RUA_Context_ID_encode_der, + RUA_Context_ID_decode_xer, + RUA_Context_ID_encode_xer, + RUA_Context_ID_decode_uper, + RUA_Context_ID_encode_uper, + RUA_Context_ID_decode_aper, + RUA_Context_ID_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Context_ID_tags_1, + sizeof(asn_DEF_RUA_Context_ID_tags_1) + /sizeof(asn_DEF_RUA_Context_ID_tags_1[0]), /* 1 */ + asn_DEF_RUA_Context_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Context_ID_tags_1) + /sizeof(asn_DEF_RUA_Context_ID_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_Context_ID_constr_1, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_Context-ID.h b/src/rua/RUA_Context-ID.h new file mode 100644 index 00000000..f4f354c8 --- /dev/null +++ b/src/rua/RUA_Context-ID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_Context_ID_H_ +#define _RUA_Context_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_Context-ID */ +typedef BIT_STRING_t RUA_Context_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Context_ID; +asn_struct_free_f RUA_Context_ID_free; +asn_struct_print_f RUA_Context_ID_print; +asn_constr_check_f RUA_Context_ID_constraint; +ber_type_decoder_f RUA_Context_ID_decode_ber; +der_type_encoder_f RUA_Context_ID_encode_der; +xer_type_decoder_f RUA_Context_ID_decode_xer; +xer_type_encoder_f RUA_Context_ID_encode_xer; +per_type_decoder_f RUA_Context_ID_decode_uper; +per_type_encoder_f RUA_Context_ID_encode_uper; +per_type_decoder_f RUA_Context_ID_decode_aper; +per_type_encoder_f RUA_Context_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Context_ID_H_ */ +#include diff --git a/src/rua/RUA_Criticality.c b/src/rua/RUA_Criticality.c new file mode 100644 index 00000000..a81695c9 --- /dev/null +++ b/src/rua/RUA_Criticality.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_Criticality.h" + +int +RUA_Criticality_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_Criticality_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_Criticality_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_Criticality_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_Criticality_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_Criticality_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_Criticality_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_Criticality_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_Criticality_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_Criticality_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_Criticality_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_Criticality_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Criticality_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_Criticality_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0l, 2l } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_Criticality_value2enum_1[] = { + { 0, 6, "reject" }, + { 1, 6, "ignore" }, + { 2, 6, "notify" } +}; +static const unsigned int asn_MAP_RUA_Criticality_enum2value_1[] = { + 1, /* ignore(1) */ + 2, /* notify(2) */ + 0 /* reject(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_Criticality_specs_1 = { + asn_MAP_RUA_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_Criticality_enum2value_1, /* 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_RUA_Criticality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Criticality = { + "RUA_Criticality", + "RUA_Criticality", + RUA_Criticality_free, + RUA_Criticality_print, + RUA_Criticality_constraint, + RUA_Criticality_decode_ber, + RUA_Criticality_encode_der, + RUA_Criticality_decode_xer, + RUA_Criticality_encode_xer, + RUA_Criticality_decode_uper, + RUA_Criticality_encode_uper, + RUA_Criticality_decode_aper, + RUA_Criticality_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Criticality_tags_1, + sizeof(asn_DEF_RUA_Criticality_tags_1) + /sizeof(asn_DEF_RUA_Criticality_tags_1[0]), /* 1 */ + asn_DEF_RUA_Criticality_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Criticality_tags_1) + /sizeof(asn_DEF_RUA_Criticality_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_Criticality_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_Criticality_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Criticality.h b/src/rua/RUA_Criticality.h new file mode 100644 index 00000000..efd11bce --- /dev/null +++ b/src/rua/RUA_Criticality.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_Criticality_H_ +#define _RUA_Criticality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_Criticality { + RUA_Criticality_reject = 0, + RUA_Criticality_ignore = 1, + RUA_Criticality_notify = 2 +} e_RUA_Criticality; + +/* RUA_Criticality */ +typedef long RUA_Criticality_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Criticality; +asn_struct_free_f RUA_Criticality_free; +asn_struct_print_f RUA_Criticality_print; +asn_constr_check_f RUA_Criticality_constraint; +ber_type_decoder_f RUA_Criticality_decode_ber; +der_type_encoder_f RUA_Criticality_encode_der; +xer_type_decoder_f RUA_Criticality_decode_xer; +xer_type_encoder_f RUA_Criticality_encode_xer; +per_type_decoder_f RUA_Criticality_decode_uper; +per_type_encoder_f RUA_Criticality_encode_uper; +per_type_decoder_f RUA_Criticality_decode_aper; +per_type_encoder_f RUA_Criticality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Criticality_H_ */ +#include diff --git a/src/rua/RUA_CriticalityDiagnostics-IE-List.c b/src/rua/RUA_CriticalityDiagnostics-IE-List.c new file mode 100644 index 00000000..e1f1bee4 --- /dev/null +++ b/src/rua/RUA_CriticalityDiagnostics-IE-List.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CriticalityDiagnostics-IE-List.h" + +static asn_per_constraints_t asn_PER_type_RUA_CriticalityDiagnostics_IE_List_constr_1 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1l, 256l } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct Member, iECriticality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iECriticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct Member, iE_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProtocolIE_ID, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iE-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct Member, typeOfError), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_TypeOfError, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "typeOfError" + }, + { ATF_POINTER, 1, offsetof(struct Member, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_IE_Extensions, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iE-Extensions" + }, +}; +static const int asn_MAP_Member_oms_2[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* typeOfError */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = { + sizeof(struct Member), + offsetof(struct Member, _asn_ctx), + asn_MAP_Member_tag2el_2, + 4, /* Count of tags in the map */ + asn_MAP_Member_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* Start extensions */ + 5 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Member_2 = { + "SEQUENCE", + "SEQUENCE", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_Member_tags_2, + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + asn_DEF_Member_tags_2, /* Same as above */ + sizeof(asn_DEF_Member_tags_2) + /sizeof(asn_DEF_Member_tags_2[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_Member_2, + 4, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_CriticalityDiagnostics_IE_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Member_2, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RUA_CriticalityDiagnostics_IE_List_specs_1 = { + sizeof(struct RUA_CriticalityDiagnostics_IE_List), + offsetof(struct RUA_CriticalityDiagnostics_IE_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CriticalityDiagnostics_IE_List = { + "RUA_CriticalityDiagnostics-IE-List", + "RUA_CriticalityDiagnostics-IE-List", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1, + sizeof(asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_RUA_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_CriticalityDiagnostics_IE_List_constr_1, + asn_MBR_RUA_CriticalityDiagnostics_IE_List_1, + 1, /* Single element */ + &asn_SPC_RUA_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CriticalityDiagnostics-IE-List.h b/src/rua/RUA_CriticalityDiagnostics-IE-List.h new file mode 100644 index 00000000..b7f35c3e --- /dev/null +++ b/src/rua/RUA_CriticalityDiagnostics-IE-List.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CriticalityDiagnostics_IE_List_H_ +#define _RUA_CriticalityDiagnostics_IE_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RUA_Criticality.h" +#include "RUA_ProtocolIE-ID.h" +#include "RUA_TypeOfError.h" +#include "RUA_IE-Extensions.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_CriticalityDiagnostics-IE-List */ +typedef struct RUA_CriticalityDiagnostics_IE_List { + A_SEQUENCE_OF(struct Member { + RUA_Criticality_t iECriticality; + RUA_ProtocolIE_ID_t iE_ID; + RUA_TypeOfError_t typeOfError; + RUA_IE_Extensions_t *iE_Extensions /* OPTIONAL */; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_CriticalityDiagnostics_IE_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CriticalityDiagnostics_IE_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CriticalityDiagnostics_IE_List_H_ */ +#include diff --git a/src/rua/RUA_CriticalityDiagnostics.c b/src/rua/RUA_CriticalityDiagnostics.c new file mode 100644 index 00000000..1ac3bcc5 --- /dev/null +++ b/src/rua/RUA_CriticalityDiagnostics.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_CriticalityDiagnostics.h" + +static asn_TYPE_member_t asn_MBR_RUA_CriticalityDiagnostics_1[] = { + { ATF_POINTER, 5, offsetof(struct RUA_CriticalityDiagnostics, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProcedureCode, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "procedureCode" + }, + { ATF_POINTER, 4, offsetof(struct RUA_CriticalityDiagnostics, triggeringMessage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_TriggeringMessage, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "triggeringMessage" + }, + { ATF_POINTER, 3, offsetof(struct RUA_CriticalityDiagnostics, procedureCriticality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "procedureCriticality" + }, + { ATF_POINTER, 2, offsetof(struct RUA_CriticalityDiagnostics, iEsCriticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_CriticalityDiagnostics_IE_List, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iEsCriticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct RUA_CriticalityDiagnostics, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_IE_Extensions, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iE-Extensions" + }, +}; +static const int asn_MAP_RUA_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RUA_CriticalityDiagnostics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_CriticalityDiagnostics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iEsCriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_CriticalityDiagnostics_specs_1 = { + sizeof(struct RUA_CriticalityDiagnostics), + offsetof(struct RUA_CriticalityDiagnostics, _asn_ctx), + asn_MAP_RUA_CriticalityDiagnostics_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RUA_CriticalityDiagnostics_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 4, /* Start extensions */ + 6 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_CriticalityDiagnostics = { + "RUA_CriticalityDiagnostics", + "RUA_CriticalityDiagnostics", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_CriticalityDiagnostics_tags_1, + sizeof(asn_DEF_RUA_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_RUA_CriticalityDiagnostics_tags_1[0]), /* 1 */ + asn_DEF_RUA_CriticalityDiagnostics_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_RUA_CriticalityDiagnostics_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_CriticalityDiagnostics_1, + 5, /* Elements count */ + &asn_SPC_RUA_CriticalityDiagnostics_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_CriticalityDiagnostics.h b/src/rua/RUA_CriticalityDiagnostics.h new file mode 100644 index 00000000..160da8f5 --- /dev/null +++ b/src/rua/RUA_CriticalityDiagnostics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_CriticalityDiagnostics_H_ +#define _RUA_CriticalityDiagnostics_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_ProcedureCode.h" +#include "RUA_TriggeringMessage.h" +#include "RUA_Criticality.h" +#include "RUA_CriticalityDiagnostics-IE-List.h" +#include "RUA_IE-Extensions.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_CriticalityDiagnostics */ +typedef struct RUA_CriticalityDiagnostics { + RUA_ProcedureCode_t *procedureCode /* OPTIONAL */; + RUA_TriggeringMessage_t *triggeringMessage /* OPTIONAL */; + RUA_Criticality_t *procedureCriticality /* OPTIONAL */; + RUA_CriticalityDiagnostics_IE_List_t *iEsCriticalityDiagnostics /* OPTIONAL */; + RUA_IE_Extensions_t *iE_Extensions /* OPTIONAL */; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_CriticalityDiagnostics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_CriticalityDiagnostics; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_CriticalityDiagnostics_H_ */ +#include diff --git a/src/rua/RUA_DirectTransfer.c b/src/rua/RUA_DirectTransfer.c new file mode 100644 index 00000000..54ed4a53 --- /dev/null +++ b/src/rua/RUA_DirectTransfer.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_DirectTransfer.h" + +static int +memb_directTransfer_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_directTransfer_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_directTransfer_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_directTransfer_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_directTransfer_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_directTransfer_ies_specs_2 = { + sizeof(struct directTransfer_ies), + offsetof(struct directTransfer_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_directTransfer_ies_2 = { + "directTransfer-ies", + "directTransfer-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_directTransfer_ies_tags_2, + sizeof(asn_DEF_directTransfer_ies_tags_2) + /sizeof(asn_DEF_directTransfer_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_directTransfer_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_directTransfer_ies_tags_2) + /sizeof(asn_DEF_directTransfer_ies_tags_2[0]), /* 2 */ + &asn_PER_type_directTransfer_ies_constr_2, + asn_MBR_directTransfer_ies_2, + 1, /* Single element */ + &asn_SPC_directTransfer_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_DirectTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_DirectTransfer, directTransfer_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_directTransfer_ies_2, + memb_directTransfer_ies_constraint_1, + &asn_PER_memb_directTransfer_ies_constr_2, + 0, + "directTransfer-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_DirectTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_DirectTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* directTransfer-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_DirectTransfer_specs_1 = { + sizeof(struct RUA_DirectTransfer), + offsetof(struct RUA_DirectTransfer, _asn_ctx), + asn_MAP_RUA_DirectTransfer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_DirectTransfer = { + "RUA_DirectTransfer", + "RUA_DirectTransfer", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_DirectTransfer_tags_1, + sizeof(asn_DEF_RUA_DirectTransfer_tags_1) + /sizeof(asn_DEF_RUA_DirectTransfer_tags_1[0]), /* 1 */ + asn_DEF_RUA_DirectTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_DirectTransfer_tags_1) + /sizeof(asn_DEF_RUA_DirectTransfer_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_DirectTransfer_1, + 1, /* Elements count */ + &asn_SPC_RUA_DirectTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_DirectTransfer.h b/src/rua/RUA_DirectTransfer.h new file mode 100644 index 00000000..2e985fa1 --- /dev/null +++ b/src/rua/RUA_DirectTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_DirectTransfer_H_ +#define _RUA_DirectTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_DirectTransfer */ +typedef struct RUA_DirectTransfer { + struct directTransfer_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } directTransfer_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_DirectTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_DirectTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_DirectTransfer_H_ */ +#include diff --git a/src/rua/RUA_Disconnect.c b/src/rua/RUA_Disconnect.c new file mode 100644 index 00000000..d4048a49 --- /dev/null +++ b/src/rua/RUA_Disconnect.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_Disconnect.h" + +static int +memb_disconnect_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_disconnect_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_disconnect_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_disconnect_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_disconnect_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_disconnect_ies_specs_2 = { + sizeof(struct disconnect_ies), + offsetof(struct disconnect_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_disconnect_ies_2 = { + "disconnect-ies", + "disconnect-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_disconnect_ies_tags_2, + sizeof(asn_DEF_disconnect_ies_tags_2) + /sizeof(asn_DEF_disconnect_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_disconnect_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_disconnect_ies_tags_2) + /sizeof(asn_DEF_disconnect_ies_tags_2[0]), /* 2 */ + &asn_PER_type_disconnect_ies_constr_2, + asn_MBR_disconnect_ies_2, + 1, /* Single element */ + &asn_SPC_disconnect_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_Disconnect_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_Disconnect, disconnect_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_disconnect_ies_2, + memb_disconnect_ies_constraint_1, + &asn_PER_memb_disconnect_ies_constr_2, + 0, + "disconnect-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_Disconnect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_Disconnect_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* disconnect-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_Disconnect_specs_1 = { + sizeof(struct RUA_Disconnect), + offsetof(struct RUA_Disconnect, _asn_ctx), + asn_MAP_RUA_Disconnect_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Disconnect = { + "RUA_Disconnect", + "RUA_Disconnect", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Disconnect_tags_1, + sizeof(asn_DEF_RUA_Disconnect_tags_1) + /sizeof(asn_DEF_RUA_Disconnect_tags_1[0]), /* 1 */ + asn_DEF_RUA_Disconnect_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Disconnect_tags_1) + /sizeof(asn_DEF_RUA_Disconnect_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_Disconnect_1, + 1, /* Elements count */ + &asn_SPC_RUA_Disconnect_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Disconnect.h b/src/rua/RUA_Disconnect.h new file mode 100644 index 00000000..b7a6983a --- /dev/null +++ b/src/rua/RUA_Disconnect.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_Disconnect_H_ +#define _RUA_Disconnect_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_Disconnect */ +typedef struct RUA_Disconnect { + struct disconnect_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } disconnect_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_Disconnect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Disconnect; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Disconnect_H_ */ +#include diff --git a/src/rua/RUA_ErrorIndication.c b/src/rua/RUA_ErrorIndication.c new file mode 100644 index 00000000..02cac890 --- /dev/null +++ b/src/rua/RUA_ErrorIndication.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_ErrorIndication.h" + +static int +memb_errorIndication_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_errorIndication_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_errorIndication_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_errorIndication_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_errorIndication_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_errorIndication_ies_specs_2 = { + sizeof(struct errorIndication_ies), + offsetof(struct errorIndication_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_errorIndication_ies_2 = { + "errorIndication-ies", + "errorIndication-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_errorIndication_ies_tags_2, + sizeof(asn_DEF_errorIndication_ies_tags_2) + /sizeof(asn_DEF_errorIndication_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_errorIndication_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_errorIndication_ies_tags_2) + /sizeof(asn_DEF_errorIndication_ies_tags_2[0]), /* 2 */ + &asn_PER_type_errorIndication_ies_constr_2, + asn_MBR_errorIndication_ies_2, + 1, /* Single element */ + &asn_SPC_errorIndication_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_ErrorIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_ErrorIndication, errorIndication_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_errorIndication_ies_2, + memb_errorIndication_ies_constraint_1, + &asn_PER_memb_errorIndication_ies_constr_2, + 0, + "errorIndication-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_ErrorIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_ErrorIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* errorIndication-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_ErrorIndication_specs_1 = { + sizeof(struct RUA_ErrorIndication), + offsetof(struct RUA_ErrorIndication, _asn_ctx), + asn_MAP_RUA_ErrorIndication_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_ErrorIndication = { + "RUA_ErrorIndication", + "RUA_ErrorIndication", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_ErrorIndication_tags_1, + sizeof(asn_DEF_RUA_ErrorIndication_tags_1) + /sizeof(asn_DEF_RUA_ErrorIndication_tags_1[0]), /* 1 */ + asn_DEF_RUA_ErrorIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_ErrorIndication_tags_1) + /sizeof(asn_DEF_RUA_ErrorIndication_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_ErrorIndication_1, + 1, /* Elements count */ + &asn_SPC_RUA_ErrorIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_ErrorIndication.h b/src/rua/RUA_ErrorIndication.h new file mode 100644 index 00000000..f48e9f73 --- /dev/null +++ b/src/rua/RUA_ErrorIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_ErrorIndication_H_ +#define _RUA_ErrorIndication_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_ErrorIndication */ +typedef struct RUA_ErrorIndication { + struct errorIndication_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } errorIndication_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_ErrorIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_ErrorIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_ErrorIndication_H_ */ +#include diff --git a/src/rua/RUA_Establishment-Cause.c b/src/rua/RUA_Establishment-Cause.c new file mode 100644 index 00000000..fd92e4b4 --- /dev/null +++ b/src/rua/RUA_Establishment-Cause.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_Establishment-Cause.h" + +int +RUA_Establishment_Cause_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_Establishment_Cause_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_Establishment_Cause_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_Establishment_Cause_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_Establishment_Cause_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_Establishment_Cause_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_Establishment_Cause_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_Establishment_Cause_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_Establishment_Cause_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_Establishment_Cause_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_Establishment_Cause_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_Establishment_Cause_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Establishment_Cause_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_Establishment_Cause_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0l, 1l } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_Establishment_Cause_value2enum_1[] = { + { 0, 14, "emergency-call" }, + { 1, 11, "normal-call" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_Establishment_Cause_enum2value_1[] = { + 0, /* emergency-call(0) */ + 1 /* normal-call(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_Establishment_Cause_specs_1 = { + asn_MAP_RUA_Establishment_Cause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_Establishment_Cause_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_Establishment_Cause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Establishment_Cause = { + "RUA_Establishment-Cause", + "RUA_Establishment-Cause", + RUA_Establishment_Cause_free, + RUA_Establishment_Cause_print, + RUA_Establishment_Cause_constraint, + RUA_Establishment_Cause_decode_ber, + RUA_Establishment_Cause_encode_der, + RUA_Establishment_Cause_decode_xer, + RUA_Establishment_Cause_encode_xer, + RUA_Establishment_Cause_decode_uper, + RUA_Establishment_Cause_encode_uper, + RUA_Establishment_Cause_decode_aper, + RUA_Establishment_Cause_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Establishment_Cause_tags_1, + sizeof(asn_DEF_RUA_Establishment_Cause_tags_1) + /sizeof(asn_DEF_RUA_Establishment_Cause_tags_1[0]), /* 1 */ + asn_DEF_RUA_Establishment_Cause_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Establishment_Cause_tags_1) + /sizeof(asn_DEF_RUA_Establishment_Cause_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_Establishment_Cause_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_Establishment_Cause_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Establishment-Cause.h b/src/rua/RUA_Establishment-Cause.h new file mode 100644 index 00000000..0ab1a013 --- /dev/null +++ b/src/rua/RUA_Establishment-Cause.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_Establishment_Cause_H_ +#define _RUA_Establishment_Cause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_Establishment_Cause { + RUA_Establishment_Cause_emergency_call = 0, + RUA_Establishment_Cause_normal_call = 1 + /* + * Enumeration is extensible + */ +} e_RUA_Establishment_Cause; + +/* RUA_Establishment-Cause */ +typedef long RUA_Establishment_Cause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Establishment_Cause; +asn_struct_free_f RUA_Establishment_Cause_free; +asn_struct_print_f RUA_Establishment_Cause_print; +asn_constr_check_f RUA_Establishment_Cause_constraint; +ber_type_decoder_f RUA_Establishment_Cause_decode_ber; +der_type_encoder_f RUA_Establishment_Cause_encode_der; +xer_type_decoder_f RUA_Establishment_Cause_decode_xer; +xer_type_encoder_f RUA_Establishment_Cause_encode_xer; +per_type_decoder_f RUA_Establishment_Cause_decode_uper; +per_type_encoder_f RUA_Establishment_Cause_encode_uper; +per_type_decoder_f RUA_Establishment_Cause_decode_aper; +per_type_encoder_f RUA_Establishment_Cause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Establishment_Cause_H_ */ +#include diff --git a/src/rua/RUA_Gsm-map-IDNNS.c b/src/rua/RUA_Gsm-map-IDNNS.c new file mode 100644 index 00000000..fc018f5c --- /dev/null +++ b/src/rua/RUA_Gsm-map-IDNNS.c @@ -0,0 +1,636 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_Gsm-map-IDNNS.h" + +static asn_per_constraints_t asn_PER_type_routingbasis_constr_2 GCC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0l, 7l } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_localPTMSI_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct localPTMSI, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_localPTMSI_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_localPTMSI_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_localPTMSI_specs_3 = { + sizeof(struct localPTMSI), + offsetof(struct localPTMSI, _asn_ctx), + asn_MAP_localPTMSI_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_localPTMSI_3 = { + "localPTMSI", + "localPTMSI", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_localPTMSI_tags_3, + sizeof(asn_DEF_localPTMSI_tags_3) + /sizeof(asn_DEF_localPTMSI_tags_3[0]) - 1, /* 1 */ + asn_DEF_localPTMSI_tags_3, /* Same as above */ + sizeof(asn_DEF_localPTMSI_tags_3) + /sizeof(asn_DEF_localPTMSI_tags_3[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_localPTMSI_3, + 1, /* Elements count */ + &asn_SPC_localPTMSI_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tMSIofsamePLMN_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct tMSIofsamePLMN, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_tMSIofsamePLMN_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_tMSIofsamePLMN_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_tMSIofsamePLMN_specs_5 = { + sizeof(struct tMSIofsamePLMN), + offsetof(struct tMSIofsamePLMN, _asn_ctx), + asn_MAP_tMSIofsamePLMN_tag2el_5, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tMSIofsamePLMN_5 = { + "tMSIofsamePLMN", + "tMSIofsamePLMN", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_tMSIofsamePLMN_tags_5, + sizeof(asn_DEF_tMSIofsamePLMN_tags_5) + /sizeof(asn_DEF_tMSIofsamePLMN_tags_5[0]) - 1, /* 1 */ + asn_DEF_tMSIofsamePLMN_tags_5, /* Same as above */ + sizeof(asn_DEF_tMSIofsamePLMN_tags_5) + /sizeof(asn_DEF_tMSIofsamePLMN_tags_5[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_tMSIofsamePLMN_5, + 1, /* Elements count */ + &asn_SPC_tMSIofsamePLMN_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tMSIofdifferentPLMN_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct tMSIofdifferentPLMN, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_tMSIofdifferentPLMN_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_tMSIofdifferentPLMN_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_tMSIofdifferentPLMN_specs_7 = { + sizeof(struct tMSIofdifferentPLMN), + offsetof(struct tMSIofdifferentPLMN, _asn_ctx), + asn_MAP_tMSIofdifferentPLMN_tag2el_7, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tMSIofdifferentPLMN_7 = { + "tMSIofdifferentPLMN", + "tMSIofdifferentPLMN", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_tMSIofdifferentPLMN_tags_7, + sizeof(asn_DEF_tMSIofdifferentPLMN_tags_7) + /sizeof(asn_DEF_tMSIofdifferentPLMN_tags_7[0]) - 1, /* 1 */ + asn_DEF_tMSIofdifferentPLMN_tags_7, /* Same as above */ + sizeof(asn_DEF_tMSIofdifferentPLMN_tags_7) + /sizeof(asn_DEF_tMSIofdifferentPLMN_tags_7[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_tMSIofdifferentPLMN_7, + 1, /* Elements count */ + &asn_SPC_tMSIofdifferentPLMN_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_iMSIresponsetopaging_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct iMSIresponsetopaging, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_iMSIresponsetopaging_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_iMSIresponsetopaging_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_iMSIresponsetopaging_specs_9 = { + sizeof(struct iMSIresponsetopaging), + offsetof(struct iMSIresponsetopaging, _asn_ctx), + asn_MAP_iMSIresponsetopaging_tag2el_9, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_iMSIresponsetopaging_9 = { + "iMSIresponsetopaging", + "iMSIresponsetopaging", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_iMSIresponsetopaging_tags_9, + sizeof(asn_DEF_iMSIresponsetopaging_tags_9) + /sizeof(asn_DEF_iMSIresponsetopaging_tags_9[0]) - 1, /* 1 */ + asn_DEF_iMSIresponsetopaging_tags_9, /* Same as above */ + sizeof(asn_DEF_iMSIresponsetopaging_tags_9) + /sizeof(asn_DEF_iMSIresponsetopaging_tags_9[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_iMSIresponsetopaging_9, + 1, /* Elements count */ + &asn_SPC_iMSIresponsetopaging_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_iMSIcauseUEinitiatedEvent_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct iMSIcauseUEinitiatedEvent, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_iMSIcauseUEinitiatedEvent_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_iMSIcauseUEinitiatedEvent_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_iMSIcauseUEinitiatedEvent_specs_11 = { + sizeof(struct iMSIcauseUEinitiatedEvent), + offsetof(struct iMSIcauseUEinitiatedEvent, _asn_ctx), + asn_MAP_iMSIcauseUEinitiatedEvent_tag2el_11, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_iMSIcauseUEinitiatedEvent_11 = { + "iMSIcauseUEinitiatedEvent", + "iMSIcauseUEinitiatedEvent", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_iMSIcauseUEinitiatedEvent_tags_11, + sizeof(asn_DEF_iMSIcauseUEinitiatedEvent_tags_11) + /sizeof(asn_DEF_iMSIcauseUEinitiatedEvent_tags_11[0]) - 1, /* 1 */ + asn_DEF_iMSIcauseUEinitiatedEvent_tags_11, /* Same as above */ + sizeof(asn_DEF_iMSIcauseUEinitiatedEvent_tags_11) + /sizeof(asn_DEF_iMSIcauseUEinitiatedEvent_tags_11[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_iMSIcauseUEinitiatedEvent_11, + 1, /* Elements count */ + &asn_SPC_iMSIcauseUEinitiatedEvent_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_iMEI_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct iMEI, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_iMEI_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_iMEI_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_iMEI_specs_13 = { + sizeof(struct iMEI), + offsetof(struct iMEI, _asn_ctx), + asn_MAP_iMEI_tag2el_13, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_iMEI_13 = { + "iMEI", + "iMEI", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_iMEI_tags_13, + sizeof(asn_DEF_iMEI_tags_13) + /sizeof(asn_DEF_iMEI_tags_13[0]) - 1, /* 1 */ + asn_DEF_iMEI_tags_13, /* Same as above */ + sizeof(asn_DEF_iMEI_tags_13) + /sizeof(asn_DEF_iMEI_tags_13[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_iMEI_13, + 1, /* Elements count */ + &asn_SPC_iMEI_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spare2_15[] = { + { ATF_NOFLAGS, 0, offsetof(struct spare2, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_spare2_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spare2_tag2el_15[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spare2_specs_15 = { + sizeof(struct spare2), + offsetof(struct spare2, _asn_ctx), + asn_MAP_spare2_tag2el_15, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spare2_15 = { + "spare2", + "spare2", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_spare2_tags_15, + sizeof(asn_DEF_spare2_tags_15) + /sizeof(asn_DEF_spare2_tags_15[0]) - 1, /* 1 */ + asn_DEF_spare2_tags_15, /* Same as above */ + sizeof(asn_DEF_spare2_tags_15) + /sizeof(asn_DEF_spare2_tags_15[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_spare2_15, + 1, /* Elements count */ + &asn_SPC_spare2_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spare1_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct spare1, routingparameter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_RoutingParameter, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingparameter" + }, +}; +static const ber_tlv_tag_t asn_DEF_spare1_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spare1_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* routingparameter */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spare1_specs_17 = { + sizeof(struct spare1), + offsetof(struct spare1, _asn_ctx), + asn_MAP_spare1_tag2el_17, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spare1_17 = { + "spare1", + "spare1", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_spare1_tags_17, + sizeof(asn_DEF_spare1_tags_17) + /sizeof(asn_DEF_spare1_tags_17[0]) - 1, /* 1 */ + asn_DEF_spare1_tags_17, /* Same as above */ + sizeof(asn_DEF_spare1_tags_17) + /sizeof(asn_DEF_spare1_tags_17[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_spare1_17, + 1, /* Elements count */ + &asn_SPC_spare1_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_routingbasis_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.localPTMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_localPTMSI_3, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "localPTMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.tMSIofsamePLMN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_tMSIofsamePLMN_5, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "tMSIofsamePLMN" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.tMSIofdifferentPLMN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_tMSIofdifferentPLMN_7, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "tMSIofdifferentPLMN" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.iMSIresponsetopaging), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_iMSIresponsetopaging_9, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iMSIresponsetopaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.iMSIcauseUEinitiatedEvent), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_iMSIcauseUEinitiatedEvent_11, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iMSIcauseUEinitiatedEvent" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.iMEI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_iMEI_13, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "iMEI" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_spare2_15, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct routingbasis, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_spare1_17, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_routingbasis_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* localPTMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tMSIofsamePLMN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tMSIofdifferentPLMN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* iMSIresponsetopaging */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* iMSIcauseUEinitiatedEvent */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* iMEI */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_routingbasis_specs_2 = { + sizeof(struct routingbasis), + offsetof(struct routingbasis, _asn_ctx), + offsetof(struct routingbasis, present), + sizeof(((struct routingbasis *)0)->present), + asn_MAP_routingbasis_tag2el_2, + 8, /* Count of tags in the map */ + 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_routingbasis_2 = { + "routingbasis", + "routingbasis", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_routingbasis_constr_2, + asn_MBR_routingbasis_2, + 8, /* Elements count */ + &asn_SPC_routingbasis_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_Gsm_map_IDNNS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_Gsm_map_IDNNS, routingbasis), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_routingbasis_2, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "routingbasis" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_Gsm_map_IDNNS, dummy), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "dummy" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_Gsm_map_IDNNS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_Gsm_map_IDNNS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* routingbasis */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dummy */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_Gsm_map_IDNNS_specs_1 = { + sizeof(struct RUA_Gsm_map_IDNNS), + offsetof(struct RUA_Gsm_map_IDNNS, _asn_ctx), + asn_MAP_RUA_Gsm_map_IDNNS_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Gsm_map_IDNNS = { + "RUA_Gsm-map-IDNNS", + "RUA_Gsm-map-IDNNS", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Gsm_map_IDNNS_tags_1, + sizeof(asn_DEF_RUA_Gsm_map_IDNNS_tags_1) + /sizeof(asn_DEF_RUA_Gsm_map_IDNNS_tags_1[0]), /* 1 */ + asn_DEF_RUA_Gsm_map_IDNNS_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Gsm_map_IDNNS_tags_1) + /sizeof(asn_DEF_RUA_Gsm_map_IDNNS_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_Gsm_map_IDNNS_1, + 2, /* Elements count */ + &asn_SPC_RUA_Gsm_map_IDNNS_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Gsm-map-IDNNS.h b/src/rua/RUA_Gsm-map-IDNNS.h new file mode 100644 index 00000000..4b009954 --- /dev/null +++ b/src/rua/RUA_Gsm-map-IDNNS.h @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_Gsm_map_IDNNS_H_ +#define _RUA_Gsm_map_IDNNS_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RUA_RoutingParameter.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum routingbasis_PR { + routingbasis_PR_NOTHING, /* No components present */ + routingbasis_PR_localPTMSI, + routingbasis_PR_tMSIofsamePLMN, + routingbasis_PR_tMSIofdifferentPLMN, + routingbasis_PR_iMSIresponsetopaging, + routingbasis_PR_iMSIcauseUEinitiatedEvent, + routingbasis_PR_iMEI, + routingbasis_PR_spare2, + routingbasis_PR_spare1 +} routingbasis_PR; + +/* RUA_Gsm-map-IDNNS */ +typedef struct RUA_Gsm_map_IDNNS { + struct routingbasis { + routingbasis_PR present; + union RUA_Gsm_map_IDNNS__routingbasis_u { + struct localPTMSI { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } localPTMSI; + struct tMSIofsamePLMN { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } tMSIofsamePLMN; + struct tMSIofdifferentPLMN { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } tMSIofdifferentPLMN; + struct iMSIresponsetopaging { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } iMSIresponsetopaging; + struct iMSIcauseUEinitiatedEvent { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } iMSIcauseUEinitiatedEvent; + struct iMEI { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } iMEI; + struct spare2 { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } spare2; + struct spare1 { + RUA_RoutingParameter_t routingparameter; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } routingbasis; + BOOLEAN_t dummy; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_Gsm_map_IDNNS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Gsm_map_IDNNS; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Gsm_map_IDNNS_H_ */ +#include diff --git a/src/rua/RUA_IE-Extensions.c b/src/rua/RUA_IE-Extensions.c new file mode 100644 index 00000000..36e72aa3 --- /dev/null +++ b/src/rua/RUA_IE-Extensions.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_IE-Extensions.h" + +static asn_per_constraints_t asn_PER_type_RUA_IE_Extensions_constr_1 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1l, 65535l } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RUA_IE_Extensions_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_IE_Extensions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RUA_IE_Extensions_specs_1 = { + sizeof(struct RUA_IE_Extensions), + offsetof(struct RUA_IE_Extensions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_IE_Extensions = { + "RUA_IE-Extensions", + "RUA_IE-Extensions", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_IE_Extensions_tags_1, + sizeof(asn_DEF_RUA_IE_Extensions_tags_1) + /sizeof(asn_DEF_RUA_IE_Extensions_tags_1[0]), /* 1 */ + asn_DEF_RUA_IE_Extensions_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_IE_Extensions_tags_1) + /sizeof(asn_DEF_RUA_IE_Extensions_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_IE_Extensions_constr_1, + asn_MBR_RUA_IE_Extensions_1, + 1, /* Single element */ + &asn_SPC_RUA_IE_Extensions_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_IE-Extensions.h b/src/rua/RUA_IE-Extensions.h new file mode 100644 index 00000000..5223f974 --- /dev/null +++ b/src/rua/RUA_IE-Extensions.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_IE_Extensions_H_ +#define _RUA_IE_Extensions_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_IE-Extensions */ +typedef struct RUA_IE_Extensions { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_IE_Extensions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_IE_Extensions; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_IE_Extensions_H_ */ +#include diff --git a/src/rua/RUA_IE.c b/src/rua/RUA_IE.c new file mode 100644 index 00000000..3bca72eb --- /dev/null +++ b/src/rua/RUA_IE.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_IE.h" + +static asn_TYPE_member_t asn_MBR_RUA_IE_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_IE, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProtocolIE_ID, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_IE, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "criticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_IE, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_IE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_IE_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_IE_specs_1 = { + sizeof(struct RUA_IE), + offsetof(struct RUA_IE, _asn_ctx), + asn_MAP_RUA_IE_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_IE = { + "RUA_IE", + "RUA_IE", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_IE_tags_1, + sizeof(asn_DEF_RUA_IE_tags_1) + /sizeof(asn_DEF_RUA_IE_tags_1[0]), /* 1 */ + asn_DEF_RUA_IE_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_IE_tags_1) + /sizeof(asn_DEF_RUA_IE_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_IE_1, + 3, /* Elements count */ + &asn_SPC_RUA_IE_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_IE.h b/src/rua/RUA_IE.h new file mode 100644 index 00000000..5ab991c4 --- /dev/null +++ b/src/rua/RUA_IE.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_IE_H_ +#define _RUA_IE_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_ProtocolIE-ID.h" +#include "RUA_Criticality.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_IE */ +typedef struct RUA_IE { + RUA_ProtocolIE_ID_t id; + RUA_Criticality_t criticality; + ANY_t value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_IE_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_IE; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_IE_H_ */ +#include diff --git a/src/rua/RUA_InitiatingMessage.c b/src/rua/RUA_InitiatingMessage.c new file mode 100644 index 00000000..a8c84254 --- /dev/null +++ b/src/rua/RUA_InitiatingMessage.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_InitiatingMessage.h" + +static asn_TYPE_member_t asn_MBR_RUA_InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProcedureCode, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "criticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_InitiatingMessage_specs_1 = { + sizeof(struct RUA_InitiatingMessage), + offsetof(struct RUA_InitiatingMessage, _asn_ctx), + asn_MAP_RUA_InitiatingMessage_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_InitiatingMessage = { + "RUA_InitiatingMessage", + "RUA_InitiatingMessage", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_InitiatingMessage_tags_1, + sizeof(asn_DEF_RUA_InitiatingMessage_tags_1) + /sizeof(asn_DEF_RUA_InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_RUA_InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_InitiatingMessage_tags_1) + /sizeof(asn_DEF_RUA_InitiatingMessage_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_RUA_InitiatingMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_InitiatingMessage.h b/src/rua/RUA_InitiatingMessage.h new file mode 100644 index 00000000..d432ee42 --- /dev/null +++ b/src/rua/RUA_InitiatingMessage.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_InitiatingMessage_H_ +#define _RUA_InitiatingMessage_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_ProcedureCode.h" +#include "RUA_Criticality.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_InitiatingMessage */ +typedef struct RUA_InitiatingMessage { + RUA_ProcedureCode_t procedureCode; + RUA_Criticality_t criticality; + ANY_t value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_InitiatingMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_InitiatingMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_InitiatingMessage_H_ */ +#include diff --git a/src/rua/RUA_IntraDomainNasNodeSelector.c b/src/rua/RUA_IntraDomainNasNodeSelector.c new file mode 100644 index 00000000..066e4e10 --- /dev/null +++ b/src/rua/RUA_IntraDomainNasNodeSelector.c @@ -0,0 +1,337 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_IntraDomainNasNodeSelector.h" + +static int +memb_futurecoding_constraint_7(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 == 15l)) { + /* 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_per_constraints_t asn_PER_type_cn_Type_constr_4 GCC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0l, 1l } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_futurecoding_constr_8 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 15l, 15l } /* (SIZE(15..15)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_version_constr_2 GCC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0l, 1l } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_cn_Type_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct cn_Type, choice.gsm_Map_IDNNS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Gsm_map_IDNNS, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "gsm-Map-IDNNS" + }, + { ATF_NOFLAGS, 0, offsetof(struct cn_Type, choice.ansi_41_IDNNS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Ansi_41_IDNNS, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "ansi-41-IDNNS" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cn_Type_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gsm-Map-IDNNS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ansi-41-IDNNS */ +}; +static asn_CHOICE_specifics_t asn_SPC_cn_Type_specs_4 = { + sizeof(struct cn_Type), + offsetof(struct cn_Type, _asn_ctx), + offsetof(struct cn_Type, present), + sizeof(((struct cn_Type *)0)->present), + asn_MAP_cn_Type_tag2el_4, + 2, /* Count of tags in the map */ + 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cn_Type_4 = { + "cn-Type", + "cn-Type", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_cn_Type_constr_4, + asn_MBR_cn_Type_4, + 2, /* Elements count */ + &asn_SPC_cn_Type_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_release99_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct release99, cn_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cn_Type_4, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "cn-Type" + }, +}; +static const ber_tlv_tag_t asn_DEF_release99_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_release99_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cn-Type */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_release99_specs_3 = { + sizeof(struct release99), + offsetof(struct release99, _asn_ctx), + asn_MAP_release99_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_release99_3 = { + "release99", + "release99", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_release99_tags_3, + sizeof(asn_DEF_release99_tags_3) + /sizeof(asn_DEF_release99_tags_3[0]) - 1, /* 1 */ + asn_DEF_release99_tags_3, /* Same as above */ + sizeof(asn_DEF_release99_tags_3) + /sizeof(asn_DEF_release99_tags_3[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_release99_3, + 1, /* Elements count */ + &asn_SPC_release99_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_later_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct later, futurecoding), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + memb_futurecoding_constraint_7, + &asn_PER_memb_futurecoding_constr_8, + 0, + "futurecoding" + }, +}; +static const ber_tlv_tag_t asn_DEF_later_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_later_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* futurecoding */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_later_specs_7 = { + sizeof(struct later), + offsetof(struct later, _asn_ctx), + asn_MAP_later_tag2el_7, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_later_7 = { + "later", + "later", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_later_tags_7, + sizeof(asn_DEF_later_tags_7) + /sizeof(asn_DEF_later_tags_7[0]) - 1, /* 1 */ + asn_DEF_later_tags_7, /* Same as above */ + sizeof(asn_DEF_later_tags_7) + /sizeof(asn_DEF_later_tags_7[0]), /* 2 */ + 0, /* No PER visible constraints */ + asn_MBR_later_7, + 1, /* Elements count */ + &asn_SPC_later_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_version_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct version, choice.release99), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_release99_3, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "release99" + }, + { ATF_NOFLAGS, 0, offsetof(struct version, choice.later), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_later_7, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "later" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_version_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release99 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* later */ +}; +static asn_CHOICE_specifics_t asn_SPC_version_specs_2 = { + sizeof(struct version), + offsetof(struct version, _asn_ctx), + offsetof(struct version, present), + sizeof(((struct version *)0)->present), + asn_MAP_version_tag2el_2, + 2, /* Count of tags in the map */ + 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_version_2 = { + "version", + "version", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_version_constr_2, + asn_MBR_version_2, + 2, /* Elements count */ + &asn_SPC_version_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_IntraDomainNasNodeSelector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_IntraDomainNasNodeSelector, version), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_version_2, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "version" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_IntraDomainNasNodeSelector_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* version */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_IntraDomainNasNodeSelector_specs_1 = { + sizeof(struct RUA_IntraDomainNasNodeSelector), + offsetof(struct RUA_IntraDomainNasNodeSelector, _asn_ctx), + asn_MAP_RUA_IntraDomainNasNodeSelector_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_IntraDomainNasNodeSelector = { + "RUA_IntraDomainNasNodeSelector", + "RUA_IntraDomainNasNodeSelector", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1, + sizeof(asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1) + /sizeof(asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1[0]), /* 1 */ + asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1) + /sizeof(asn_DEF_RUA_IntraDomainNasNodeSelector_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_IntraDomainNasNodeSelector_1, + 1, /* Elements count */ + &asn_SPC_RUA_IntraDomainNasNodeSelector_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_IntraDomainNasNodeSelector.h b/src/rua/RUA_IntraDomainNasNodeSelector.h new file mode 100644 index 00000000..61e708b7 --- /dev/null +++ b/src/rua/RUA_IntraDomainNasNodeSelector.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_IntraDomainNasNodeSelector_H_ +#define _RUA_IntraDomainNasNodeSelector_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_Gsm-map-IDNNS.h" +#include "RUA_Ansi-41-IDNNS.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum version_PR { + version_PR_NOTHING, /* No components present */ + version_PR_release99, + version_PR_later +} version_PR; +typedef enum cn_Type_PR { + cn_Type_PR_NOTHING, /* No components present */ + cn_Type_PR_gsm_Map_IDNNS, + cn_Type_PR_ansi_41_IDNNS +} cn_Type_PR; + +/* RUA_IntraDomainNasNodeSelector */ +typedef struct RUA_IntraDomainNasNodeSelector { + struct version { + version_PR present; + union RUA_IntraDomainNasNodeSelector__version_u { + struct release99 { + struct cn_Type { + cn_Type_PR present; + union RUA_IntraDomainNasNodeSelector__version__release99__cn_Type_u { + RUA_Gsm_map_IDNNS_t gsm_Map_IDNNS; + RUA_Ansi_41_IDNNS_t ansi_41_IDNNS; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cn_Type; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } release99; + struct later { + BIT_STRING_t futurecoding; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } later; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } version; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_IntraDomainNasNodeSelector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_IntraDomainNasNodeSelector; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_IntraDomainNasNodeSelector_H_ */ +#include diff --git a/src/rua/RUA_Presence.c b/src/rua/RUA_Presence.c new file mode 100644 index 00000000..0a5d5631 --- /dev/null +++ b/src/rua/RUA_Presence.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_Presence.h" + +int +RUA_Presence_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_Presence_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_Presence_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_Presence_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_Presence_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_Presence_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_Presence_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_Presence_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_Presence_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_Presence_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_Presence_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_Presence_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_Presence_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_Presence_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0l, 2l } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_Presence_value2enum_1[] = { + { 0, 8, "optional" }, + { 1, 11, "conditional" }, + { 2, 9, "mandatory" } +}; +static const unsigned int asn_MAP_RUA_Presence_enum2value_1[] = { + 1, /* conditional(1) */ + 2, /* mandatory(2) */ + 0 /* optional(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_Presence_specs_1 = { + asn_MAP_RUA_Presence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_Presence_enum2value_1, /* 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_RUA_Presence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_Presence = { + "RUA_Presence", + "RUA_Presence", + RUA_Presence_free, + RUA_Presence_print, + RUA_Presence_constraint, + RUA_Presence_decode_ber, + RUA_Presence_encode_der, + RUA_Presence_decode_xer, + RUA_Presence_encode_xer, + RUA_Presence_decode_uper, + RUA_Presence_encode_uper, + RUA_Presence_decode_aper, + RUA_Presence_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_Presence_tags_1, + sizeof(asn_DEF_RUA_Presence_tags_1) + /sizeof(asn_DEF_RUA_Presence_tags_1[0]), /* 1 */ + asn_DEF_RUA_Presence_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_Presence_tags_1) + /sizeof(asn_DEF_RUA_Presence_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_Presence_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_Presence_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_Presence.h b/src/rua/RUA_Presence.h new file mode 100644 index 00000000..90faf887 --- /dev/null +++ b/src/rua/RUA_Presence.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_Presence_H_ +#define _RUA_Presence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_Presence { + RUA_Presence_optional = 0, + RUA_Presence_conditional = 1, + RUA_Presence_mandatory = 2 +} e_RUA_Presence; + +/* RUA_Presence */ +typedef long RUA_Presence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_Presence; +asn_struct_free_f RUA_Presence_free; +asn_struct_print_f RUA_Presence_print; +asn_constr_check_f RUA_Presence_constraint; +ber_type_decoder_f RUA_Presence_decode_ber; +der_type_encoder_f RUA_Presence_encode_der; +xer_type_decoder_f RUA_Presence_decode_xer; +xer_type_encoder_f RUA_Presence_encode_xer; +per_type_decoder_f RUA_Presence_decode_uper; +per_type_encoder_f RUA_Presence_encode_uper; +per_type_decoder_f RUA_Presence_decode_aper; +per_type_encoder_f RUA_Presence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_Presence_H_ */ +#include diff --git a/src/rua/RUA_PrivateIE-ID.c b/src/rua/RUA_PrivateIE-ID.c new file mode 100644 index 00000000..33c258b2 --- /dev/null +++ b/src/rua/RUA_PrivateIE-ID.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_PrivateIE-ID.h" + +static int +memb_local_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0l && value <= 65535l)) { + /* 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_per_constraints_t asn_PER_memb_local_constr_2 GCC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_RUA_PrivateIE_ID_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0l, 1l } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RUA_PrivateIE_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_PrivateIE_ID, choice.local), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + memb_local_constraint_1, + &asn_PER_memb_local_constr_2, + 0, + "local" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_PrivateIE_ID, choice.global), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OBJECT_IDENTIFIER, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "global" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_PrivateIE_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global */ +}; +static asn_CHOICE_specifics_t asn_SPC_RUA_PrivateIE_ID_specs_1 = { + sizeof(struct RUA_PrivateIE_ID), + offsetof(struct RUA_PrivateIE_ID, _asn_ctx), + offsetof(struct RUA_PrivateIE_ID, present), + sizeof(((struct RUA_PrivateIE_ID *)0)->present), + asn_MAP_RUA_PrivateIE_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_PrivateIE_ID = { + "RUA_PrivateIE-ID", + "RUA_PrivateIE-ID", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_RUA_PrivateIE_ID_constr_1, + asn_MBR_RUA_PrivateIE_ID_1, + 2, /* Elements count */ + &asn_SPC_RUA_PrivateIE_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_PrivateIE-ID.h b/src/rua/RUA_PrivateIE-ID.h new file mode 100644 index 00000000..cc7c3104 --- /dev/null +++ b/src/rua/RUA_PrivateIE-ID.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_PrivateIE_ID_H_ +#define _RUA_PrivateIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_PrivateIE_ID_PR { + RUA_PrivateIE_ID_PR_NOTHING, /* No components present */ + RUA_PrivateIE_ID_PR_local, + RUA_PrivateIE_ID_PR_global +} RUA_PrivateIE_ID_PR; + +/* RUA_PrivateIE-ID */ +typedef struct RUA_PrivateIE_ID { + RUA_PrivateIE_ID_PR present; + union RUA_PrivateIE_ID_u { + long local; + OBJECT_IDENTIFIER_t global; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_PrivateIE_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_PrivateIE_ID; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_PrivateIE_ID_H_ */ +#include diff --git a/src/rua/RUA_PrivateMessage.c b/src/rua/RUA_PrivateMessage.c new file mode 100644 index 00000000..a968cf1a --- /dev/null +++ b/src/rua/RUA_PrivateMessage.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_PrivateMessage.h" + +static int +memb_privateMessage_ies_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size <= 65535l)) { + /* Perform validation of the inner elements */ + return td->check_constraints(td, sptr, ctfailcb, app_key); + } else { + _ASN_CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_per_constraints_t asn_PER_type_privateMessage_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_privateMessage_ies_constr_2 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_privateMessage_ies_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RUA_IE, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_privateMessage_ies_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_privateMessage_ies_specs_2 = { + sizeof(struct privateMessage_ies), + offsetof(struct privateMessage_ies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_privateMessage_ies_2 = { + "privateMessage-ies", + "privateMessage-ies", + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_constraint, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, + SEQUENCE_OF_decode_uper, + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_privateMessage_ies_tags_2, + sizeof(asn_DEF_privateMessage_ies_tags_2) + /sizeof(asn_DEF_privateMessage_ies_tags_2[0]) - 1, /* 1 */ + asn_DEF_privateMessage_ies_tags_2, /* Same as above */ + sizeof(asn_DEF_privateMessage_ies_tags_2) + /sizeof(asn_DEF_privateMessage_ies_tags_2[0]), /* 2 */ + &asn_PER_type_privateMessage_ies_constr_2, + asn_MBR_privateMessage_ies_2, + 1, /* Single element */ + &asn_SPC_privateMessage_ies_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_RUA_PrivateMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_PrivateMessage, privateMessage_ies), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_privateMessage_ies_2, + memb_privateMessage_ies_constraint_1, + &asn_PER_memb_privateMessage_ies_constr_2, + 0, + "privateMessage-ies" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_PrivateMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_PrivateMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateMessage-ies */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_PrivateMessage_specs_1 = { + sizeof(struct RUA_PrivateMessage), + offsetof(struct RUA_PrivateMessage, _asn_ctx), + asn_MAP_RUA_PrivateMessage_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* Start extensions */ + 2 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_PrivateMessage = { + "RUA_PrivateMessage", + "RUA_PrivateMessage", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_PrivateMessage_tags_1, + sizeof(asn_DEF_RUA_PrivateMessage_tags_1) + /sizeof(asn_DEF_RUA_PrivateMessage_tags_1[0]), /* 1 */ + asn_DEF_RUA_PrivateMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_PrivateMessage_tags_1) + /sizeof(asn_DEF_RUA_PrivateMessage_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_PrivateMessage_1, + 1, /* Elements count */ + &asn_SPC_RUA_PrivateMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_PrivateMessage.h b/src/rua/RUA_PrivateMessage.h new file mode 100644 index 00000000..4b4ce73e --- /dev/null +++ b/src/rua/RUA_PrivateMessage.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_PrivateMessage_H_ +#define _RUA_PrivateMessage_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_IE.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_PrivateMessage */ +typedef struct RUA_PrivateMessage { + struct privateMessage_ies { + A_SEQUENCE_OF(RUA_IE_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } privateMessage_ies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_PrivateMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_PrivateMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_PrivateMessage_H_ */ +#include diff --git a/src/rua/RUA_ProcedureCode.c b/src/rua/RUA_ProcedureCode.c new file mode 100644 index 00000000..70e9751d --- /dev/null +++ b/src/rua/RUA_ProcedureCode.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_ProcedureCode.h" + +int +RUA_ProcedureCode_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0l && value <= 255l)) { + /* 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +static void +RUA_ProcedureCode_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeInteger.free_struct; + td->print_struct = asn_DEF_NativeInteger.print_struct; + td->check_constraints = asn_DEF_NativeInteger.check_constraints; + td->ber_decoder = asn_DEF_NativeInteger.ber_decoder; + td->der_encoder = asn_DEF_NativeInteger.der_encoder; + td->xer_decoder = asn_DEF_NativeInteger.xer_decoder; + td->xer_encoder = asn_DEF_NativeInteger.xer_encoder; + td->uper_decoder = asn_DEF_NativeInteger.uper_decoder; + td->uper_encoder = asn_DEF_NativeInteger.uper_encoder; + td->aper_decoder = asn_DEF_NativeInteger.aper_decoder; + td->aper_encoder = asn_DEF_NativeInteger.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeInteger.per_constraints; + td->elements = asn_DEF_NativeInteger.elements; + td->elements_count = asn_DEF_NativeInteger.elements_count; + td->specifics = asn_DEF_NativeInteger.specifics; +} + +void +RUA_ProcedureCode_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_ProcedureCode_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_ProcedureCode_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_ProcedureCode_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_ProcedureCode_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_ProcedureCode_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_ProcedureCode_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_ProcedureCode_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_ProcedureCode_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_ProcedureCode_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_ProcedureCode_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_ProcedureCode_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0l, 255l } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RUA_ProcedureCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_ProcedureCode = { + "RUA_ProcedureCode", + "RUA_ProcedureCode", + RUA_ProcedureCode_free, + RUA_ProcedureCode_print, + RUA_ProcedureCode_constraint, + RUA_ProcedureCode_decode_ber, + RUA_ProcedureCode_encode_der, + RUA_ProcedureCode_decode_xer, + RUA_ProcedureCode_encode_xer, + RUA_ProcedureCode_decode_uper, + RUA_ProcedureCode_encode_uper, + RUA_ProcedureCode_decode_aper, + RUA_ProcedureCode_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_ProcedureCode_tags_1, + sizeof(asn_DEF_RUA_ProcedureCode_tags_1) + /sizeof(asn_DEF_RUA_ProcedureCode_tags_1[0]), /* 1 */ + asn_DEF_RUA_ProcedureCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_ProcedureCode_tags_1) + /sizeof(asn_DEF_RUA_ProcedureCode_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_ProcedureCode_constr_1, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_ProcedureCode.h b/src/rua/RUA_ProcedureCode.h new file mode 100644 index 00000000..959ccd14 --- /dev/null +++ b/src/rua/RUA_ProcedureCode.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_ProcedureCode_H_ +#define _RUA_ProcedureCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_ProcedureCode { + RUA_ProcedureCode_id_Connect = 1, + RUA_ProcedureCode_id_DirectTransfer = 2, + RUA_ProcedureCode_id_Disconnect = 3, + RUA_ProcedureCode_id_ConnectionlessTransfer = 4, + RUA_ProcedureCode_id_ErrorIndication = 5, + RUA_ProcedureCode_id_privateMessage = 6 +} e_RUA_ProcedureCode; + +/* RUA_ProcedureCode */ +typedef long RUA_ProcedureCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_ProcedureCode; +asn_struct_free_f RUA_ProcedureCode_free; +asn_struct_print_f RUA_ProcedureCode_print; +asn_constr_check_f RUA_ProcedureCode_constraint; +ber_type_decoder_f RUA_ProcedureCode_decode_ber; +der_type_encoder_f RUA_ProcedureCode_encode_der; +xer_type_decoder_f RUA_ProcedureCode_decode_xer; +xer_type_encoder_f RUA_ProcedureCode_encode_xer; +per_type_decoder_f RUA_ProcedureCode_decode_uper; +per_type_encoder_f RUA_ProcedureCode_encode_uper; +per_type_decoder_f RUA_ProcedureCode_decode_aper; +per_type_encoder_f RUA_ProcedureCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_ProcedureCode_H_ */ +#include diff --git a/src/rua/RUA_ProtocolIE-ID.c b/src/rua/RUA_ProtocolIE-ID.c new file mode 100644 index 00000000..59aff0bc --- /dev/null +++ b/src/rua/RUA_ProtocolIE-ID.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_ProtocolIE-ID.h" + +int +RUA_ProtocolIE_ID_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + _ASN_CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0l && value <= 65535l)) { + /* 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +static void +RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeInteger.free_struct; + td->print_struct = asn_DEF_NativeInteger.print_struct; + td->check_constraints = asn_DEF_NativeInteger.check_constraints; + td->ber_decoder = asn_DEF_NativeInteger.ber_decoder; + td->der_encoder = asn_DEF_NativeInteger.der_encoder; + td->xer_decoder = asn_DEF_NativeInteger.xer_decoder; + td->xer_encoder = asn_DEF_NativeInteger.xer_encoder; + td->uper_decoder = asn_DEF_NativeInteger.uper_decoder; + td->uper_encoder = asn_DEF_NativeInteger.uper_encoder; + td->aper_decoder = asn_DEF_NativeInteger.aper_decoder; + td->aper_encoder = asn_DEF_NativeInteger.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeInteger.per_constraints; + td->elements = asn_DEF_NativeInteger.elements; + td->elements_count = asn_DEF_NativeInteger.elements_count; + td->specifics = asn_DEF_NativeInteger.specifics; +} + +void +RUA_ProtocolIE_ID_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_ProtocolIE_ID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_ProtocolIE_ID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_ProtocolIE_ID_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_ProtocolIE_ID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_ProtocolIE_ID_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_ProtocolIE_ID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_ProtocolIE_ID_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_ProtocolIE_ID_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_ProtocolIE_ID_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_ProtocolIE_ID_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_ProtocolIE_ID_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0l, 65535l } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RUA_ProtocolIE_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_ProtocolIE_ID = { + "RUA_ProtocolIE-ID", + "RUA_ProtocolIE-ID", + RUA_ProtocolIE_ID_free, + RUA_ProtocolIE_ID_print, + RUA_ProtocolIE_ID_constraint, + RUA_ProtocolIE_ID_decode_ber, + RUA_ProtocolIE_ID_encode_der, + RUA_ProtocolIE_ID_decode_xer, + RUA_ProtocolIE_ID_encode_xer, + RUA_ProtocolIE_ID_decode_uper, + RUA_ProtocolIE_ID_encode_uper, + RUA_ProtocolIE_ID_decode_aper, + RUA_ProtocolIE_ID_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_ProtocolIE_ID_tags_1, + sizeof(asn_DEF_RUA_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_RUA_ProtocolIE_ID_tags_1[0]), /* 1 */ + asn_DEF_RUA_ProtocolIE_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_RUA_ProtocolIE_ID_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_ProtocolIE_ID_constr_1, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_ProtocolIE-ID.h b/src/rua/RUA_ProtocolIE-ID.h new file mode 100644 index 00000000..1eecdc48 --- /dev/null +++ b/src/rua/RUA_ProtocolIE-ID.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_ProtocolIE_ID_H_ +#define _RUA_ProtocolIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_ProtocolIE_ID { + RUA_ProtocolIE_ID_id_Cause = 1, + RUA_ProtocolIE_ID_id_CriticalityDiagnostics = 2, + RUA_ProtocolIE_ID_id_Context_ID = 3, + RUA_ProtocolIE_ID_id_RANAP_Message = 4, + RUA_ProtocolIE_ID_id_IntraDomainNasNodeSelector = 5, + RUA_ProtocolIE_ID_id_Establishment_Cause = 6, + RUA_ProtocolIE_ID_id_CN_DomainIndicator = 7, + RUA_ProtocolIE_ID_id_CSGMembershipStatus = 9 +} e_RUA_ProtocolIE_ID; + +/* RUA_ProtocolIE-ID */ +typedef long RUA_ProtocolIE_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_ProtocolIE_ID; +asn_struct_free_f RUA_ProtocolIE_ID_free; +asn_struct_print_f RUA_ProtocolIE_ID_print; +asn_constr_check_f RUA_ProtocolIE_ID_constraint; +ber_type_decoder_f RUA_ProtocolIE_ID_decode_ber; +der_type_encoder_f RUA_ProtocolIE_ID_encode_der; +xer_type_decoder_f RUA_ProtocolIE_ID_decode_xer; +xer_type_encoder_f RUA_ProtocolIE_ID_encode_xer; +per_type_decoder_f RUA_ProtocolIE_ID_decode_uper; +per_type_encoder_f RUA_ProtocolIE_ID_encode_uper; +per_type_decoder_f RUA_ProtocolIE_ID_decode_aper; +per_type_encoder_f RUA_ProtocolIE_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_ProtocolIE_ID_H_ */ +#include diff --git a/src/rua/RUA_RANAP-Message.c b/src/rua/RUA_RANAP-Message.c new file mode 100644 index 00000000..44e211e6 --- /dev/null +++ b/src/rua/RUA_RANAP-Message.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_RANAP-Message.h" + +int +RUA_RANAP_Message_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_OCTET_STRING.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static void +RUA_RANAP_Message_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_OCTET_STRING.free_struct; + td->print_struct = asn_DEF_OCTET_STRING.print_struct; + td->check_constraints = asn_DEF_OCTET_STRING.check_constraints; + td->ber_decoder = asn_DEF_OCTET_STRING.ber_decoder; + td->der_encoder = asn_DEF_OCTET_STRING.der_encoder; + td->xer_decoder = asn_DEF_OCTET_STRING.xer_decoder; + td->xer_encoder = asn_DEF_OCTET_STRING.xer_encoder; + td->uper_decoder = asn_DEF_OCTET_STRING.uper_decoder; + td->uper_encoder = asn_DEF_OCTET_STRING.uper_encoder; + td->aper_decoder = asn_DEF_OCTET_STRING.aper_decoder; + td->aper_encoder = asn_DEF_OCTET_STRING.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_OCTET_STRING.per_constraints; + td->elements = asn_DEF_OCTET_STRING.elements; + td->elements_count = asn_DEF_OCTET_STRING.elements_count; + td->specifics = asn_DEF_OCTET_STRING.specifics; +} + +void +RUA_RANAP_Message_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_RANAP_Message_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_RANAP_Message_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_RANAP_Message_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_RANAP_Message_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_RANAP_Message_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_RANAP_Message_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_RANAP_Message_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_RANAP_Message_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_RANAP_Message_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_RANAP_Message_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static const ber_tlv_tag_t asn_DEF_RUA_RANAP_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_RANAP_Message = { + "RUA_RANAP-Message", + "RUA_RANAP-Message", + RUA_RANAP_Message_free, + RUA_RANAP_Message_print, + RUA_RANAP_Message_constraint, + RUA_RANAP_Message_decode_ber, + RUA_RANAP_Message_encode_der, + RUA_RANAP_Message_decode_xer, + RUA_RANAP_Message_encode_xer, + RUA_RANAP_Message_decode_uper, + RUA_RANAP_Message_encode_uper, + RUA_RANAP_Message_decode_aper, + RUA_RANAP_Message_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_RANAP_Message_tags_1, + sizeof(asn_DEF_RUA_RANAP_Message_tags_1) + /sizeof(asn_DEF_RUA_RANAP_Message_tags_1[0]), /* 1 */ + asn_DEF_RUA_RANAP_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_RANAP_Message_tags_1) + /sizeof(asn_DEF_RUA_RANAP_Message_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_RANAP-Message.h b/src/rua/RUA_RANAP-Message.h new file mode 100644 index 00000000..0dc755a7 --- /dev/null +++ b/src/rua/RUA_RANAP-Message.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_RANAP_Message_H_ +#define _RUA_RANAP_Message_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_RANAP-Message */ +typedef OCTET_STRING_t RUA_RANAP_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_RANAP_Message; +asn_struct_free_f RUA_RANAP_Message_free; +asn_struct_print_f RUA_RANAP_Message_print; +asn_constr_check_f RUA_RANAP_Message_constraint; +ber_type_decoder_f RUA_RANAP_Message_decode_ber; +der_type_encoder_f RUA_RANAP_Message_encode_der; +xer_type_decoder_f RUA_RANAP_Message_decode_xer; +xer_type_encoder_f RUA_RANAP_Message_encode_xer; +per_type_decoder_f RUA_RANAP_Message_decode_uper; +per_type_encoder_f RUA_RANAP_Message_encode_uper; +per_type_decoder_f RUA_RANAP_Message_decode_aper; +per_type_encoder_f RUA_RANAP_Message_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_RANAP_Message_H_ */ +#include diff --git a/src/rua/RUA_RUA-PDU.c b/src/rua/RUA_RUA-PDU.c new file mode 100644 index 00000000..29533ac6 --- /dev/null +++ b/src/rua/RUA_RUA-PDU.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_RUA-PDU.h" + +static asn_per_constraints_t asn_PER_type_RUA_RUA_PDU_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0l, 2l } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RUA_RUA_PDU_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_RUA_PDU, choice.initiatingMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_InitiatingMessage, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "initiatingMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_RUA_PDU, choice.successfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_SuccessfulOutcome, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "successfulOutcome" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_RUA_PDU, choice.unsuccessfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_UnsuccessfulOutcome, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "unsuccessfulOutcome" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_RUA_PDU_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* unsuccessfulOutcome */ +}; +static asn_CHOICE_specifics_t asn_SPC_RUA_RUA_PDU_specs_1 = { + sizeof(struct RUA_RUA_PDU), + offsetof(struct RUA_RUA_PDU, _asn_ctx), + offsetof(struct RUA_RUA_PDU, present), + sizeof(((struct RUA_RUA_PDU *)0)->present), + asn_MAP_RUA_RUA_PDU_tag2el_1, + 3, /* Count of tags in the map */ + 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_RUA_PDU = { + "RUA_RUA-PDU", + "RUA_RUA-PDU", + CHOICE_free, + CHOICE_print, + CHOICE_constraint, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, + CHOICE_outmost_tag, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + &asn_PER_type_RUA_RUA_PDU_constr_1, + asn_MBR_RUA_RUA_PDU_1, + 3, /* Elements count */ + &asn_SPC_RUA_RUA_PDU_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_RUA-PDU.h b/src/rua/RUA_RUA-PDU.h new file mode 100644 index 00000000..2ff8f959 --- /dev/null +++ b/src/rua/RUA_RUA-PDU.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_RUA_PDU_H_ +#define _RUA_RUA_PDU_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_InitiatingMessage.h" +#include "RUA_SuccessfulOutcome.h" +#include "RUA_UnsuccessfulOutcome.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_RUA_PDU_PR { + RUA_RUA_PDU_PR_NOTHING, /* No components present */ + RUA_RUA_PDU_PR_initiatingMessage, + RUA_RUA_PDU_PR_successfulOutcome, + RUA_RUA_PDU_PR_unsuccessfulOutcome, + /* Extensions may appear below */ + +} RUA_RUA_PDU_PR; + +/* RUA_RUA-PDU */ +typedef struct RUA_RUA_PDU { + RUA_RUA_PDU_PR present; + union RUA_RUA_PDU_u { + RUA_InitiatingMessage_t initiatingMessage; + RUA_SuccessfulOutcome_t successfulOutcome; + RUA_UnsuccessfulOutcome_t unsuccessfulOutcome; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_RUA_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_RUA_PDU; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_RUA_PDU_H_ */ +#include diff --git a/src/rua/RUA_RoutingParameter.c b/src/rua/RUA_RoutingParameter.c new file mode 100644 index 00000000..d1685b01 --- /dev/null +++ b/src/rua/RUA_RoutingParameter.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_RoutingParameter.h" + +int +RUA_RoutingParameter_constraint(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 == 10l)) { + /* 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static void +RUA_RoutingParameter_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_BIT_STRING.free_struct; + td->print_struct = asn_DEF_BIT_STRING.print_struct; + td->check_constraints = asn_DEF_BIT_STRING.check_constraints; + td->ber_decoder = asn_DEF_BIT_STRING.ber_decoder; + td->der_encoder = asn_DEF_BIT_STRING.der_encoder; + td->xer_decoder = asn_DEF_BIT_STRING.xer_decoder; + td->xer_encoder = asn_DEF_BIT_STRING.xer_encoder; + td->uper_decoder = asn_DEF_BIT_STRING.uper_decoder; + td->uper_encoder = asn_DEF_BIT_STRING.uper_encoder; + td->aper_decoder = asn_DEF_BIT_STRING.aper_decoder; + td->aper_encoder = asn_DEF_BIT_STRING.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_BIT_STRING.per_constraints; + td->elements = asn_DEF_BIT_STRING.elements; + td->elements_count = asn_DEF_BIT_STRING.elements_count; + td->specifics = asn_DEF_BIT_STRING.specifics; +} + +void +RUA_RoutingParameter_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_RoutingParameter_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_RoutingParameter_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_RoutingParameter_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_RoutingParameter_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_RoutingParameter_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_RoutingParameter_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_RoutingParameter_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_RoutingParameter_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_RoutingParameter_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_RoutingParameter_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_RoutingParameter_constr_1 GCC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10l, 10l } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RUA_RoutingParameter_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_RoutingParameter = { + "RUA_RoutingParameter", + "RUA_RoutingParameter", + RUA_RoutingParameter_free, + RUA_RoutingParameter_print, + RUA_RoutingParameter_constraint, + RUA_RoutingParameter_decode_ber, + RUA_RoutingParameter_encode_der, + RUA_RoutingParameter_decode_xer, + RUA_RoutingParameter_encode_xer, + RUA_RoutingParameter_decode_uper, + RUA_RoutingParameter_encode_uper, + RUA_RoutingParameter_decode_aper, + RUA_RoutingParameter_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_RoutingParameter_tags_1, + sizeof(asn_DEF_RUA_RoutingParameter_tags_1) + /sizeof(asn_DEF_RUA_RoutingParameter_tags_1[0]), /* 1 */ + asn_DEF_RUA_RoutingParameter_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_RoutingParameter_tags_1) + /sizeof(asn_DEF_RUA_RoutingParameter_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_RoutingParameter_constr_1, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/rua/RUA_RoutingParameter.h b/src/rua/RUA_RoutingParameter.h new file mode 100644 index 00000000..2373f723 --- /dev/null +++ b/src/rua/RUA_RoutingParameter.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_RoutingParameter_H_ +#define _RUA_RoutingParameter_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_RoutingParameter */ +typedef BIT_STRING_t RUA_RoutingParameter_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_RoutingParameter; +asn_struct_free_f RUA_RoutingParameter_free; +asn_struct_print_f RUA_RoutingParameter_print; +asn_constr_check_f RUA_RoutingParameter_constraint; +ber_type_decoder_f RUA_RoutingParameter_decode_ber; +der_type_encoder_f RUA_RoutingParameter_encode_der; +xer_type_decoder_f RUA_RoutingParameter_decode_xer; +xer_type_encoder_f RUA_RoutingParameter_encode_xer; +per_type_decoder_f RUA_RoutingParameter_decode_uper; +per_type_encoder_f RUA_RoutingParameter_encode_uper; +per_type_decoder_f RUA_RoutingParameter_decode_aper; +per_type_encoder_f RUA_RoutingParameter_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_RoutingParameter_H_ */ +#include diff --git a/src/rua/RUA_SuccessfulOutcome.c b/src/rua/RUA_SuccessfulOutcome.c new file mode 100644 index 00000000..d6c2fb5b --- /dev/null +++ b/src/rua/RUA_SuccessfulOutcome.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_SuccessfulOutcome.h" + +static asn_TYPE_member_t asn_MBR_RUA_SuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_SuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProcedureCode, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_SuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "criticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_SuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_SuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_SuccessfulOutcome_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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_SuccessfulOutcome_specs_1 = { + sizeof(struct RUA_SuccessfulOutcome), + offsetof(struct RUA_SuccessfulOutcome, _asn_ctx), + asn_MAP_RUA_SuccessfulOutcome_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_SuccessfulOutcome = { + "RUA_SuccessfulOutcome", + "RUA_SuccessfulOutcome", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_SuccessfulOutcome_tags_1, + sizeof(asn_DEF_RUA_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_RUA_SuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_RUA_SuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_RUA_SuccessfulOutcome_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_SuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_RUA_SuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_SuccessfulOutcome.h b/src/rua/RUA_SuccessfulOutcome.h new file mode 100644 index 00000000..3d144ba6 --- /dev/null +++ b/src/rua/RUA_SuccessfulOutcome.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_SuccessfulOutcome_H_ +#define _RUA_SuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_ProcedureCode.h" +#include "RUA_Criticality.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_SuccessfulOutcome */ +typedef struct RUA_SuccessfulOutcome { + RUA_ProcedureCode_t procedureCode; + RUA_Criticality_t criticality; + ANY_t value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_SuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_SuccessfulOutcome; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_SuccessfulOutcome_H_ */ +#include diff --git a/src/rua/RUA_TriggeringMessage.c b/src/rua/RUA_TriggeringMessage.c new file mode 100644 index 00000000..10dbb5ea --- /dev/null +++ b/src/rua/RUA_TriggeringMessage.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#include "RUA_TriggeringMessage.h" + +int +RUA_TriggeringMessage_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_TriggeringMessage_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_TriggeringMessage_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_TriggeringMessage_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_TriggeringMessage_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_TriggeringMessage_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_TriggeringMessage_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_TriggeringMessage_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_TriggeringMessage_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_TriggeringMessage_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_TriggeringMessage_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_TriggeringMessage_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_TriggeringMessage_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_TriggeringMessage_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0l, 2l } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_TriggeringMessage_value2enum_1[] = { + { 0, 18, "initiating-message" }, + { 1, 18, "successful-outcome" }, + { 2, 20, "unsuccessful-outcome" } +}; +static const unsigned int asn_MAP_RUA_TriggeringMessage_enum2value_1[] = { + 0, /* initiating-message(0) */ + 1, /* successful-outcome(1) */ + 2 /* unsuccessful-outcome(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_TriggeringMessage_specs_1 = { + asn_MAP_RUA_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_TriggeringMessage_enum2value_1, /* 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_RUA_TriggeringMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_TriggeringMessage = { + "RUA_TriggeringMessage", + "RUA_TriggeringMessage", + RUA_TriggeringMessage_free, + RUA_TriggeringMessage_print, + RUA_TriggeringMessage_constraint, + RUA_TriggeringMessage_decode_ber, + RUA_TriggeringMessage_encode_der, + RUA_TriggeringMessage_decode_xer, + RUA_TriggeringMessage_encode_xer, + RUA_TriggeringMessage_decode_uper, + RUA_TriggeringMessage_encode_uper, + RUA_TriggeringMessage_decode_aper, + RUA_TriggeringMessage_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_TriggeringMessage_tags_1, + sizeof(asn_DEF_RUA_TriggeringMessage_tags_1) + /sizeof(asn_DEF_RUA_TriggeringMessage_tags_1[0]), /* 1 */ + asn_DEF_RUA_TriggeringMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_TriggeringMessage_tags_1) + /sizeof(asn_DEF_RUA_TriggeringMessage_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_TriggeringMessage_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_TriggeringMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_TriggeringMessage.h b/src/rua/RUA_TriggeringMessage.h new file mode 100644 index 00000000..b094da6d --- /dev/null +++ b/src/rua/RUA_TriggeringMessage.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-CommonDataTypes" + * found in "../../asn1/rua/RUA-CommonDataTypes.asn" + */ + +#ifndef _RUA_TriggeringMessage_H_ +#define _RUA_TriggeringMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_TriggeringMessage { + RUA_TriggeringMessage_initiating_message = 0, + RUA_TriggeringMessage_successful_outcome = 1, + RUA_TriggeringMessage_unsuccessful_outcome = 2 +} e_RUA_TriggeringMessage; + +/* RUA_TriggeringMessage */ +typedef long RUA_TriggeringMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_TriggeringMessage; +asn_struct_free_f RUA_TriggeringMessage_free; +asn_struct_print_f RUA_TriggeringMessage_print; +asn_constr_check_f RUA_TriggeringMessage_constraint; +ber_type_decoder_f RUA_TriggeringMessage_decode_ber; +der_type_encoder_f RUA_TriggeringMessage_encode_der; +xer_type_decoder_f RUA_TriggeringMessage_decode_xer; +xer_type_encoder_f RUA_TriggeringMessage_encode_xer; +per_type_decoder_f RUA_TriggeringMessage_decode_uper; +per_type_encoder_f RUA_TriggeringMessage_encode_uper; +per_type_decoder_f RUA_TriggeringMessage_decode_aper; +per_type_encoder_f RUA_TriggeringMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_TriggeringMessage_H_ */ +#include diff --git a/src/rua/RUA_TypeOfError.c b/src/rua/RUA_TypeOfError.c new file mode 100644 index 00000000..0dd2f2eb --- /dev/null +++ b/src/rua/RUA_TypeOfError.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#include "RUA_TypeOfError.h" + +int +RUA_TypeOfError_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + return td->check_constraints(td, sptr, ctfailcb, app_key); +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static void +RUA_TypeOfError_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeEnumerated.free_struct; + td->print_struct = asn_DEF_NativeEnumerated.print_struct; + td->check_constraints = asn_DEF_NativeEnumerated.check_constraints; + td->ber_decoder = asn_DEF_NativeEnumerated.ber_decoder; + td->der_encoder = asn_DEF_NativeEnumerated.der_encoder; + td->xer_decoder = asn_DEF_NativeEnumerated.xer_decoder; + td->xer_encoder = asn_DEF_NativeEnumerated.xer_encoder; + td->uper_decoder = asn_DEF_NativeEnumerated.uper_decoder; + td->uper_encoder = asn_DEF_NativeEnumerated.uper_encoder; + td->aper_decoder = asn_DEF_NativeEnumerated.aper_decoder; + td->aper_encoder = asn_DEF_NativeEnumerated.aper_encoder; + if(!td->per_constraints) + td->per_constraints = asn_DEF_NativeEnumerated.per_constraints; + td->elements = asn_DEF_NativeEnumerated.elements; + td->elements_count = asn_DEF_NativeEnumerated.elements_count; + /* td->specifics = asn_DEF_NativeEnumerated.specifics; // Defined explicitly */ +} + +void +RUA_TypeOfError_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +RUA_TypeOfError_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +RUA_TypeOfError_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +RUA_TypeOfError_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +RUA_TypeOfError_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +RUA_TypeOfError_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + +asn_dec_rval_t +RUA_TypeOfError_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +asn_enc_rval_t +RUA_TypeOfError_encode_uper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->uper_encoder(td, constraints, structure, per_out); +} + +asn_enc_rval_t +RUA_TypeOfError_encode_aper(asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, + void *structure, asn_per_outp_t *per_out) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->aper_encoder(td, constraints, structure, per_out); +} + +asn_dec_rval_t +RUA_TypeOfError_decode_aper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) { + RUA_TypeOfError_1_inherit_TYPE_descriptor(td); + return td->aper_decoder(opt_codec_ctx, td, constraints, structure, per_data); +} + +static asn_per_constraints_t asn_PER_type_RUA_TypeOfError_constr_1 GCC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0l, 1l } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RUA_TypeOfError_value2enum_1[] = { + { 0, 14, "not-understood" }, + { 1, 7, "missing" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RUA_TypeOfError_enum2value_1[] = { + 1, /* missing(1) */ + 0 /* not-understood(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RUA_TypeOfError_specs_1 = { + asn_MAP_RUA_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RUA_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RUA_TypeOfError_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RUA_TypeOfError = { + "RUA_TypeOfError", + "RUA_TypeOfError", + RUA_TypeOfError_free, + RUA_TypeOfError_print, + RUA_TypeOfError_constraint, + RUA_TypeOfError_decode_ber, + RUA_TypeOfError_encode_der, + RUA_TypeOfError_decode_xer, + RUA_TypeOfError_encode_xer, + RUA_TypeOfError_decode_uper, + RUA_TypeOfError_encode_uper, + RUA_TypeOfError_decode_aper, + RUA_TypeOfError_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_TypeOfError_tags_1, + sizeof(asn_DEF_RUA_TypeOfError_tags_1) + /sizeof(asn_DEF_RUA_TypeOfError_tags_1[0]), /* 1 */ + asn_DEF_RUA_TypeOfError_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_TypeOfError_tags_1) + /sizeof(asn_DEF_RUA_TypeOfError_tags_1[0]), /* 1 */ + &asn_PER_type_RUA_TypeOfError_constr_1, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RUA_TypeOfError_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_TypeOfError.h b/src/rua/RUA_TypeOfError.h new file mode 100644 index 00000000..4a45bfff --- /dev/null +++ b/src/rua/RUA_TypeOfError.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-IEs" + * found in "../../asn1/rua/RUA-IEs.asn" + */ + +#ifndef _RUA_TypeOfError_H_ +#define _RUA_TypeOfError_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RUA_TypeOfError { + RUA_TypeOfError_not_understood = 0, + RUA_TypeOfError_missing = 1 + /* + * Enumeration is extensible + */ +} e_RUA_TypeOfError; + +/* RUA_TypeOfError */ +typedef long RUA_TypeOfError_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_TypeOfError; +asn_struct_free_f RUA_TypeOfError_free; +asn_struct_print_f RUA_TypeOfError_print; +asn_constr_check_f RUA_TypeOfError_constraint; +ber_type_decoder_f RUA_TypeOfError_decode_ber; +der_type_encoder_f RUA_TypeOfError_encode_der; +xer_type_decoder_f RUA_TypeOfError_decode_xer; +xer_type_encoder_f RUA_TypeOfError_encode_xer; +per_type_decoder_f RUA_TypeOfError_decode_uper; +per_type_encoder_f RUA_TypeOfError_encode_uper; +per_type_decoder_f RUA_TypeOfError_decode_aper; +per_type_encoder_f RUA_TypeOfError_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_TypeOfError_H_ */ +#include diff --git a/src/rua/RUA_UnsuccessfulOutcome.c b/src/rua/RUA_UnsuccessfulOutcome.c new file mode 100644 index 00000000..9aa1c81b --- /dev/null +++ b/src/rua/RUA_UnsuccessfulOutcome.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#include "RUA_UnsuccessfulOutcome.h" + +static asn_TYPE_member_t asn_MBR_RUA_UnsuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_ProcedureCode, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RUA_Criticality, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "criticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ANY, + 0, /* Defer constraints checking to the member type */ + 0, /* No PER visible constraints */ + 0, + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RUA_UnsuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RUA_UnsuccessfulOutcome_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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RUA_UnsuccessfulOutcome_specs_1 = { + sizeof(struct RUA_UnsuccessfulOutcome), + offsetof(struct RUA_UnsuccessfulOutcome, _asn_ctx), + asn_MAP_RUA_UnsuccessfulOutcome_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* Start extensions */ + -1 /* Stop extensions */ +}; +asn_TYPE_descriptor_t asn_DEF_RUA_UnsuccessfulOutcome = { + "RUA_UnsuccessfulOutcome", + "RUA_UnsuccessfulOutcome", + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_constraint, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_RUA_UnsuccessfulOutcome_tags_1, + sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_RUA_UnsuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + 0, /* No PER visible constraints */ + asn_MBR_RUA_UnsuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_RUA_UnsuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/rua/RUA_UnsuccessfulOutcome.h b/src/rua/RUA_UnsuccessfulOutcome.h new file mode 100644 index 00000000..90fc7c02 --- /dev/null +++ b/src/rua/RUA_UnsuccessfulOutcome.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.28 (http://lionet.info/asn1c) + * From ASN.1 module "RUA-PDU" + * found in "../../asn1/rua/RUA-PDU.asn" + */ + +#ifndef _RUA_UnsuccessfulOutcome_H_ +#define _RUA_UnsuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "RUA_ProcedureCode.h" +#include "RUA_Criticality.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RUA_UnsuccessfulOutcome */ +typedef struct RUA_UnsuccessfulOutcome { + RUA_ProcedureCode_t procedureCode; + RUA_Criticality_t criticality; + ANY_t value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RUA_UnsuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RUA_UnsuccessfulOutcome; + +#ifdef __cplusplus +} +#endif + +#endif /* _RUA_UnsuccessfulOutcome_H_ */ +#include