Fix: do not handle ARP packets from openstack events

Change-Id: Ie5abc3d3453263f785d7157b5eff9ba83be730a8
(cherry picked from commit eab513520b198300b10a974f7ba9e993f3a92d06)
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
index 41e1239..c55cb45 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
@@ -48,6 +48,7 @@
 import org.onosproject.k8snode.api.K8sHostService;
 import org.onosproject.k8snode.api.K8sNode;
 import org.onosproject.k8snode.api.K8sNodeService;
+import org.onosproject.k8snode.api.K8sRouterBridge;
 import org.onosproject.k8snode.api.K8sTunnelBridge;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Port;
@@ -634,6 +635,48 @@
         return fsb.toString();
     }
 
+    /**
+     * Returns all device identifiers belong to kubernetes nodes and hosts.
+     *
+     * @param nodeService   node service
+     * @param hostService   host service
+     * @return all device identifiers belong to kubernetes nodes and hosts
+     */
+    public static Set<DeviceId> allK8sDevices(K8sNodeService nodeService,
+                                              K8sHostService hostService) {
+        Set<DeviceId> allDevIds = new HashSet<>();
+
+        Set<DeviceId> intgDevIds = nodeService.completeNodes().stream()
+                .map(K8sNode::intgBridge).collect(Collectors.toSet());
+        Set<DeviceId> extDevIds = nodeService.completeNodes().stream()
+                .map(K8sNode::extBridge).collect(Collectors.toSet());
+        Set<DeviceId> tunDevIds = nodeService.completeNodes().stream()
+                .map(K8sNode::tunBridge).collect(Collectors.toSet());
+        Set<DeviceId> localDevIds = nodeService.completeNodes().stream()
+                .map(K8sNode::localBridge).collect(Collectors.toSet());
+
+        Set<DeviceId> hostTunDevIds = new HashSet<>();
+        Set<DeviceId> hostRouterDevIds = new HashSet<>();
+
+        for (K8sHost host : hostService.completeHosts()) {
+            Set<K8sTunnelBridge> hostTunBrs = host.tunBridges();
+            Set<K8sRouterBridge> hostRouterBrs = host.routerBridges();
+            hostTunDevIds.addAll(hostTunBrs.stream().map(K8sTunnelBridge::deviceId)
+                    .collect(Collectors.toSet()));
+            hostRouterDevIds.addAll(hostRouterBrs.stream().map(K8sRouterBridge::deviceId)
+                    .collect(Collectors.toSet()));
+        }
+
+        allDevIds.addAll(intgDevIds);
+        allDevIds.addAll(extDevIds);
+        allDevIds.addAll(tunDevIds);
+        allDevIds.addAll(localDevIds);
+        allDevIds.addAll(hostTunDevIds);
+        allDevIds.addAll(hostRouterDevIds);
+
+        return allDevIds;
+    }
+
     private static int binLower(String binStr, int bits) {
         StringBuilder outBin = new StringBuilder(
                 binStr.substring(MASK_BEGIN_IDX, MASK_MAX_IDX - bits));