add asn1c generated RUA c+header files
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 */
+};
+