diff --git a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkMeterManager.java b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkMeterManager.java
index 2cce14c..9ec530b 100644
--- a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkMeterManager.java
+++ b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkMeterManager.java
@@ -216,6 +216,11 @@
         // Do nothing
     }
 
+    @Override
+    public void purgeMeters(DeviceId deviceId) {
+        // Do nothing
+    }
+
     private class InternalMeterProviderService
             extends AbstractVirtualProviderService<VirtualMeterProvider>
             implements VirtualMeterProviderService {
diff --git a/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java b/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
index 7bfd6b9..868566c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/WipeOutCommand.java
@@ -35,6 +35,7 @@
 import org.onosproject.net.intent.IntentService;
 import org.onosproject.net.intent.Key;
 import org.onosproject.net.link.LinkAdminService;
+import org.onosproject.net.meter.MeterService;
 import org.onosproject.net.region.RegionAdminService;
 import org.onosproject.ui.UiExtensionService;
 import org.onosproject.ui.UiTopoLayoutService;
@@ -71,6 +72,7 @@
         wipeOutHosts();
         wipeOutFlows();
         wipeOutGroups();
+        wipeOutMeters();
         wipeOutDevices();
         wipeOutLinks();
         wipeOutNetworkConfig();
@@ -132,6 +134,15 @@
         }
     }
 
+    private void wipeOutMeters() {
+        print("Wiping meters");
+        MeterService meterService = get(MeterService.class);
+        DeviceAdminService deviceAdminService = get(DeviceAdminService.class);
+        for (Device device : deviceAdminService.getDevices()) {
+            meterService.purgeMeters(device.id());
+        }
+    }
+
     private void wipeOutHosts() {
         print("Wiping hosts");
         HostAdminService hostAdminService = get(HostAdminService.class);
diff --git a/core/api/src/main/java/org/onosproject/net/meter/MeterService.java b/core/api/src/main/java/org/onosproject/net/meter/MeterService.java
index 560d94e..991715c 100644
--- a/core/api/src/main/java/org/onosproject/net/meter/MeterService.java
+++ b/core/api/src/main/java/org/onosproject/net/meter/MeterService.java
@@ -84,4 +84,13 @@
      * @param meterId the id to be freed
      */
     void freeMeterId(DeviceId deviceId, MeterId meterId);
+
+    /**
+     * Purges all the meters on the specified device.
+     * @param deviceId device identifier
+     */
+    default void purgeMeters(DeviceId deviceId){
+        //Default implementation does nothing
+    }
+
 }
diff --git a/core/api/src/test/java/org/onosproject/net/meter/MeterServiceAdapter.java b/core/api/src/test/java/org/onosproject/net/meter/MeterServiceAdapter.java
index 26def99..cc55672 100644
--- a/core/api/src/test/java/org/onosproject/net/meter/MeterServiceAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/meter/MeterServiceAdapter.java
@@ -60,6 +60,11 @@
     }
 
     @Override
+    public void purgeMeters(DeviceId deviceId) {
+
+    }
+
+    @Override
     public void addListener(MeterListener listener) {
 
     }
diff --git a/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java b/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
index 03f4889..1979c61 100644
--- a/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
+++ b/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
@@ -298,6 +298,12 @@
         store.freeMeterId(deviceId, meterId);
     }
 
+    @Override
+    public void purgeMeters(DeviceId deviceId) {
+        // We delegate direclty to the store
+        store.purgeMeter(deviceId);
+    }
+
     private class InternalMeterProviderService
             extends AbstractProviderService<MeterProvider>
             implements MeterProviderService {
