Major OFDPA refactoring to handle multi-stage flows in a cleaner way
Multi-stage flows are required in two cases:
- VLAN table: filtering rule need to be installed before assignment rule
- TMAC table: unicacst rule need to be installed before multicast rule (QMX only)
Change-Id: I2cccc42a2c08b00f887b22bad54c7107794beafa
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
index 293f651..36be98d 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2VlanPipeline.java
@@ -22,6 +22,8 @@
import java.util.Collections;
import java.util.Deque;
import java.util.List;
+
+import com.google.common.collect.ImmutableList;
import org.onlab.packet.Ethernet;
import org.onlab.packet.VlanId;
import org.onosproject.core.ApplicationId;
@@ -86,7 +88,7 @@
* @see org.onosproject.driver.pipeline.OFDPA2Pipeline#processEthDstFilter
*/
@Override
- protected List<FlowRule> processEthDstFilter(PortCriterion portCriterion,
+ protected List<List<FlowRule>> processEthDstFilter(PortCriterion portCriterion,
EthCriterion ethCriterion,
VlanIdCriterion vidCriterion,
VlanId assignedVlan,
@@ -141,7 +143,7 @@
.forTable(TMAC_TABLE).build();
rules.add(rule);
}
- return rules;
+ return ImmutableList.of(rules);
}
/*