diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodPortMapper.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodPortMapper.java
index 7b73f69..d38b5cb 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodPortMapper.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodPortMapper.java
@@ -61,9 +61,6 @@
     private final Logger log = getLogger(getClass());
 
     private static final String NETWORK_STATUS_KEY = "k8s.v1.cni.cncf.io/network-status";
-    private static final String NAME = "name";
-    private static final String IPS = "ips";
-    private static final String NETWORK_PREFIX = "default/";
     private static final long SLEEP_MS = 2000; // we wait 2s
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
@@ -164,6 +161,8 @@
             KubevirtNode node = kubevirtNodeService.node(pod.getSpec().getNodeName());
 
             if (node == null) {
+                log.warn("POD scheduled node name {} is not ready, " +
+                         "we wait for a while...", pod.getSpec().getNodeName());
                 try {
                     // we wait until all k8s nodes are available
                     sleep(SLEEP_MS);
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtVmWatcher.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtVmWatcher.java
index 308707e..0f74dfe 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtVmWatcher.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtVmWatcher.java
@@ -94,6 +94,7 @@
     private static final String MAC = "macAddress";
     private static final String IP = "ipAddress";
     private static final String DEFAULT = "default";
+    private static final String CNI_ZERO = "cni0";
     private static final String NETWORK_SUFFIX = "-net";
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
@@ -483,7 +484,7 @@
                     String network = intf.get(NAME).asText();
                     JsonNode macJson = intf.get(MAC);
 
-                    if (!DEFAULT.equals(network) && macJson != null) {
+                    if (!DEFAULT.equals(network) && !CNI_ZERO.equals(network) && macJson != null) {
                         String compact = StringUtils.substringBeforeLast(network, NETWORK_SUFFIX);
                         MacAddress mac = MacAddress.valueOf(macJson.asText());
                         result.put(mac, compact);
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
index e735282..bfb2916 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
@@ -361,7 +361,7 @@
                 JSONObject object = networkStatus.getJSONObject(i);
                 String name = object.getString(NAME);
                 KubevirtNetwork network = networks.stream()
-                        .filter(n -> (NETWORK_PREFIX + n.name()).equals(name))
+                        .filter(n -> (NETWORK_PREFIX + n.name()).equals(name) || (n.name()).equals(name))
                         .findAny().orElse(null);
                 if (network != null) {
                     String mac = object.getString(MAC);
