Fix for flow equality bug which can cause
* multiple flows with the same match to be simultaneously present in the flow
store, and
* similar but different rule in switch and store, resulting in flows stuck in
PENDING_ADD state.
Fixes ONOS-2426.
Change-Id: I4b4e444c3a6dba7e4d3278e9469069e2dbdb9b67
diff --git a/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java b/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
index 0f0dae8..b059e9a 100644
--- a/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
@@ -15,10 +15,11 @@
*/
package org.onosproject.rest;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
+import com.eclipsesource.json.JsonArray;
+import com.eclipsesource.json.JsonObject;
+import com.google.common.collect.ImmutableSet;
+import com.sun.jersey.api.client.UniformInterfaceException;
+import com.sun.jersey.api.client.WebResource;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
import org.junit.After;
@@ -40,6 +41,7 @@
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.FlowEntry;
import org.onosproject.net.flow.FlowId;
+import org.onosproject.net.flow.FlowRule;
import org.onosproject.net.flow.FlowRuleExtPayLoad;
import org.onosproject.net.flow.FlowRuleService;
import org.onosproject.net.flow.TrafficSelector;
@@ -48,11 +50,9 @@
import org.onosproject.net.flow.instructions.Instruction;
import org.onosproject.net.flow.instructions.Instructions;
-import com.eclipsesource.json.JsonArray;
-import com.eclipsesource.json.JsonObject;
-import com.google.common.collect.ImmutableSet;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.client.WebResource;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.createMock;
@@ -194,6 +194,11 @@
}
@Override
+ public boolean exactMatch(FlowRule rule) {
+ return false;
+ }
+
+ @Override
public FlowRuleExtPayLoad payLoad() {
return null;
}