diff --git a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackNetwork.java b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackNetwork.java
index 181caf8..c760146 100644
--- a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackNetwork.java
+++ b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackNetwork.java
@@ -36,10 +36,7 @@
         /**
          * Currently only VXLAN moded is supported.
          */
-        VXLAN,
-        VLAN,
-        STT,
-        LOCAL
+        VXLAN
     }
 
     /**
diff --git a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackRestHandler.java b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackRestHandler.java
index 599b7e6..842e9fe 100644
--- a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackRestHandler.java
+++ b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/OpenstackRestHandler.java
@@ -28,6 +28,7 @@
 import javax.ws.rs.core.MediaType;
 import java.io.IOException;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import static com.google.common.base.Preconditions.checkNotNull;
@@ -70,6 +71,8 @@
         String response = builder.accept(MediaType.APPLICATION_JSON_TYPE).
                 header("X-Auth-Token", getToken()).get(String.class);
 
+        log.debug("networks response:" + response);
+
         ObjectMapper mapper = new ObjectMapper();
         List<OpenstackNetwork> openstackNetworks = Lists.newArrayList();
         try {
@@ -81,7 +84,7 @@
             log.warn("getNetworks()", e);
         }
 
-        log.debug("networks response:" + response);
+        openstackNetworks.removeAll(Collections.singleton(null));
         openstackNetworks.forEach(n -> log.debug("network ID: {}", n.id()));
 
         return openstackNetworks;
diff --git a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/web/OpenstackNetworkCodec.java b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/web/OpenstackNetworkCodec.java
index 7466df7..92f1552 100644
--- a/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/web/OpenstackNetworkCodec.java
+++ b/apps/openstackswitching/app/src/main/java/org/onosproject/openstackswitching/web/OpenstackNetworkCodec.java
@@ -56,13 +56,22 @@
                 .tenantId(tenantId)
                 .id(id);
 
-        if (!networkInfo.path(NETWORK_TYPE).isMissingNode()) {
-            onb.networkType(OpenstackNetwork.NetworkType.valueOf(networkInfo.path(NETWORK_TYPE).
-                    asText().toUpperCase()));
-            onb.segmentId(networkInfo.path(SEGMENTATION_ID).asText());
+        if (networkInfo.path(NETWORK_TYPE).isMissingNode()) {
+            log.warn("Network {} has no network type, ignore it.", name);
+            return null;
         }
 
+        String networkType = networkInfo.path(NETWORK_TYPE).asText();
+        try {
+            onb.networkType(OpenstackNetwork.NetworkType.valueOf(networkType.toUpperCase()));
+        } catch (IllegalArgumentException e) {
+            log.warn("Network {} has unsupported network type {}, ignore it.",
+                     name, networkType);
+            return null;
+        }
+
+        onb.segmentId(networkInfo.path(SEGMENTATION_ID).asText());
+
         return onb.build();
     }
-
 }
