[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;
         }