Removed pipeconf dependency from PiPipelineInterpreter
If needed, an interpreter implementation should know which pipeconf it
supports. Instead, mapping of treatments now depends on a table ID,
since table in P4 can potentially support different actions with similar
semantics.
Change-Id: Iffbc84457f08e5dba84a8e949931849006f82535
diff --git a/core/net/src/main/java/org/onosproject/net/pi/impl/PiFlowRuleTranslator.java b/core/net/src/main/java/org/onosproject/net/pi/impl/PiFlowRuleTranslator.java
index 14f15a5..8b28b5e 100644
--- a/core/net/src/main/java/org/onosproject/net/pi/impl/PiFlowRuleTranslator.java
+++ b/core/net/src/main/java/org/onosproject/net/pi/impl/PiFlowRuleTranslator.java
@@ -123,7 +123,7 @@
Collection<PiFieldMatch> fieldMatches = buildFieldMatches(interpreter, rule.selector(), table);
/* Translate treatment */
- PiAction piAction = buildAction(rule.treatment(), interpreter, pipeconf);
+ PiAction piAction = buildAction(rule.treatment(), interpreter, piTableId);
piAction = typeCheckAction(piAction, table);
PiTableEntry.Builder tableEntryBuilder = PiTableEntry.builder();
@@ -155,7 +155,7 @@
* Builds a PI action out of the given treatment, optionally using the given interpreter.
*/
private static PiAction buildAction(TrafficTreatment treatment, PiPipelineInterpreter interpreter,
- PiPipeconf pipeconf)
+ PiTableId tableId)
throws PiFlowRuleTranslationException {
PiTableAction piTableAction = null;
@@ -176,7 +176,7 @@
if (piTableAction == null && interpreter != null) {
// No PiInstruction, use interpreter to build action.
try {
- piTableAction = interpreter.mapTreatment(treatment, pipeconf);
+ piTableAction = interpreter.mapTreatment(treatment, tableId);
} catch (PiPipelineInterpreter.PiInterpreterException e) {
throw new PiFlowRuleTranslationException(
"Interpreter was unable to translate treatment. " + e.getMessage());