aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-09-10 10:20:56 +0200
committerHarald Welte <laforge@gnumonks.org>2015-09-10 10:53:36 +0200
commit019830c4600cc0ecfd362bf94ccef55e1b22427c (patch)
treefdfabd07e7041f5dd2fc48cfb99b1e9849903b9e
parent3ca78c86070351b1db213b6df037d7032fb5fb96 (diff)
add asn1c generated RUA c+header files
-rw-r--r--src/rua/Makefile (renamed from src/rua/Makefile.local)9
-rw-r--r--src/rua/RUA_Ansi-41-IDNNS.c171
-rw-r--r--src/rua/RUA_Ansi-41-IDNNS.h42
-rw-r--r--src/rua/RUA_CN-DomainIndicator.c165
-rw-r--r--src/rua/RUA_CN-DomainIndicator.h48
-rw-r--r--src/rua/RUA_CSGMembershipStatus.c167
-rw-r--r--src/rua/RUA_CSGMembershipStatus.h51
-rw-r--r--src/rua/RUA_Cause.c92
-rw-r--r--src/rua/RUA_Cause.h61
-rw-r--r--src/rua/RUA_CauseMisc.c171
-rw-r--r--src/rua/RUA_CauseMisc.h53
-rw-r--r--src/rua/RUA_CauseProtocol.c177
-rw-r--r--src/rua/RUA_CauseProtocol.h56
-rw-r--r--src/rua/RUA_CauseRadioNetwork.c171
-rw-r--r--src/rua/RUA_CauseRadioNetwork.h53
-rw-r--r--src/rua/RUA_CauseTransport.c167
-rw-r--r--src/rua/RUA_CauseTransport.h51
-rw-r--r--src/rua/RUA_Connect.c145
-rw-r--r--src/rua/RUA_Connect.h48
-rw-r--r--src/rua/RUA_ConnectionlessTransfer.c145
-rw-r--r--src/rua/RUA_ConnectionlessTransfer.h48
-rw-r--r--src/rua/RUA_Context-ID.c171
-rw-r--r--src/rua/RUA_Context-ID.h42
-rw-r--r--src/rua/RUA_Criticality.c167
-rw-r--r--src/rua/RUA_Criticality.h49
-rw-r--r--src/rua/RUA_CriticalityDiagnostics-IE-List.c145
-rw-r--r--src/rua/RUA_CriticalityDiagnostics-IE-List.h54
-rw-r--r--src/rua/RUA_CriticalityDiagnostics.c103
-rw-r--r--src/rua/RUA_CriticalityDiagnostics.h49
-rw-r--r--src/rua/RUA_DirectTransfer.c145
-rw-r--r--src/rua/RUA_DirectTransfer.h48
-rw-r--r--src/rua/RUA_Disconnect.c145
-rw-r--r--src/rua/RUA_Disconnect.h48
-rw-r--r--src/rua/RUA_ErrorIndication.c145
-rw-r--r--src/rua/RUA_ErrorIndication.h48
-rw-r--r--src/rua/RUA_Establishment-Cause.c167
-rw-r--r--src/rua/RUA_Establishment-Cause.h51
-rw-r--r--src/rua/RUA_Gsm-map-IDNNS.c636
-rw-r--r--src/rua/RUA_Gsm-map-IDNNS.h108
-rw-r--r--src/rua/RUA_IE-Extensions.c59
-rw-r--r--src/rua/RUA_IE-Extensions.h38
-rw-r--r--src/rua/RUA_IE.c81
-rw-r--r--src/rua/RUA_IE.h41
-rw-r--r--src/rua/RUA_InitiatingMessage.c81
-rw-r--r--src/rua/RUA_InitiatingMessage.h41
-rw-r--r--src/rua/RUA_IntraDomainNasNodeSelector.c337
-rw-r--r--src/rua/RUA_IntraDomainNasNodeSelector.h80
-rw-r--r--src/rua/RUA_Presence.c167
-rw-r--r--src/rua/RUA_Presence.h49
-rw-r--r--src/rua/RUA_PrivateIE-ID.c102
-rw-r--r--src/rua/RUA_PrivateIE-ID.h49
-rw-r--r--src/rua/RUA_PrivateMessage.c145
-rw-r--r--src/rua/RUA_PrivateMessage.h48
-rw-r--r--src/rua/RUA_ProcedureCode.c165
-rw-r--r--src/rua/RUA_ProcedureCode.h52
-rw-r--r--src/rua/RUA_ProtocolIE-ID.c165
-rw-r--r--src/rua/RUA_ProtocolIE-ID.h54
-rw-r--r--src/rua/RUA_RANAP-Message.c143
-rw-r--r--src/rua/RUA_RANAP-Message.h42
-rw-r--r--src/rua/RUA_RUA-PDU.c82
-rw-r--r--src/rua/RUA_RUA-PDU.h58
-rw-r--r--src/rua/RUA_RoutingParameter.c171
-rw-r--r--src/rua/RUA_RoutingParameter.h42
-rw-r--r--src/rua/RUA_SuccessfulOutcome.c81
-rw-r--r--src/rua/RUA_SuccessfulOutcome.h41
-rw-r--r--src/rua/RUA_TriggeringMessage.c167
-rw-r--r--src/rua/RUA_TriggeringMessage.h49
-rw-r--r--src/rua/RUA_TypeOfError.c167
-rw-r--r--src/rua/RUA_TypeOfError.h51
-rw-r--r--src/rua/RUA_UnsuccessfulOutcome.c81
-rw-r--r--src/rua/RUA_UnsuccessfulOutcome.h41
71 files changed, 7380 insertions, 2 deletions
diff --git a/src/rua/Makefile.local b/src/rua/Makefile
index 8ae65f4..c8e3471 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 0000000..07388ef
--- /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 0000000..eb0dd6b
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CN-DomainIndicator.c b/src/rua/RUA_CN-DomainIndicator.c
new file mode 100644
index 0000000..d166460
--- /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 0000000..171a049
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CSGMembershipStatus.c b/src/rua/RUA_CSGMembershipStatus.c
new file mode 100644
index 0000000..85c30bf
--- /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 0000000..2c27609
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Cause.c b/src/rua/RUA_Cause.c
new file mode 100644
index 0000000..644762a
--- /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 0000000..3240023
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_CauseRadioNetwork.h"
+#include "RUA_CauseTransport.h"
+#include "RUA_CauseProtocol.h"
+#include "RUA_CauseMisc.h"
+#include <constr_CHOICE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CauseMisc.c b/src/rua/RUA_CauseMisc.c
new file mode 100644
index 0000000..9b29b95
--- /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 0000000..d21dc99
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CauseProtocol.c b/src/rua/RUA_CauseProtocol.c
new file mode 100644
index 0000000..53f60fe
--- /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 0000000..a1d8f11
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CauseRadioNetwork.c b/src/rua/RUA_CauseRadioNetwork.c
new file mode 100644
index 0000000..4655cde
--- /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 0000000..d267b69
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CauseTransport.c b/src/rua/RUA_CauseTransport.c
new file mode 100644
index 0000000..2765461
--- /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 0000000..62597a7
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Connect.c b/src/rua/RUA_Connect.c
new file mode 100644
index 0000000..b80a86f
--- /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 0000000..54197ff
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_ConnectionlessTransfer.c b/src/rua/RUA_ConnectionlessTransfer.c
new file mode 100644
index 0000000..1e8b6ea
--- /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 0000000..41f8aca
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Context-ID.c b/src/rua/RUA_Context-ID.c
new file mode 100644
index 0000000..fdaec9c
--- /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 0000000..f4f354c
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Criticality.c b/src/rua/RUA_Criticality.c
new file mode 100644
index 0000000..a81695c
--- /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 0000000..efd11bc
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CriticalityDiagnostics-IE-List.c b/src/rua/RUA_CriticalityDiagnostics-IE-List.c
new file mode 100644
index 0000000..e1f1bee
--- /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 0000000..b7f35c3
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include "RUA_Criticality.h"
+#include "RUA_ProtocolIE-ID.h"
+#include "RUA_TypeOfError.h"
+#include "RUA_IE-Extensions.h"
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_CriticalityDiagnostics.c b/src/rua/RUA_CriticalityDiagnostics.c
new file mode 100644
index 0000000..1ac3bcc
--- /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 0000000..160da8f
--- /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 <asn_application.h>
+
+/* 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 <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_DirectTransfer.c b/src/rua/RUA_DirectTransfer.c
new file mode 100644
index 0000000..54ed4a5
--- /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 0000000..2e985fa
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Disconnect.c b/src/rua/RUA_Disconnect.c
new file mode 100644
index 0000000..d4048a4
--- /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 0000000..b7a6983
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_ErrorIndication.c b/src/rua/RUA_ErrorIndication.c
new file mode 100644
index 0000000..02cac89
--- /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 0000000..f48e9f7
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Establishment-Cause.c b/src/rua/RUA_Establishment-Cause.c
new file mode 100644
index 0000000..fd92e4b
--- /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 0000000..0ab1a01
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Gsm-map-IDNNS.c b/src/rua/RUA_Gsm-map-IDNNS.c
new file mode 100644
index 0000000..fc018f5
--- /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 0000000..4b00995
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <BOOLEAN.h>
+#include "RUA_RoutingParameter.h"
+#include <constr_SEQUENCE.h>
+#include <constr_CHOICE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_IE-Extensions.c b/src/rua/RUA_IE-Extensions.c
new file mode 100644
index 0000000..36e72aa
--- /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 0000000..5223f97
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_IE.c b/src/rua/RUA_IE.c
new file mode 100644
index 0000000..3bca72e
--- /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 0000000..5ab991c
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_ProtocolIE-ID.h"
+#include "RUA_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_InitiatingMessage.c b/src/rua/RUA_InitiatingMessage.c
new file mode 100644
index 0000000..a8c8425
--- /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 0000000..d432ee4
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_ProcedureCode.h"
+#include "RUA_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_IntraDomainNasNodeSelector.c b/src/rua/RUA_IntraDomainNasNodeSelector.c
new file mode 100644
index 0000000..066e4e1
--- /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 0000000..61e708b
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_Gsm-map-IDNNS.h"
+#include "RUA_Ansi-41-IDNNS.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include <BIT_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_Presence.c b/src/rua/RUA_Presence.c
new file mode 100644
index 0000000..0a5d563
--- /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 0000000..90faf88
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_PrivateIE-ID.c b/src/rua/RUA_PrivateIE-ID.c
new file mode 100644
index 0000000..33c258b
--- /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 0000000..cc7c310
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <OBJECT_IDENTIFIER.h>
+#include <constr_CHOICE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_PrivateMessage.c b/src/rua/RUA_PrivateMessage.c
new file mode 100644
index 0000000..a968cf1
--- /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 0000000..4b4ce73
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_IE.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_ProcedureCode.c b/src/rua/RUA_ProcedureCode.c
new file mode 100644
index 0000000..70e9751
--- /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 0000000..959ccd1
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_ProtocolIE-ID.c b/src/rua/RUA_ProtocolIE-ID.c
new file mode 100644
index 0000000..59aff0b
--- /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 0000000..1eecdc4
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_RANAP-Message.c b/src/rua/RUA_RANAP-Message.c
new file mode 100644
index 0000000..44e211e
--- /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 0000000..0dc755a
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_RUA-PDU.c b/src/rua/RUA_RUA-PDU.c
new file mode 100644
index 0000000..29533ac
--- /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 0000000..2ff8f95
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_InitiatingMessage.h"
+#include "RUA_SuccessfulOutcome.h"
+#include "RUA_UnsuccessfulOutcome.h"
+#include <constr_CHOICE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_RoutingParameter.c b/src/rua/RUA_RoutingParameter.c
new file mode 100644
index 0000000..d1685b0
--- /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 0000000..2373f72
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_SuccessfulOutcome.c b/src/rua/RUA_SuccessfulOutcome.c
new file mode 100644
index 0000000..d6c2fb5
--- /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 0000000..3d144ba
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_ProcedureCode.h"
+#include "RUA_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_TriggeringMessage.c b/src/rua/RUA_TriggeringMessage.c
new file mode 100644
index 0000000..10dbb5e
--- /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 0000000..b094da6
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_TypeOfError.c b/src/rua/RUA_TypeOfError.c
new file mode 100644
index 0000000..0dd2f2e
--- /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 0000000..4a45bff
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/rua/RUA_UnsuccessfulOutcome.c b/src/rua/RUA_UnsuccessfulOutcome.c
new file mode 100644
index 0000000..9aa1c81
--- /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 0000000..90fc7c0
--- /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 <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_ProcedureCode.h"
+#include "RUA_Criticality.h"
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>