Don't install table miss entry for OVS 1.3 or CPqD switches.
We shouldn't have special behaviour for some switches, and we want
send-to-controller behaviour to be determined by the applications rather
than the switch type.
Change-Id: I87fd0c0c0b567660378d325286101d19d86aba33
diff --git a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/DriverManager.java b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/DriverManager.java
index f7a5f1a..f7c547c 100644
--- a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/DriverManager.java
+++ b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/DriverManager.java
@@ -39,10 +39,6 @@
private static final Logger log = LoggerFactory.getLogger(DriverManager.class);
- // Whether to use an OF 1.3 configured TTP, or to use an OF 1.0-style
- // single table with packet-ins.
- private static boolean cpqdUsePipeline13 = false;
-
/**
* Return an IOFSwitch object based on switch's manufacturer description
* from OFDescStatsReply.
@@ -59,7 +55,7 @@
if (vendor.startsWith("Stanford University, Ericsson Research and CPqD Research")
&&
hw.startsWith("OpenFlow 1.3 Reference Userspace Switch")) {
- return new OFSwitchImplCPqD13(dpid, desc, cpqdUsePipeline13);
+ return new OFSwitchImplCPqD13(dpid, desc);
}
if (hw.startsWith("Open vSwitch")) {
@@ -129,18 +125,6 @@
private DriverManager() {
}
- /**
- * Sets the configuration parameter which determines how the CPqD switch
- * is set up. If usePipeline13 is true, a 1.3 pipeline will be set up on
- * the switch. Otherwise, the switch will be set up in a 1.0 style with
- * a single table where missed packets are sent to the controller.
- *
- * @param usePipeline13 whether to use a 1.3 pipeline or not
- */
- public static void setConfigForCpqd(boolean usePipeline13) {
- cpqdUsePipeline13 = usePipeline13;
- }
-
public static OpenFlowSwitchDriver getSwitch(Dpid dpid,
OFDescStatsReply desc, OFVersion ofv) {
return new DriverManager().getOFSwitchImpl(dpid, desc, ofv);
diff --git a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplCPqD13.java b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplCPqD13.java
index 276395a..b804cd9 100644
--- a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplCPqD13.java
+++ b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplCPqD13.java
@@ -15,6 +15,14 @@
*/
package org.onosproject.openflow.drivers;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import org.onosproject.openflow.controller.Dpid;
import org.onosproject.openflow.controller.RoleState;
import org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch;
@@ -57,14 +65,6 @@
import org.projectfloodlight.openflow.types.U64;
import org.projectfloodlight.openflow.util.HexString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicBoolean;
-
/**
* OFDescriptionStatistics Vendor (Manufacturer Desc.): Stanford University,
* Ericsson Research and CPqD Research. Make (Hardware Desc.) : OpenFlow 1.3
@@ -107,15 +107,11 @@
private final Map<Integer, OFGroup> l2groups;
- private final boolean usePipeline13;
-
- public OFSwitchImplCPqD13(Dpid dpid, OFDescStatsReply desc, boolean usePipeline13) {
+ public OFSwitchImplCPqD13(Dpid dpid, OFDescStatsReply desc) {
super(dpid);
driverHandshakeComplete = new AtomicBoolean(false);
l2groups = new ConcurrentHashMap<Integer, OFGroup>();
setSwitchDescription(desc);
-
- this.usePipeline13 = usePipeline13;
}
/* (non-Javadoc)
@@ -136,12 +132,7 @@
}
startDriverHandshakeCalled = true;
factory = this.factory();
- if (!usePipeline13) {
- // Send packet-in to controller if a packet misses the first table
- populateTableMissEntry(0, true, false, false, 0);
- } //else {
- // configureSwitch();
- //}
+
sendBarrier(true);
}
diff --git a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplOVS13.java b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplOVS13.java
index c7f45db..1b267d3 100644
--- a/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplOVS13.java
+++ b/openflow/drivers/src/main/java/org/onosproject/openflow/drivers/OFSwitchImplOVS13.java
@@ -15,6 +15,11 @@
*/
package org.onosproject.openflow.drivers;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import org.onosproject.openflow.controller.Dpid;
import org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch;
import org.onosproject.openflow.controller.driver.SwitchDriverSubHandshakeAlreadyStarted;
@@ -32,11 +37,6 @@
import org.projectfloodlight.openflow.types.OFPort;
import org.projectfloodlight.openflow.types.TableId;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-
/**
* OFDescriptionStatistics Vendor (Manufacturer Desc.): Nicira, Inc. Make
* (Hardware Desc.) : Open vSwitch Model (Datapath Desc.) : None Software :
@@ -132,13 +132,10 @@
}
}
-
private void configureSwitch() {
- populateTableMissEntry(0, true, false, false, 0);
sendBarrier(true);
}
-
private void sendBarrier(boolean finalBarrier) {
int xid = getNextTransactionId();
if (finalBarrier) {