diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index dd1689d934ad5a39695e5ee5b509ff9716fab12a..70680acc7deb2268a3e0e3e075059b955a1d275b 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -659,10 +659,9 @@ def _build_service_category_interface_list(update_callback=lambda s: None):
 
     def _classify(ifc):
         if ifc['description'].startswith('SRV_MDVPN'):
-            return 'mdvpn'
+            yield 'mdvpn'
         if 'LHCONE' in ifc['description']:
-            return 'lhcone'
-        return None
+            yield 'lhcone'
 
     update_callback('loading all known interfaces')
     interfaces = data.build_service_interface_user_list(InventoryTask.config)
@@ -674,13 +673,11 @@ def _build_service_category_interface_list(update_callback=lambda s: None):
     rp = r.pipeline()
 
     for ifc in interfaces:
-        service_type = _classify(ifc)
-        if not service_type:
-            continue
-        rp.set(
-            f'interface-services:{service_type}'
-            f':{ifc["router"]}:{ifc["interface"]}',
-            json.dumps(ifc))
+        for service_type in _classify(ifc):
+            rp.set(
+                f'interface-services:{service_type}'
+                f':{ifc["router"]}:{ifc["interface"]}',
+                json.dumps(ifc))
 
     rp.execute()