From e63291850fd0795c5700e25e67e5dee89ba54c5f Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Tue, 1 Dec 2015 05:49:27 -0800 Subject: onos commit hash c2999f30c69e50df905a9d175ef80b3f23a98514 Change-Id: I2bb8562c4942b6d6a6d60b663db2e17540477b81 Signed-off-by: Ashlee Young --- .../provider/of/flow/impl/FlowEntryBuilder.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java') diff --git a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java index 1354240f..d4494f18 100644 --- a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java +++ b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java @@ -44,7 +44,7 @@ import org.onosproject.net.flow.TrafficSelector; import org.onosproject.net.flow.TrafficTreatment; import org.onosproject.net.flow.instructions.Instructions; import org.onosproject.openflow.controller.Dpid; -import org.onosproject.openflow.controller.ExtensionInterpreter; +import org.onosproject.openflow.controller.ExtensionTreatmentInterpreter; import org.projectfloodlight.openflow.protocol.OFFlowMod; import org.projectfloodlight.openflow.protocol.OFFlowRemoved; import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry; @@ -449,7 +449,7 @@ public class FlowEntryBuilder { break; case TUNNEL_IPV4_DST: DriverHandler driver = getDriver(dpid); - ExtensionInterpreter interpreter = driver.behaviour(ExtensionInterpreter.class); + ExtensionTreatmentInterpreter interpreter = driver.behaviour(ExtensionTreatmentInterpreter.class); if (interpreter != null) { builder.extension(interpreter.mapAction(action), DeviceId.deviceId(Dpid.uri(dpid))); } @@ -513,6 +513,7 @@ public class FlowEntryBuilder { Ip4Prefix ip4Prefix; Ip6Address ip6Address; Ip6Prefix ip6Prefix; + Ip4Address ip; TrafficSelector.Builder builder = DefaultTrafficSelector.builder(); for (MatchField field : match.getMatchFields()) { @@ -707,17 +708,26 @@ public class FlowEntryBuilder { long tunnelId = match.get(MatchField.TUNNEL_ID).getValue(); builder.matchTunnelId(tunnelId); break; + case ARP_OP: + int arpOp = match.get(MatchField.ARP_OP).getOpcode(); + builder.matchArpOp(arpOp); + break; case ARP_SHA: mac = MacAddress.valueOf(match.get(MatchField.ARP_SHA).getLong()); builder.matchArpSha(mac); break; + case ARP_SPA: + ip = Ip4Address.valueOf(match.get(MatchField.ARP_SPA).getInt()); + builder.matchArpSpa(ip); + break; case ARP_THA: mac = MacAddress.valueOf(match.get(MatchField.ARP_THA).getLong()); builder.matchArpTha(mac); break; - case ARP_OP: - case ARP_SPA: case ARP_TPA: + ip = Ip4Address.valueOf(match.get(MatchField.ARP_TPA).getInt()); + builder.matchArpTpa(ip); + break; case MPLS_TC: default: log.warn("Match type {} not yet implemented.", field.id); -- cgit 1.2.3-korg