diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
index 90c39df..b1bf336 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
@@ -50,6 +50,11 @@
          * FLAT typed provider network.
          */
         FLAT,
+
+        /**
+         * VLAN typed virtual network.
+         */
+        VLAN,
     }
 
     /**
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
index 6572033..9def76f 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
@@ -412,6 +412,7 @@
                     initIntegrationTunnelBridge(network);
                     break;
                 case FLAT:
+                case VLAN:
                 default:
                     // do nothing
                     break;
@@ -430,6 +431,7 @@
                     purgeIntegrationTunnelBridge(network);
                     break;
                 case FLAT:
+                case VLAN:
                 default:
                     // do nothing
                     break;
@@ -498,6 +500,7 @@
                         setDefaultRules(node, network);
                         break;
                     case FLAT:
+                    case VLAN:
                     default:
                         // do nothing
                         break;
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtSwitchingTenantHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtSwitchingTenantHandler.java
index bc124c6..01c32dd 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtSwitchingTenantHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtSwitchingTenantHandler.java
@@ -60,6 +60,7 @@
 import static org.onosproject.kubevirtnetworking.api.Constants.PRIORITY_TUNNEL_RULE;
 import static org.onosproject.kubevirtnetworking.api.Constants.TUNNEL_DEFAULT_TABLE;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.FLAT;
+import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VLAN;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.getPort;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.tunnelPort;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.tunnelToTenantPort;
@@ -151,8 +152,7 @@
             return;
         }
 
-        // TODO: need to handle VLAN case
-        if (network.type() == FLAT) {
+        if (network.type() == FLAT || network.type() == VLAN) {
             return;
         }
 
@@ -216,8 +216,7 @@
             return;
         }
 
-        // TODO: need to handle VLAN case
-        if (network.type() == FLAT) {
+        if (network.type() == FLAT || network.type() == VLAN) {
             return;
         }
 
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 d759db0..04b6dba 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
@@ -406,6 +406,7 @@
             case GENEVE:
                 return node.genevePort();
             case FLAT:
+            case VLAN:
             default:
                 // do nothing
                 return null;
