Enhance the RM logic for Kubevirt Networking App

Change-Id: I84fa678c75ba1e738c68c72ffbc89c54e5309997
(cherry picked from commit 842b3031e5b82a95d1f292fc952e8f091cc1e20b)
diff --git a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/impl/DefaultKubevirtNodeHandler.java b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/impl/DefaultKubevirtNodeHandler.java
index e7d3613..de45151 100644
--- a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/impl/DefaultKubevirtNodeHandler.java
+++ b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/impl/DefaultKubevirtNodeHandler.java
@@ -51,6 +51,7 @@
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.flow.FlowRuleService;
 import org.onosproject.ovsdb.controller.OvsdbClientService;
 import org.onosproject.ovsdb.controller.OvsdbController;
 import org.osgi.service.component.ComponentContext;
@@ -152,6 +153,9 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected ComponentConfigService componentConfigService;
 
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
+    protected FlowRuleService flowRuleService;
+
     /** OVSDB server listen port. */
     private int ovsdbPortNum = OVSDB_PORT_NUM_DEFAULT;
 
@@ -459,6 +463,10 @@
             return;
         }
 
+        // purges all the flow rules installed on the node
+        flowRuleService.purgeFlowRules(node.intgBridge());
+        flowRuleService.purgeFlowRules(node.tunBridge());
+
         // unprovision physical interfaces from the node
         // this procedure includes detaching physical port from physical bridge,
         // remove patch ports from br-int, removing physical bridge