diff --git a/core/api/src/main/java/org/onosproject/net/meter/DefaultMeter.java b/core/api/src/main/java/org/onosproject/net/meter/DefaultMeter.java
index ab6b444..f7d6210 100644
--- a/core/api/src/main/java/org/onosproject/net/meter/DefaultMeter.java
+++ b/core/api/src/main/java/org/onosproject/net/meter/DefaultMeter.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.meter;
 
+import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableSet;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.DeviceId;
@@ -151,6 +152,26 @@
                 .add("bands", bands).toString();
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        DefaultMeter that = (DefaultMeter) o;
+        return Objects.equal(id, that.id) &&
+                Objects.equal(appId, that.appId) &&
+                Objects.equal(unit, that.unit) &&
+                Objects.equal(deviceId, that.deviceId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(id, appId, unit, deviceId);
+    }
+
     public static final class Builder implements Meter.Builder {
 
         private MeterId id;
