commit | 3cc7e66059ac9be3cdfbd266563690ec53badc9b | [log] [tgz] |
---|---|---|
author | Pier <pierventre@hotmail.com> | Wed Mar 07 11:42:50 2018 +0100 |
committer | Pier <pierventre@hotmail.com> | Tue Mar 13 11:14:17 2018 -0700 |
tree | 1440261188aacb23ab77a38b238b02c6f11ef1b9 | |
parent | ce5ea129ad5e291d5b07b66ab91b79d9c78d998c [diff] |
[CORD-2811] Fix VLAN cases in Mcast Change-Id: I0b051a4502e48b4278723a1b782f49e0d6a2dffa
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java index 9c22b37..9876a0c 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/CpqdOfdpa2Pipeline.java
@@ -176,6 +176,9 @@ if (vidCriterion.vlanId() == VlanId.NONE) { // untagged packets are assigned vlans treatment.pushVlan().setVlanId(assignedVlan); + } else if (!vidCriterion.vlanId().equals(assignedVlan)) { + // Rewrite with assigned vlans + treatment.setVlanId(assignedVlan); } // ofdpa cannot match on ALL portnumber, so we need to use separate
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java index 9f23cc9..6fd0450 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
@@ -467,8 +467,13 @@ // Use the VLAN in criterion if metadata is not present and the traffic is tagged if (!vidCriterion.vlanId().equals(VlanId.NONE)) { assignedVlan = vidCriterion.vlanId(); - } else if (filt.meta() != null) { - assignedVlan = readVlanFromTreatment(filt.meta()); + } + // If the meta VLAN is present let's update the assigned vlan + if (filt.meta() != null) { + VlanId metaVlan = readVlanFromTreatment(filt.meta()); + if (metaVlan != null) { + assignedVlan = metaVlan; + } } if (assignedVlan == null) {