[ONOS-7285][ONOS-7263] VLAN support by fabric.p4
Change-Id: I9ea460bca2698eb74f0d4988830a1e7cc7bc2768
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java
index 5c66474..363a95c 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java
@@ -263,7 +263,12 @@
};
FlowRuleOperations ops = buildFlowRuleOps(objective, flowRules, ctx);
- flowRuleService.apply(ops);
+ if (ops != null) {
+ flowRuleService.apply(ops);
+ } else {
+ // remove pendings
+ flowRules.forEach(flowRule -> pendingInstallObjectiveFlows.remove(flowRule.id()));
+ }
}
private void installGroups(Objective objective, Collection<GroupDescription> groups) {
@@ -317,8 +322,13 @@
case REMOVE:
flowRules.forEach(ops::remove);
break;
+ case ADD_TO_EXISTING:
+ case REMOVE_FROM_EXISTING:
+ // Next objective may use ADD_TO_EXIST or REMOVE_FROM_EXIST op
+ // No need to update FlowRuls for vlan_meta table.
+ return null;
default:
- log.warn("Unsupported op {} for {}", objective);
+ log.warn("Unsupported op {} for {}", objective.op(), objective);
fail(objective, ObjectiveError.BADPARAMS);
return null;
}