diff --git a/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c
new file mode 100644
index 0000000..c7aec3a
--- /dev/null
+++ b/src/ranap/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.c
@@ -0,0 +1,83 @@
+/*
+ * 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_TargetRNC-ToSourceRNC-TransparentContainer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, rRC_Container),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RRC_Container,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rRC-Container"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, d_RNTI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_D_RNTI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"d-RNTI"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rRC-Container */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* d-RNTI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_specs_1 = {
+	sizeof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer),
+	offsetof(struct RANAP_TargetRNC_ToSourceRNC_TransparentContainer, _asn_ctx),
+	asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer = {
+	"RANAP_TargetRNC-ToSourceRNC-TransparentContainer",
+	"RANAP_TargetRNC-ToSourceRNC-TransparentContainer",
+	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_TargetRNC_ToSourceRNC_TransparentContainer_tags_1,
+	sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1)
+		/sizeof(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_TargetRNC_ToSourceRNC_TransparentContainer_specs_1	/* Additional specs */
+};
+
