Delete prefix from sr-device-subnet when the next hop host is removed

Change-Id: I440897a531b69dd7bbe771eff69728bbff9a2513
diff --git a/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java b/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
index 4c56db5..1690522 100644
--- a/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
+++ b/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
@@ -171,6 +171,16 @@
                         processRoutingRule(pairDeviceId.get(), pairLocalPort.get(), hostMac, vlanId,
                                 ip, true));
             }
+
+            // Delete prefix from sr-device-subnet when the next hop host is removed
+            srManager.routeService.getRouteTables().forEach(tableId -> {
+                srManager.routeService.getRoutes(tableId).forEach(routeInfo -> {
+                    if (routeInfo.allRoutes().stream().anyMatch(rr -> ips.contains(rr.nextHop()))) {
+                        log.debug("HostRemoved. removeSubnet {}, {}", location, routeInfo.prefix());
+                        srManager.deviceConfiguration.removeSubnet(location, routeInfo.prefix());
+                    }
+                });
+            });
         });
     }