diff --git a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManager.java b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManager.java
index 0a5a509..b4c84b6 100644
--- a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManager.java
+++ b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManager.java
@@ -26,6 +26,7 @@
 import org.apache.commons.lang3.tuple.Pair;
 import org.onlab.osgi.ServiceDirectory;
 import org.onlab.util.KryoNamespace;
+import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.virtual.AbstractVnetService;
 import org.onosproject.incubator.net.virtual.NetworkId;
 import org.onosproject.incubator.net.virtual.VirtualNetworkFlowObjectiveStore;
@@ -248,6 +249,12 @@
         return pendingFlowObjectives;
     }
 
+    @Override
+    public void purgeAll(DeviceId deviceId, ApplicationId appId) {
+        // TODO: purge queued flow objectives?
+        pipeliners.get(deviceId).purgeAll(appId);
+    }
+
     private boolean queueFwdObjective(DeviceId deviceId, ForwardingObjective fwd) {
         boolean queued = false;
         synchronized (pendingForwards) {
@@ -696,6 +703,11 @@
         }
 
         @Override
+        public void purgeAll(ApplicationId appId) {
+            flowRuleService.purgeFlowRules(deviceId, appId);
+        }
+
+        @Override
         public List<String> getNextMappings(NextGroup nextGroup) {
             // Default single table pipeline does not use nextObjectives or groups
             return null;
