diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py b/src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py
index f0775371d0f3fea01411ce4049226377feebc27e..ca0b5b480c005324bc856cb82627940dbc0210b8 100644
--- a/src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py
+++ b/src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py
@@ -22,6 +22,7 @@ LOGGER = logging.getLogger(__name__)
 
 SETTINGS_RULE_NAME = '/settings'
 STATIC_ROUTING_RULE_NAME = '/static_routing'
+IETF_DATA = 'ietf_data'
 
 RE_UUID = re.compile(r'([0-9a-fA-F]{8})\-([0-9a-fA-F]{4})\-([0-9a-fA-F]{4})\-([0-9a-fA-F]{4})\-([0-9a-fA-F]{12})')
 
@@ -93,6 +94,7 @@ def compose_l3nm_config_rules(main_service_config_rules : List, subservice_confi
     CONFIG_RULES = [
         (SETTINGS_RULE_NAME, L3NM_SETTINGS_FIELD_DEFAULTS),
         (STATIC_ROUTING_RULE_NAME, {}),
+        (IETF_DATA, {}),
     ]
     for rule_name, defaults in CONFIG_RULES:
         compose_config_rules(main_service_config_rules, subservice_config_rules, rule_name, defaults)
diff --git a/src/service/service/task_scheduler/TaskExecutor.py b/src/service/service/task_scheduler/TaskExecutor.py
index 6fb1eca3497fef311605e2cd202ca74bd9cb730f..51fc42a5a5ea06d5abaa49946a154d0c38f6de8b 100644
--- a/src/service/service/task_scheduler/TaskExecutor.py
+++ b/src/service/service/task_scheduler/TaskExecutor.py
@@ -287,8 +287,12 @@ class TaskExecutor:
                 devices.setdefault(device_type, dict())[device_uuid] = device
             else:
                 if not exclude_managed_by_controller:
-                    device_type = DeviceTypeEnum._value2member_map_[device.device_type]
-                    devices.setdefault(device_type, dict())[device_uuid] = device
+                    controller_device_type_enum = DeviceTypeEnum._value2member_map_[controller.device_type]
+                    if controller_device_type_enum == DeviceTypeEnum.IETF_SLICE:
+                        devices.setdefault(controller_device_type_enum, dict())[device_uuid] = device
+                    else:
+                        device_type = DeviceTypeEnum._value2member_map_[device.device_type]
+                        devices.setdefault(device_type, dict())[device_uuid] = device
                 device_type = DeviceTypeEnum._value2member_map_[controller.device_type]
                 devices.setdefault(device_type, dict())[controller.device_id.device_uuid.uuid] = controller
         return devices
@@ -321,7 +325,7 @@ class TaskExecutor:
         self, connection : Connection, service : Service, **service_handler_settings
     ) -> Dict[DeviceTypeEnum, Tuple['_ServiceHandler', Dict[str, Device]]]:
         connection_device_types : Dict[DeviceTypeEnum, Dict[str, Device]] = self.get_devices_from_connection(
-            connection, exclude_managed_by_controller=True
+            connection, exclude_managed_by_controller=False
         )
         service_handlers : Dict[DeviceTypeEnum, Tuple['_ServiceHandler', Dict[str, Device]]] = dict()
         for device_type, connection_devices in connection_device_types.items():