diff --git a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnArpProxy.java b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnArpProxy.java
index 917bd6c..3c92404 100644
--- a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnArpProxy.java
+++ b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnArpProxy.java
@@ -123,8 +123,6 @@
      * @param gatewayMac gateway mac address
      */
     public void processArpPacket(PacketContext context, Ethernet ethPacket, MacAddress gatewayMac) {
-        checkArgument(!gatewayMac.equals(MacAddress.NONE));
-
         ARP arpPacket = (ARP) ethPacket.getPayload();
         Ip4Address targetIp = Ip4Address.valueOf(arpPacket.getTargetProtocolAddress());
 
@@ -132,6 +130,12 @@
            return;
         }
 
+        if (gatewayMac.equals(MacAddress.NONE)) {
+            log.debug("Gateway mac address is not set, ignoring ARP request");
+            context.block();
+            return;
+        }
+
         Ethernet ethReply = ARP.buildArpReply(
                 targetIp,
                 gatewayMac,
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 92f1552..9203321 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
@@ -57,7 +57,7 @@
                 .id(id);
 
         if (networkInfo.path(NETWORK_TYPE).isMissingNode()) {
-            log.warn("Network {} has no network type, ignore it.", name);
+            log.debug("Network {} has no network type, ignore it.", name);
             return null;
         }
 
@@ -65,7 +65,7 @@
         try {
             onb.networkType(OpenstackNetwork.NetworkType.valueOf(networkType.toUpperCase()));
         } catch (IllegalArgumentException e) {
-            log.warn("Network {} has unsupported network type {}, ignore it.",
+            log.debug("Network {} has unsupported network type {}, ignore it.",
                      name, networkType);
             return null;
         }
