diff --git a/src/ranap/RANAP_M1Report.c b/src/ranap/RANAP_M1Report.c
new file mode 100644
index 0000000..67fa447
--- /dev/null
+++ b/src/ranap/RANAP_M1Report.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_M1Report.h"
+
+static asn_per_constraints_t asn_PER_type_RANAP_M1Report_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_M1Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M1Report, choice.periodic),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_MDT_Report_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"periodic"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M1Report, choice.event1F),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Event1F_Parameters,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"event1F"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M1Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodic */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* event1F */
+};
+static asn_CHOICE_specifics_t asn_SPC_RANAP_M1Report_specs_1 = {
+	sizeof(struct RANAP_M1Report),
+	offsetof(struct RANAP_M1Report, _asn_ctx),
+	offsetof(struct RANAP_M1Report, present),
+	sizeof(((struct RANAP_M1Report *)0)->present),
+	asn_MAP_RANAP_M1Report_tag2el_1,
+	2,	/* Count of tags in the map */
+	0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M1Report = {
+	"RANAP_M1Report",
+	"RANAP_M1Report",
+	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_M1Report_constr_1,
+	asn_MBR_RANAP_M1Report_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_M1Report_specs_1	/* Additional specs */
+};
+
