diff --git a/src/ranap/RANAP_IuTransportAssociation.c b/src/ranap/RANAP_IuTransportAssociation.c
new file mode 100644
index 0000000..ee7b796
--- /dev/null
+++ b/src/ranap/RANAP_IuTransportAssociation.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_IuTransportAssociation.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_IuTransportAssociation_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 asn_TYPE_member_t asn_MBR_RANAP_IuTransportAssociation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IuTransportAssociation, choice.gTP_TEI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GTP_TEI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"gTP-TEI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_IuTransportAssociation, choice.bindingID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_BindingID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"bindingID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_IuTransportAssociation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTP-TEI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bindingID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_IuTransportAssociation_specs_1 = {
+	sizeof(struct RANAP_IuTransportAssociation),
+	offsetof(struct RANAP_IuTransportAssociation, _asn_ctx),
+	offsetof(struct RANAP_IuTransportAssociation, present),
+	sizeof(((struct RANAP_IuTransportAssociation *)0)->present),
+	asn_MAP_RANAP_IuTransportAssociation_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_IuTransportAssociation = {
+	"RANAP_IuTransportAssociation",
+	"RANAP_IuTransportAssociation",
+	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_RANAP_IuTransportAssociation_constr_1,
+	asn_MBR_RANAP_IuTransportAssociation_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_IuTransportAssociation_specs_1	/* Additional specs */
+};
+
