diff --git a/src/asn1c/MacroCoverageInformation.c b/src/asn1c/MacroCoverageInformation.c
new file mode 100644
index 0000000..79601b7
--- /dev/null
+++ b/src/asn1c/MacroCoverageInformation.c
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "HNBAP-IEs"
+ * 	found in "../../asn1/hnbap/HNBAP-IEs.asn"
+ * 	`asn1c -gen-PER -fnative-types`
+ */
+
+#include "MacroCoverageInformation.h"
+
+static asn_TYPE_member_t asn_MBR_MacroCoverageInformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MacroCoverageInformation, cellIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_MacroCellID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"cellIdentity"
+		},
+	{ ATF_POINTER, 1, offsetof(struct MacroCoverageInformation, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_MacroCoverageInformation_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_MacroCoverageInformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MacroCoverageInformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_MacroCoverageInformation_specs_1 = {
+	sizeof(struct MacroCoverageInformation),
+	offsetof(struct MacroCoverageInformation, _asn_ctx),
+	asn_MAP_MacroCoverageInformation_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_MacroCoverageInformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_MacroCoverageInformation = {
+	"MacroCoverageInformation",
+	"MacroCoverageInformation",
+	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_MacroCoverageInformation_tags_1,
+	sizeof(asn_DEF_MacroCoverageInformation_tags_1)
+		/sizeof(asn_DEF_MacroCoverageInformation_tags_1[0]), /* 1 */
+	asn_DEF_MacroCoverageInformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MacroCoverageInformation_tags_1)
+		/sizeof(asn_DEF_MacroCoverageInformation_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_MacroCoverageInformation_1,
+	2,	/* Elements count */
+	&asn_SPC_MacroCoverageInformation_specs_1	/* Additional specs */
+};
+
