diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index ad5b32fad5c7c41b7791fdf17a7cb2ea55ebf55b..20ac55849468dbf70f23808916800e9defe6d571 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -214,7 +214,7 @@ def get_interface_services_and_locs(ims_source_equipment, ims_interface, r):
         if not result['services']:
             result.pop('services', None)
         if result['related-services']:
-            for r in  result['related-services']:
+            for r in result['related-services']:
                 r.pop('id', None)
         else:
             result.pop('related-services', None)
diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 0fa39ede30adfc7965eb493e8925cc87e49499d1..de53146469ded6012069a53430d8e9517b4982e9 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -185,7 +185,7 @@ def netconf_refresh_config(self, hostname):
     self.log_info(f'netconf info loaded from {hostname}')
 
 
-def _unmanaged_interfaces(self):
+def _unmanaged_interfaces():
 
     def _convert(d):
         # the config file keys are more readable than
@@ -770,6 +770,10 @@ def _build_subnet_db(update_callback=lambda s: None):
             entry = subnets.setdefault(ifc['interface address'], [])
             entry.append(ifc)
 
+    for ifc in _unmanaged_interfaces():
+        entry = subnets.setdefault(ifc['interface address'], [])
+        entry.append(ifc)
+
     update_callback('saving {} subnets'.format(len(subnets)))
 
     rp = r.pipeline()
diff --git a/test/conftest.py b/test/conftest.py
index e3a892a3417e6fd40f2937fc36a807139d5d71eb..6f3129931452aae167a96ce3105f5bbd42d07956 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -54,6 +54,20 @@ def data_config_filename():
                 "password": "ims_password"
               },
             "managed-routers": "bogus url",
+            "unmanaged-interfaces": [
+                {
+                    "address": "99.99.99.99",
+                    "network": "99.99.99.0/24",
+                    "interface": "ABC/0/0/0",
+                    "router": "bogus.host.name"
+                },
+                {
+                    "address": "999.999.999.99",
+                    "network": "999.999.999.0/24",
+                    "interface": "ZZZ/9/a/x:0.123",
+                    "router": "another.bogus.host.name"
+                }
+            ]
         }
 
         f.write(json.dumps(config).encode('utf-8'))
diff --git a/test/test_classifier_routes.py b/test/test_classifier_routes.py
index 4a3883ce554851dbe2a4c941f662112c6d31a7f6..8cd01b94734b3dd6e05c7ad1f9d8293a347e8b58 100644
--- a/test/test_classifier_routes.py
+++ b/test/test_classifier_routes.py
@@ -4,8 +4,7 @@ import pytest
 
 from inventory_provider.routes.classifier_schema \
     import JUNIPER_LINK_RESPONSE_SCHEMA, PEER_INFO_RESPONSE_SCHEMA, \
-    INFINERA_LAMBDA_INFO_RESPONSE_SCHEMA, CORIANT_INFO_RESPONSE_SCHEMA, \
-    INFINERA_FIBERLINK_INFO_RESPONSE_SCHEMA
+    INFINERA_LAMBDA_INFO_RESPONSE_SCHEMA, CORIANT_INFO_RESPONSE_SCHEMA
 
 DEFAULT_REQUEST_HEADERS = {
     "Content-type": "application/json",
@@ -175,7 +174,8 @@ def test_infinera_fiberlink_not_found(client):
 #     assert rv.status_code == 200
 #     assert rv.is_json
 #     response_data = json.loads(rv.data.decode('utf-8'))
-#     jsonschema.validate(response_data, INFINERA_FIBERLINK_INFO_RESPONSE_SCHEMA)
+#     jsonschema.validate(
+#     response_data, INFINERA_FIBERLINK_INFO_RESPONSE_SCHEMA)
 
 
 def test_infinera_lambda(client):
diff --git a/test/test_msr_routes.py b/test/test_msr_routes.py
index 0dc461311a461e59ab881a6e88dd14f0db1af81b..d328b847d0e54ca44e6e37b62e5ea443bdb51da5 100644
--- a/test/test_msr_routes.py
+++ b/test/test_msr_routes.py
@@ -3,8 +3,8 @@ import jsonschema
 
 import pytest
 
-from inventory_provider.routes.msr import ACCESS_SERVICES_LIST_SCHEMA, \
-    PEERING_LIST_SCHEMA, PEERING_GROUP_LIST_SCHEMA
+from inventory_provider.routes.msr import PEERING_LIST_SCHEMA, \
+    PEERING_GROUP_LIST_SCHEMA
 
 DEFAULT_REQUEST_HEADERS = {
     "Content-type": "application/json",
diff --git a/test/test_worker_utils.py b/test/test_worker_utils.py
index f1354cb077068c5eb2a099cc132618977e817ebc..ed5a42256a5431e6a9002d01707f845a6db317ba 100644
--- a/test/test_worker_utils.py
+++ b/test/test_worker_utils.py
@@ -11,6 +11,7 @@ import jsonschema
 from inventory_provider.tasks import worker
 from inventory_provider.tasks import common
 from inventory_provider.routes import msr
+from inventory_provider import config
 
 
 def backend_db():
@@ -23,7 +24,7 @@ def backend_db():
     }).db
 
 
-def test_build_subnet_db(mocked_worker_module):
+def test_build_subnet_db(mocked_worker_module, data_config_filename):
     """
     Verify that valid reverse subnet objects are created.
 
@@ -52,6 +53,16 @@ def test_build_subnet_db(mocked_worker_module):
         'items': {"$ref": "#/definitions/interface"},
     }
 
+    all_subnet_interfaces = set()
+    unmanaged_interfaces = set()
+    with open(data_config_filename) as f:
+        params = config.load(f)
+        for ifc in params.get('unmanaged-interfaces', []):
+            ifc_key = (f'{ifc["router"].lower()}'
+                       f':{ifc["interface"].lower()}'
+                       f':{ifc["network"]}')
+            unmanaged_interfaces.add(ifc_key)
+
     db = backend_db()  # also forces initialization
 
     def _x(k):
@@ -80,8 +91,16 @@ def test_build_subnet_db(mocked_worker_module):
         for ifc in value:
             assert ifc['interface address'] == address
 
+        ifc_key = (f'{ifc["router"]}'
+                   f':{ifc["interface name"]}'
+                   f':{ifc["interface address"]}')
+
+        all_subnet_interfaces.add(ifc_key)
+
     assert found_record
 
+    assert unmanaged_interfaces <= all_subnet_interfaces
+
 
 def test_build_juniper_peering_db(mocked_worker_module):
     """