diff --git a/src/asn1c/Iurh-Signalling-TNL-AddressList.c b/src/asn1c/Iurh-Signalling-TNL-AddressList.c
new file mode 100644
index 0000000..3ff94c4
--- /dev/null
+++ b/src/asn1c/Iurh-Signalling-TNL-AddressList.c
@@ -0,0 +1,60 @@
+/*
+ * 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 "Iurh-Signalling-TNL-AddressList.h"
+
+static asn_per_constraints_t asn_PER_type_Iurh_Signalling_TNL_AddressList_constr_1 GCC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 2,  2,  1l,  3l }	/* (SIZE(1..3)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Iurh_Signalling_TNL_AddressList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_IP_Address,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_Iurh_Signalling_TNL_AddressList_specs_1 = {
+	sizeof(struct Iurh_Signalling_TNL_AddressList),
+	offsetof(struct Iurh_Signalling_TNL_AddressList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_Iurh_Signalling_TNL_AddressList = {
+	"Iurh-Signalling-TNL-AddressList",
+	"Iurh-Signalling-TNL-AddressList",
+	SEQUENCE_OF_free,
+	SEQUENCE_OF_print,
+	SEQUENCE_OF_constraint,
+	SEQUENCE_OF_decode_ber,
+	SEQUENCE_OF_encode_der,
+	SEQUENCE_OF_decode_xer,
+	SEQUENCE_OF_encode_xer,
+	SEQUENCE_OF_decode_uper,
+	SEQUENCE_OF_encode_uper,
+	SEQUENCE_OF_decode_aper,
+	SEQUENCE_OF_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1,
+	sizeof(asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1)
+		/sizeof(asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1[0]), /* 1 */
+	asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1)
+		/sizeof(asn_DEF_Iurh_Signalling_TNL_AddressList_tags_1[0]), /* 1 */
+	&asn_PER_type_Iurh_Signalling_TNL_AddressList_constr_1,
+	asn_MBR_Iurh_Signalling_TNL_AddressList_1,
+	1,	/* Single element */
+	&asn_SPC_Iurh_Signalling_TNL_AddressList_specs_1	/* Additional specs */
+};
+
