Adding metadata match criterion to solve the conflict-flow issue.
(SEBA-668)
Change-Id: I1a4b6512445489ecfc605100ca4bcaf4828aebad
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
index 4155f27..0ccbc4d 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
@@ -464,7 +464,13 @@
VlanId innerVlan = ((VlanIdCriterion) innerVlanCriterion).vlanId();
Criterion innerVid = Criteria.matchVlanId(innerVlan);
- TrafficSelector outerSelector = buildSelector(inport, outerVlan);
+ // Required to differentiate the same match flows
+ // Please note that S tag and S p bit values will be same for the same service - so conflict flows!
+ // Metadata match criteria solves the conflict issue - but not used by the voltha
+ // Maybe - find a better way to solve the above problem
+ Criterion metadata = Criteria.matchMetadata(innerVlan.toShort());
+
+ TrafficSelector outerSelector = buildSelector(inport, metadata, outerVlan);
if (innerVlan.toShort() == VlanId.ANY_VALUE) {
installDownstreamRulesForAnyVlan(fwd, output, outerSelector, buildSelector(inport,