diff --git a/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java b/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
index 040b079..614bffe 100644
--- a/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
@@ -1,5 +1,8 @@
 package net.onrc.onos.apps.sdnip;
 
+import java.util.Objects;
+
+
 /**
  * Represents a route update received from BGPd. An update has an operation
  * describing whether the update is adding a route or revoking a route. It also
@@ -70,4 +73,21 @@
     public RibEntry getRibEntry() {
         return ribEntry;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (!(o instanceof RibUpdate)) {
+            return false;
+        }
+
+        RibUpdate otherUpdate = (RibUpdate) o;
+        return Objects.equals(this.operation, otherUpdate.operation)
+                && Objects.equals(this.prefix, otherUpdate.prefix)
+                && Objects.equals(this.ribEntry, otherUpdate.ribEntry);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(operation, prefix, ribEntry);
+    }
 }
