diff --git a/inventory_provider/nokia.py b/inventory_provider/nokia.py
index 233e590e656ecc8003d8fe8669ea572bf1d9c252..cfa7260687febfc3b8c7cf60315b6e3399b28c81 100644
--- a/inventory_provider/nokia.py
+++ b/inventory_provider/nokia.py
@@ -173,12 +173,14 @@ def get_interfaces_state(state_doc):
 def get_ports_config(netconf_config):
     def _port_info(e):
         pi = {
-            'port-id': e.find('n:port-id', namespaces=NS).text,
-            'admin-state': e.find('n:admin-state', namespaces=NS).text,
+            'port-id': e.find('n:port-id', namespaces=NS).text
         }
-        description = e.find('n:description', namespaces=NS)
+        admin_state = e.find('n:admin-state', namespaces=NS)
+        pi['admin-state'] = admin_state.text if admin_state is not None else 'enabled'  # assume enabled if not present
 
+        description = e.find('n:description', namespaces=NS)
         pi['description'] = description.text if description is not None else ''
+
         breakout = e.find('./n:connector/n:breakout', namespaces=NS)
         if breakout is not None:
             breakout = breakout.text
@@ -207,8 +209,7 @@ def get_ports_config(netconf_config):
 
 def get_lags_config(netconf_config):
     enabled_ports = {
-        p['port-id'] for p in get_ports_config(netconf_config)
-        if p['admin-state'] == 'enable'
+        p['port-id'] for p in get_ports_config(netconf_config) if p['admin-state'] == 'enable'
     }
 
     def _lag_info(e):
@@ -216,14 +217,14 @@ def get_lags_config(netconf_config):
 
         port_elements = e.findall('./n:port', namespaces=NS)
         port_ids = (p.find('./n:port-id', namespaces=NS).text for p in port_elements)
-        admin_state = e.find('./n:admin-state', namespaces=NS).text
+        admin_state = e.find('./n:admin-state', namespaces=NS)
         description_e = e.find('n:description', namespaces=NS)
         ifc = {
             'name': _name,
             'description': (
                 description_e.text if description_e is not None else ''
             ),
-            'admin-state': admin_state,
+            'admin-state': admin_state.text if admin_state is not None else 'enabled',  # assume enabled if not present
             'ports': [p_id for p_id in port_ids if p_id in enabled_ports],
         }
         return ifc
@@ -235,19 +236,6 @@ def get_lags_config(netconf_config):
 
 def get_interfaces_config(netconf_config):
 
-    def _get_address_node_info(_e):
-        # HACKHACK: quick workaround for DBOARD3-965
-        # TODO: fix this properly
-        yield from _e.xpath('n:address', namespaces=NS)
-        yield from _e.xpath('n:primary', namespaces=NS)
-
-    def _get_ip_address(e):
-        for _address_elem in _get_address_node_info(e):
-            address = _address_elem[0].text
-            prefix_length = _address_elem[1].text
-            ip_string = f'{address}/{prefix_length}'
-            yield ip_string
-
     interfaces = netconf_config.findall(
         'n:configure/n:router/n:interface', namespaces=NS)
     for interface in interfaces:
@@ -263,10 +251,14 @@ def get_interfaces_config(netconf_config):
         if admin_state is not None:
             details["admin-state"] = admin_state.text
 
-        for element in interface.xpath('n:ipv4', namespaces=NS):
-            details["ipv4"].extend(_get_ip_address(element))
+        for element in interface.xpath('n:ipv4/n:primary | n:ipv4/n:secondary', namespaces=NS):
+            address = element.find('n:address', namespaces=NS).text
+            prefix_length = element.find('n:prefix-length', namespaces=NS).text
+            details["ipv4"].append(f'{address}/{prefix_length}')
 
-        for element in interface.xpath('n:ipv6', namespaces=NS):
-            details["ipv6"].extend(_get_ip_address(element))
+        for element in interface.xpath('n:ipv6/n:address', namespaces=NS):
+            address = element.find('n:ipv6-address', namespaces=NS).text
+            prefix_length = element.find('n:prefix-length', namespaces=NS).text
+            details["ipv6"].append(f'{address}/{prefix_length}')
 
         yield details