diff --git a/src/ranap/RANAP_EquipmentsToBeTraced.c b/src/ranap/RANAP_EquipmentsToBeTraced.c
new file mode 100644
index 0000000..c22da5d
--- /dev/null
+++ b/src/ranap/RANAP_EquipmentsToBeTraced.c
@@ -0,0 +1,92 @@
+/*
+ * 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_EquipmentsToBeTraced.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_EquipmentsToBeTraced_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0l,  3l }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_RANAP_EquipmentsToBeTraced_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEIlist),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEIList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEIlist"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEISVlist),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISVList,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEISVlist"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEIgroup),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEIGroup,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEIgroup"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_EquipmentsToBeTraced, choice.iMEISVgroup),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IMEISVGroup,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iMEISVgroup"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_EquipmentsToBeTraced_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iMEIlist */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iMEISVlist */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iMEIgroup */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iMEISVgroup */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_EquipmentsToBeTraced_specs_1 = {
+	sizeof(struct RANAP_EquipmentsToBeTraced),
+	offsetof(struct RANAP_EquipmentsToBeTraced, _asn_ctx),
+	offsetof(struct RANAP_EquipmentsToBeTraced, present),
+	sizeof(((struct RANAP_EquipmentsToBeTraced *)0)->present),
+	asn_MAP_RANAP_EquipmentsToBeTraced_tag2el_1,
+	4,	/* Count of tags in the map */
+	0,
+	4	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_EquipmentsToBeTraced = {
+	"RANAP_EquipmentsToBeTraced",
+	"RANAP_EquipmentsToBeTraced",
+	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_EquipmentsToBeTraced_constr_1,
+	asn_MBR_RANAP_EquipmentsToBeTraced_1,
+	4,	/* Elements count */
+	&asn_SPC_RANAP_EquipmentsToBeTraced_specs_1	/* Additional specs */
+};
+
