Fix: do not handle ARP packets from openstack events

Change-Id: Ie5abc3d3453263f785d7157b5eff9ba83be730a8
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
index 8e80419..93bde9b 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
@@ -27,10 +27,12 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.k8snetworking.api.K8sFlowRuleService;
+import org.onosproject.k8snode.api.K8sHostAdminService;
 import org.onosproject.k8snode.api.K8sNode;
 import org.onosproject.k8snode.api.K8sNodeAdminService;
 import org.onosproject.k8snode.api.K8sNodeEvent;
 import org.onosproject.k8snode.api.K8sNodeListener;
+import org.onosproject.net.DeviceId;
 import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
 import org.onosproject.net.flow.TrafficSelector;
@@ -60,6 +62,7 @@
 import static org.onosproject.k8snetworking.api.Constants.K8S_NETWORKING_APP_ID;
 import static org.onosproject.k8snetworking.api.Constants.PRIORITY_ARP_POD_RULE;
 import static org.onosproject.k8snetworking.api.Constants.PRIORITY_ARP_REPLY_RULE;
+import static org.onosproject.k8snetworking.util.K8sNetworkingUtil.allK8sDevices;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -87,6 +90,9 @@
     protected K8sNodeAdminService k8sNodeService;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
+    protected K8sHostAdminService k8sHostService;
+
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected K8sFlowRuleService k8sFlowRuleService;
 
     private ApplicationId appId;
@@ -118,6 +124,13 @@
     }
 
     private void processArpPacket(PacketContext context, Ethernet ethernet) {
+
+        DeviceId deviceId = context.inPacket().receivedFrom().deviceId();
+
+        if (!allK8sDevices(k8sNodeService, k8sHostService).contains(deviceId)) {
+            return;
+        }
+
         ARP arp = (ARP) ethernet.getPayload();
 
         if (arp.getOpCode() == ARP.OP_REPLY) {