diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
index bb8104d..f1cb90c 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
@@ -111,7 +111,12 @@
      *
      * @param deviceId device id
      */
-    void purgeFlowRule(DeviceId deviceId);
+    default void purgeFlowRule(DeviceId deviceId) {}
+
+    /**
+     * Removes all flow entries from store.
+     */
+    void purgeFlowRules();
 
     /**
      * Updates the flow table statistics of the specified device using
diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleFlowRuleStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleFlowRuleStore.java
index 3706b4b..81c3105 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleFlowRuleStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleFlowRuleStore.java
@@ -316,6 +316,11 @@
     }
 
     @Override
+    public void purgeFlowRules() {
+        flowEntries.clear();
+    }
+
+    @Override
     public void storeBatch(
             FlowRuleBatchOperation operation) {
         List<FlowRuleBatchEntry> toAdd = new ArrayList<>();
diff --git a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
index ef8bfe5..9e2c53d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/DistributedFlowRuleStore.java
@@ -624,6 +624,11 @@
     }
 
     @Override
+    public void purgeFlowRules() {
+        flowTable.purgeFlowRules();
+    }
+
+    @Override
     public void batchOperationComplete(FlowRuleBatchEvent event) {
         //FIXME: need a per device pending response
         NodeId nodeId = pendingResponses.remove(event.subject().batchId());
@@ -872,6 +877,10 @@
             flowEntries.remove(deviceId);
         }
 
+        public void purgeFlowRules() {
+            flowEntries.clear();
+        }
+
         private List<NodeId> getBackupNodes(DeviceId deviceId) {
             // The returned backup node list is in the order of preference i.e. next likely master first.
             List<NodeId> allPossibleBackupNodes = replicaInfoManager.getReplicaInfoFor(deviceId).backups();
