commit | 7c6f4f82d0168a0ba42d4d468aa1d22c9e85a474 | [log] [tgz] |
---|---|---|
author | Kalhee Kim <Kalhee.Kim@nokia.com> | Wed Oct 04 14:59:11 2017 +0000 |
committer | Charles Chan <charles@opennetworking.org> | Wed Oct 04 17:30:01 2017 +0000 |
tree | 24dc2b2500ccf4bce42691fee251cbc2fab3da1c | |
parent | bc6d697564e61c40a0f9c8b3846158f7694c451d [diff] |
[CORD-1984] Multicast flows get into wrong table in hardware switches Change-Id: I06ec1d75fdef5bfdf28f1cc70f002f70a943ba4f
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 c0c6639..b18081c 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
@@ -1098,7 +1098,14 @@ if (buildIpv6Selector(filteredSelector, fwd) < 0) { return Collections.emptyList(); } - forTableId = UNICAST_ROUTING_TABLE; + //We need to set the proper next table + IpPrefix ipv6Dst = ((IPCriterion) selector.getCriterion(Criterion.Type.IPV6_DST)).ip(); + if (ipv6Dst.isMulticast()) { + forTableId = MULTICAST_ROUTING_TABLE; + } else { + forTableId = UNICAST_ROUTING_TABLE; + } + if (fwd.treatment() != null) { for (Instruction instr : fwd.treatment().allInstructions()) { if (instr instanceof L3ModificationInstruction &&