diff --git a/src/asn1c/HNB-Location-Information.c b/src/asn1c/HNB-Location-Information.c
new file mode 100644
index 0000000..4403954
--- /dev/null
+++ b/src/asn1c/HNB-Location-Information.c
@@ -0,0 +1,84 @@
+/*
+ * 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 "HNB-Location-Information.h"
+
+static asn_TYPE_member_t asn_MBR_HNB_Location_Information_1[] = {
+	{ ATF_POINTER, 3, offsetof(struct HNB_Location_Information, macroCoverageInfo),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MacroCoverageInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"macroCoverageInfo"
+		},
+	{ ATF_POINTER, 2, offsetof(struct HNB_Location_Information, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GeographicalLocation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_POINTER, 1, offsetof(struct HNB_Location_Information, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_HNB_Location_Information_oms_1[] = { 0, 1, 2 };
+static const ber_tlv_tag_t asn_DEF_HNB_Location_Information_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_HNB_Location_Information_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroCoverageInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_HNB_Location_Information_specs_1 = {
+	sizeof(struct HNB_Location_Information),
+	offsetof(struct HNB_Location_Information, _asn_ctx),
+	asn_MAP_HNB_Location_Information_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_HNB_Location_Information_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_HNB_Location_Information = {
+	"HNB-Location-Information",
+	"HNB-Location-Information",
+	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_HNB_Location_Information_tags_1,
+	sizeof(asn_DEF_HNB_Location_Information_tags_1)
+		/sizeof(asn_DEF_HNB_Location_Information_tags_1[0]), /* 1 */
+	asn_DEF_HNB_Location_Information_tags_1,	/* Same as above */
+	sizeof(asn_DEF_HNB_Location_Information_tags_1)
+		/sizeof(asn_DEF_HNB_Location_Information_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_HNB_Location_Information_1,
+	3,	/* Elements count */
+	&asn_SPC_HNB_Location_Information_specs_1	/* Additional specs */
+};
+
