diff --git a/gso/workflows/device/terminate_device.py b/gso/workflows/device/terminate_device.py
index 30da64eb0dab8abc251b48d056c325b51abd9d6a..7659e78d8d5c05582f7964757203825a88c8ec6b 100644
--- a/gso/workflows/device/terminate_device.py
+++ b/gso/workflows/device/terminate_device.py
@@ -1,8 +1,10 @@
+import ipaddress
 from orchestrator.forms import FormPage
 from orchestrator.forms.validators import Label
 from orchestrator.targets import Target
 from orchestrator.types import InputForm, SubscriptionLifecycle, UUIDstr
 from orchestrator.workflow import done, init, step, workflow
+from gso.services import ipam
 from orchestrator.workflows.steps import (
     resync,
     set_status,
@@ -29,11 +31,42 @@ def _deprovision_in_user_management_system(fqdn: str) -> str:
     pass
 
 
-@step("Deprovision device")
-def deprovision_user(subscription: Device) -> None:
-    #    _deprovision_in_user_management_system(subscription.user.user_id)
-    pass
+@step("Deprovision loopback IPs from IPAM/DNS")
+def deprovision_loopback_ips(subscription: Device) -> None:
+    input_host_addresses = ipam.HostAddresses(
+            v4=ipaddress.ip_address(subscription.device.device_lo_ipv4_address),
+            v6=ipaddress.ip_address(subscription.device.device_lo_ipv6_address)
+            )
+    fqdn_as_list=subscription.device.device_fqdn.split(".")
+    hostname=str(fqdn_as_list[0])+"."+str(fqdn_as_list[1])+"."+str(fqdn_as_list[2])
+    lo0_name="lo0."+hostname
+    host_addresses=ipam.delete_service_host(
+        hostname=lo0_name,
+        host_addresses=input_host_addresses,
+        cname_aliases=[hostname],
+        service_type='LO'
+        )
+    return {'cleanup_for': hostname }
+
+
+@step("Deprovision SI- interface  IPs from IPAM/DNS")
+def deprovision_si_ips(subscription: Device) -> None:
+    service_network=ipam.delete_service_network(
+            network=ipaddress.ip_network(subscription.device.device_si_ipv4_network)
+            ,service_type='SI')
+    return {'service_network': service_network}
+
 
+@step("Deprovision LT-  (IAS) interface  IPs from IPAM/DNS")
+def deprovision_lt_ips(subscription: Device) -> None:
+    service_network_v4=ipam.delete_service_network(
+            network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network),
+            service_type='LT_IAS')
+    service_network_v6=ipam.delete_service_network(
+            network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network),
+            service_type='LT_IAS')
+    return {'service_network_v4': service_network_v4,
+            'service_network_v6': service_network_v6}
 
 @workflow(
     "Terminate device",
@@ -46,7 +79,9 @@ def terminate_device():
         init
         >> store_process_subscription(Target.TERMINATE)
         >> unsync
-        >> deprovision_user
+        >> deprovision_loopback_ips
+        >> deprovision_si_ips
+        >> deprovision_lt_ips
         >> set_status(SubscriptionLifecycle.TERMINATED)
         >> resync
         >> done