diff --git a/src/ranap/RANAP_SourceCellID.c b/src/ranap/RANAP_SourceCellID.c
new file mode 100644
index 0000000..c00a108
--- /dev/null
+++ b/src/ranap/RANAP_SourceCellID.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_SourceCellID.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_SourceCellID_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_SourceCellID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceCellID, choice.sourceUTRANCellID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_SourceUTRANCellID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceUTRANCellID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_SourceCellID, choice.sourceGERANCellID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_CGI,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"sourceGERANCellID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_SourceCellID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceUTRANCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sourceGERANCellID */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_SourceCellID_specs_1 = {
+	sizeof(struct RANAP_SourceCellID),
+	offsetof(struct RANAP_SourceCellID, _asn_ctx),
+	offsetof(struct RANAP_SourceCellID, present),
+	sizeof(((struct RANAP_SourceCellID *)0)->present),
+	asn_MAP_RANAP_SourceCellID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_SourceCellID = {
+	"RANAP_SourceCellID",
+	"RANAP_SourceCellID",
+	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_SourceCellID_constr_1,
+	asn_MBR_RANAP_SourceCellID_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_SourceCellID_specs_1	/* Additional specs */
+};
+
