Remove openstack4j NetworkType due to unsupport of GENEVE tunnel

Change-Id: Id3579b706480114b076fbe867040b9bf8c2c738f
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
index 3670390..3ac0c0d 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
@@ -46,6 +46,7 @@
 import org.onosproject.openstacknetworking.api.InstancePortListener;
 import org.onosproject.openstacknetworking.api.InstancePortService;
 import org.onosproject.openstacknetworking.api.OpenstackFlowRuleService;
+import org.onosproject.openstacknetworking.api.OpenstackNetwork.Type;
 import org.onosproject.openstacknetworking.api.OpenstackNetworkEvent;
 import org.onosproject.openstacknetworking.api.OpenstackNetworkListener;
 import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
@@ -54,7 +55,6 @@
 import org.onosproject.openstacknode.api.OpenstackNodeListener;
 import org.onosproject.openstacknode.api.OpenstackNodeService;
 import org.openstack4j.model.network.Network;
-import org.openstack4j.model.network.NetworkType;
 import org.openstack4j.model.network.Subnet;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.component.annotations.Activate;
@@ -85,6 +85,10 @@
 import static org.onosproject.openstacknetworking.api.Constants.PRIORITY_ARP_REPLY_RULE;
 import static org.onosproject.openstacknetworking.api.Constants.PRIORITY_ARP_REQUEST_RULE;
 import static org.onosproject.openstacknetworking.api.InstancePort.State.ACTIVE;
+import static org.onosproject.openstacknetworking.api.OpenstackNetwork.Type.FLAT;
+import static org.onosproject.openstacknetworking.api.OpenstackNetwork.Type.GRE;
+import static org.onosproject.openstacknetworking.api.OpenstackNetwork.Type.VLAN;
+import static org.onosproject.openstacknetworking.api.OpenstackNetwork.Type.VXLAN;
 import static org.onosproject.openstacknetworking.impl.OsgiPropertyConstants.ARP_MODE;
 import static org.onosproject.openstacknetworking.impl.OsgiPropertyConstants.ARP_MODE_DEFAULT;
 import static org.onosproject.openstacknetworking.impl.OsgiPropertyConstants.GATEWAY_MAC;
@@ -299,6 +303,8 @@
 
         if (ARP_BROADCAST_MODE.equals(getArpMode())) {
 
+            Type netType = osNetworkService.networkType(network.getId());
+
             String gateway = osSubnet.getGateway();
             if (gateway == null) {
                 return;
@@ -307,11 +313,10 @@
             TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder();
             TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
 
-            if (NetworkType.VLAN == network.getNetworkType()) {
+            if (netType == VLAN) {
                 sBuilder.matchVlanId(VlanId.vlanId(network.getProviderSegID()));
                 tBuilder.popVlan();
-            } else if (NetworkType.VXLAN == network.getNetworkType() ||
-                       NetworkType.GRE == network.getNetworkType()) {
+            } else if (netType == VXLAN || netType == GRE) {
                 // do not remove fake gateway ARP rules, if there is another gateway
                 // which has the same subnet that to be removed
                 // this only occurs if we have duplicated subnets associated with
@@ -371,9 +376,9 @@
      * @param install   installation flag
      */
     private void setArpRequestRule(InstancePort port, boolean install) {
-        NetworkType type = osNetworkService.network(port.networkId()).getNetworkType();
+        Type netType = osNetworkService.networkType(port.networkId());
 
-        switch (type) {
+        switch (netType) {
             case VXLAN:
             case GRE:
                 setRemoteArpRequestRuleForTunnel(port, install);
@@ -393,9 +398,9 @@
      * @param install   installation flag
      */
     private void setArpReplyRule(InstancePort port, boolean install) {
-        NetworkType type = osNetworkService.network(port.networkId()).getNetworkType();
+        Type netType = osNetworkService.networkType(port.networkId());
 
-        switch (type) {
+        switch (netType) {
             case VXLAN:
                 setArpReplyRuleForVxlan(port, install);
                 break;
@@ -510,26 +515,26 @@
 
     // a helper method
     private TrafficSelector getArpReplySelectorForVxlan(InstancePort port) {
-        return getArpReplySelectorForVnet(port, NetworkType.VXLAN);
+        return getArpReplySelectorForVnet(port, VXLAN);
     }
 
     // a helper method
     private TrafficSelector getArpReplySelectorForGre(InstancePort port) {
-        return getArpReplySelectorForVnet(port, NetworkType.GRE);
+        return getArpReplySelectorForVnet(port, GRE);
     }
 
     // a helper method
     private TrafficSelector getArpReplySelectorForVlan(InstancePort port) {
-        return getArpReplySelectorForVnet(port, NetworkType.VLAN);
+        return getArpReplySelectorForVnet(port, VLAN);
     }
 
     // a helper method
     private TrafficSelector getArpReplySelectorForVnet(InstancePort port,
-                                                       NetworkType type) {
+                                                       Type type) {
 
         TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder();
 
-        if (type == NetworkType.VLAN) {
+        if (type == VLAN) {
             String segId = osNetworkService.network(port.networkId()).getProviderSegID();
             sBuilder.matchVlanId(VlanId.vlanId(segId));
         }
@@ -546,31 +551,31 @@
     private void setLocalArpReplyTreatmentForVxlan(TrafficSelector selector,
                                                    InstancePort port,
                                                    boolean install) {
-        setLocalArpReplyTreatmentForVnet(selector, port, NetworkType.VXLAN, install);
+        setLocalArpReplyTreatmentForVnet(selector, port, VXLAN, install);
     }
 
     // a helper method
     private void setLocalArpReplyTreatmentForGre(TrafficSelector selector,
                                                  InstancePort port,
                                                  boolean install) {
-        setLocalArpReplyTreatmentForVnet(selector, port, NetworkType.GRE, install);
+        setLocalArpReplyTreatmentForVnet(selector, port, GRE, install);
     }
 
     // a helper method
     private void setLocalArpReplyTreatmentForVlan(TrafficSelector selector,
                                                   InstancePort port,
                                                   boolean install) {
-        setLocalArpReplyTreatmentForVnet(selector, port, NetworkType.VLAN, install);
+        setLocalArpReplyTreatmentForVnet(selector, port, VLAN, install);
     }
 
     // a helper method
     private void setLocalArpReplyTreatmentForVnet(TrafficSelector selector,
                                                   InstancePort port,
-                                                  NetworkType type,
+                                                  Type type,
                                                   boolean install) {
         TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
 
-        if (type == NetworkType.VLAN) {
+        if (type == VLAN) {
             tBuilder.popVlan();
         }
 
@@ -739,7 +744,7 @@
                 log.warn("Network is not specified.");
                 return false;
             } else {
-                return network.getNetworkType() != NetworkType.FLAT;
+                return network.getProviderSegID() != null;
             }
         }
 
@@ -865,8 +870,7 @@
             // delegated to switch to handle
             osNetworkService.subnets().stream().filter(subnet ->
                     osNetworkService.network(subnet.getNetworkId()) != null &&
-                            osNetworkService.network(subnet.getNetworkId())
-                                    .getNetworkType() != NetworkType.FLAT)
+                            osNetworkService.networkType(subnet.getNetworkId()) != FLAT)
                     .forEach(subnet -> {
                         String netId = subnet.getNetworkId();
                         Network net = osNetworkService.network(netId);