diff --git a/src/ranap/RANAP_TNLInformationEnhRelInfoReq.c b/src/ranap/RANAP_TNLInformationEnhRelInfoReq.c
new file mode 100644
index 0000000..cd1d6d3
--- /dev/null
+++ b/src/ranap/RANAP_TNLInformationEnhRelInfoReq.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_TNLInformationEnhRelInfoReq.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TNLInformationEnhRelInfoReq_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TNLInformationEnhRelInfoReq, transportLayerAddress),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_TransportLayerAddress,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"transportLayerAddress"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TNLInformationEnhRelInfoReq, iuTransportAssociation),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_IuTransportAssociation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iuTransportAssociation"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TNLInformationEnhRelInfoReq, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProtocolExtensionContainer,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TNLInformationEnhRelInfoReq_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TNLInformationEnhRelInfoReq_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iuTransportAssociation */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TNLInformationEnhRelInfoReq_specs_1 = {
+	sizeof(struct RANAP_TNLInformationEnhRelInfoReq),
+	offsetof(struct RANAP_TNLInformationEnhRelInfoReq, _asn_ctx),
+	asn_MAP_RANAP_TNLInformationEnhRelInfoReq_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TNLInformationEnhRelInfoReq_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TNLInformationEnhRelInfoReq = {
+	"RANAP_TNLInformationEnhRelInfoReq",
+	"RANAP_TNLInformationEnhRelInfoReq",
+	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_RANAP_TNLInformationEnhRelInfoReq_tags_1,
+	sizeof(asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1)
+		/sizeof(asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1)
+		/sizeof(asn_DEF_RANAP_TNLInformationEnhRelInfoReq_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TNLInformationEnhRelInfoReq_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TNLInformationEnhRelInfoReq_specs_1	/* Additional specs */
+};
+
