diff --git a/include/osmocom/abis/ipa.h b/include/osmocom/abis/ipa.h
index 7030830..17b5f23 100644
--- a/include/osmocom/abis/ipa.h
+++ b/include/osmocom/abis/ipa.h
@@ -95,5 +95,7 @@
 int ipaccess_idtag_parse(struct tlv_parsed *dec, unsigned char *buf, int len);
 int ipaccess_send_id_req(int fd);
 int ipaccess_parse_unitid(const char *str, struct ipaccess_unit *unit_data);
+int ipaccess_tlv_to_unitdata(struct ipaccess_unit *ud,
+			     const struct tlv_parsed *tp);
 
 #endif
diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index f62e4b0..b124121 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -39,6 +39,7 @@
 #include <osmocom/core/select.h>
 #include <osmocom/gsm/tlv.h>
 #include <osmocom/core/msgb.h>
+#include <osmocom/core/macaddr.h>
 #include <osmocom/core/logging.h>
 #include <osmocom/core/talloc.h>
 #include <osmocom/abis/e1_input.h>
@@ -163,6 +164,50 @@
 	return 0;
 }
 
+int ipaccess_tlv_to_unitdata(struct ipaccess_unit *ud,
+			     const struct tlv_parsed *tp)
+{
+	int rc = 0;
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_SERNR, 1))
+		ud->serno = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_SERNR));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_UNITNAME, 1))
+		ud->unit_name = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_UNITNAME));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_LOCATION1, 1))
+		ud->location1 = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_LOCATION1));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_LOCATION2, 1))
+		ud->location2 = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_LOCATION2));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_EQUIPVERS, 1))
+		ud->equipvers = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_EQUIPVERS));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_SWVERSION, 1))
+		ud->swversion = talloc_strdup(ud, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_SWVERSION));
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_MACADDR, 17)) {
+		rc = osmo_macaddr_parse(ud->mac_addr, (char *)
+					TLVP_VAL(tp, IPAC_IDTAG_MACADDR));
+		if (rc < 0)
+			goto out;
+	}
+
+	if (TLVP_PRES_LEN(tp, IPAC_IDTAG_UNIT, 1))
+		rc = ipaccess_parse_unitid((char *)
+					TLVP_VAL(tp, IPAC_IDTAG_UNIT), ud);
+
+out:
+	return rc;
+}
+
 static int ipaccess_send(int fd, const void *msg, size_t msglen)
 {
 	int ret;
