diff --git a/src/ranap/RANAP_M4-Collection-Parameters.c b/src/ranap/RANAP_M4-Collection-Parameters.c
new file mode 100644
index 0000000..e964b55
--- /dev/null
+++ b/src/ranap/RANAP_M4-Collection-Parameters.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_M4-Collection-Parameters.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_M4_Collection_Parameters_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_M4_Collection_Parameters, m4_period),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M4_Period,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m4-period"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_M4_Collection_Parameters, m4_threshold),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_M4_Threshold,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"m4-threshold"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_M4_Collection_Parameters, 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_M4_Collection_Parameters_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_M4_Collection_Parameters_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_M4_Collection_Parameters_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m4-period */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m4-threshold */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_M4_Collection_Parameters_specs_1 = {
+	sizeof(struct RANAP_M4_Collection_Parameters),
+	offsetof(struct RANAP_M4_Collection_Parameters, _asn_ctx),
+	asn_MAP_RANAP_M4_Collection_Parameters_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_M4_Collection_Parameters_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_M4_Collection_Parameters = {
+	"RANAP_M4-Collection-Parameters",
+	"RANAP_M4-Collection-Parameters",
+	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_M4_Collection_Parameters_tags_1,
+	sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_M4_Collection_Parameters_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1)
+		/sizeof(asn_DEF_RANAP_M4_Collection_Parameters_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_M4_Collection_Parameters_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_M4_Collection_Parameters_specs_1	/* Additional specs */
+};
+
