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/OpenstackRoutingHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingHandler.java
index bde5efe..bc02119 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingHandler.java
@@ -48,6 +48,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.OpenstackNetworkAdminService;
 import org.onosproject.openstacknetworking.api.OpenstackRouterEvent;
 import org.onosproject.openstacknetworking.api.OpenstackRouterListener;
@@ -59,7 +60,6 @@
 import org.onosproject.openstacknode.api.OpenstackNodeService;
 import org.openstack4j.model.network.ExternalGateway;
 import org.openstack4j.model.network.Network;
-import org.openstack4j.model.network.NetworkType;
 import org.openstack4j.model.network.Router;
 import org.openstack4j.model.network.RouterInterface;
 import org.openstack4j.model.network.Subnet;
@@ -95,13 +95,14 @@
 import static org.onosproject.openstacknetworking.api.Constants.ROUTING_TABLE;
 import static org.onosproject.openstacknetworking.api.Constants.STAT_OUTBOUND_TABLE;
 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.VLAN;
 import static org.onosproject.openstacknetworking.impl.OsgiPropertyConstants.USE_STATEFUL_SNAT;
 import static org.onosproject.openstacknetworking.impl.OsgiPropertyConstants.USE_STATEFUL_SNAT_DEFAULT;
 import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.tunnelPortNumByNetType;
 import static org.onosproject.openstacknetworking.util.RulePopulatorUtil.buildExtension;
 import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.COMPUTE;
 import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.GATEWAY;
-import static org.openstack4j.model.network.NetworkType.FLAT;
 
 /**
  * Handles OpenStack router events.
@@ -219,8 +220,11 @@
             Network network = osNetworkAdminService.network(
                     osNetworkAdminService.subnet(iface.getSubnetId())
                     .getNetworkId());
+            Type netType = osNetworkAdminService.networkType(
+                    osNetworkAdminService.subnet(iface.getSubnetId())
+                    .getNetworkId());
             setRouterAdminRules(network.getProviderSegID(),
-                    network.getNetworkType(), !osRouter.isAdminStateUp());
+                                netType, !osRouter.isAdminStateUp());
         });
 
         ExternalPeerRouter externalPeerRouter =
@@ -269,7 +273,10 @@
             Network network = osNetworkAdminService.network(
                     osNetworkAdminService.subnet(iface.getSubnetId())
                     .getNetworkId());
-            setRouterAdminRules(network.getProviderSegID(), network.getNetworkType(), false);
+            Type netType = osNetworkAdminService.networkType(
+                    osNetworkAdminService.subnet(iface.getSubnetId())
+                            .getNetworkId());
+            setRouterAdminRules(network.getProviderSegID(), netType, false);
         });
     }
 
@@ -285,8 +292,8 @@
 
         if (!osRouter.isAdminStateUp()) {
             Network network = osNetworkAdminService.network(osSubnet.getNetworkId());
-            setRouterAdminRules(network.getProviderSegID(),
-                                network.getNetworkType(), true);
+            Type netType = osNetworkAdminService.networkType(osSubnet.getNetworkId());
+            setRouterAdminRules(network.getProviderSegID(), netType, true);
         }
 
         setInternalRoutes(osRouter, osSubnet, true);
@@ -310,8 +317,8 @@
 
         if (!osRouter.isAdminStateUp()) {
             Network network = osNetworkAdminService.network(osSubnet.getNetworkId());
-            setRouterAdminRules(network.getProviderSegID(),
-                                network.getNetworkType(), false);
+            Type netType = osNetworkAdminService.networkType(osSubnet.getNetworkId());
+            setRouterAdminRules(network.getProviderSegID(), netType, false);
         }
 
         setInternalRoutes(osRouter, osSubnet, false);
@@ -326,11 +333,11 @@
     private void setSourceNat(RouterInterface routerIface, boolean install) {
         Subnet osSubnet = osNetworkAdminService.subnet(routerIface.getSubnetId());
         Network osNet = osNetworkAdminService.network(osSubnet.getNetworkId());
+        Type netType = osNetworkAdminService.networkType(osSubnet.getNetworkId());
 
         osNodeService.completeNodes(COMPUTE).forEach(cNode -> {
             setRulesToGateway(cNode, osNet.getProviderSegID(),
-                    IpPrefix.valueOf(osSubnet.getCidr()), osNet.getNetworkType(),
-                    install);
+                    IpPrefix.valueOf(osSubnet.getCidr()), netType, install);
         });
 
         if (useStatefulSnat) {
@@ -346,8 +353,9 @@
     private void setStatefulSnatRules(RouterInterface routerIface, boolean install) {
         Subnet osSubnet = osNetworkAdminService.subnet(routerIface.getSubnetId());
         Network osNet = osNetworkAdminService.network(osSubnet.getNetworkId());
+        Type netType = osNetworkAdminService.networkType(osSubnet.getNetworkId());
 
-        if (osNet.getNetworkType() == FLAT) {
+        if (netType == FLAT) {
             return;
         }
 
@@ -374,7 +382,7 @@
                                     Long.parseLong(osNet.getProviderSegID()),
                                     IpPrefix.valueOf(port.ipAddress(), VM_PREFIX),
                                     port.deviceId(),
-                                    osNet.getNetworkType(),
+                                    netType,
                                     install));
 
                         setOvsNatIngressRule(gwNode.intgBridge(),
@@ -389,13 +397,14 @@
     private void setReactiveSnatRules(RouterInterface routerIface, boolean install) {
         Subnet osSubnet = osNetworkAdminService.subnet(routerIface.getSubnetId());
         Network osNet = osNetworkAdminService.network(osSubnet.getNetworkId());
+        Type netType = osNetworkAdminService.networkType(osSubnet.getNetworkId());
 
         osNodeService.completeNodes(GATEWAY)
                 .forEach(gwNode -> setRulesToController(
                         gwNode.intgBridge(),
                         osNet.getProviderSegID(),
                         IpPrefix.valueOf(osSubnet.getCidr()),
-                        osNet.getNetworkType(),
+                        netType,
                         install));
     }
 
@@ -493,7 +502,7 @@
                         network.getProviderSegID(),
                         osSubnet,
                         routableSubnets,
-                        NetworkType.VXLAN,
+                        Type.VXLAN,
                         install));
     }
 
@@ -510,7 +519,7 @@
                         network.getProviderSegID(),
                         osSubnet,
                         routableSubnets,
-                        NetworkType.GRE,
+                        Type.GRE,
                         install));
     }
 
@@ -527,12 +536,12 @@
                         network.getProviderSegID(),
                         osSubnet,
                         routableSubnets,
-                        NetworkType.VLAN,
+                        VLAN,
                         install));
     }
 
     private void setInternalRoutes(Router osRouter, Subnet updatedSubnet, boolean install) {
-        Network updatedNetwork = osNetworkAdminService.network(updatedSubnet.getNetworkId());
+        Type netType = osNetworkAdminService.networkType(updatedSubnet.getNetworkId());
         Set<Subnet> routableSubnets = routableSubnets(osRouter, updatedSubnet.getId());
         String updatedSegmentId = getSegmentId(updatedSubnet);
 
@@ -545,7 +554,7 @@
                     updatedSegmentId,
                     IpPrefix.valueOf(updatedSubnet.getCidr()),
                     IpPrefix.valueOf(updatedSubnet.getCidr()),
-                    updatedNetwork.getNetworkType(),
+                    netType,
                     install
             );
 
@@ -556,7 +565,7 @@
                         getSegmentId(subnet),
                         IpPrefix.valueOf(updatedSubnet.getCidr()),
                         IpPrefix.valueOf(subnet.getCidr()),
-                        updatedNetwork.getNetworkType(),
+                        netType,
                         install
                 );
                 setInternalRouterRules(
@@ -565,7 +574,7 @@
                         updatedSegmentId,
                         IpPrefix.valueOf(subnet.getCidr()),
                         IpPrefix.valueOf(updatedSubnet.getCidr()),
-                        updatedNetwork.getNetworkType(),
+                        netType,
                         install
                 );
             });
@@ -615,7 +624,7 @@
 
     private void setInternalRouterRules(DeviceId deviceId, String srcSegId, String dstSegId,
                                         IpPrefix srcSubnet, IpPrefix dstSubnet,
-                                        NetworkType networkType, boolean install) {
+                                        Type networkType, boolean install) {
 
         switch (networkType) {
             case VXLAN:
@@ -740,7 +749,7 @@
     private void setRulesToGateway(OpenstackNode osNode,
                                    String segmentId,
                                    IpPrefix srcSubnet,
-                                   NetworkType networkType,
+                                   Type networkType,
                                    boolean install) {
         OpenstackNode sourceNatGateway =
                 osNodeService.completeNodes(GATEWAY).stream().findFirst().orElse(null);
@@ -774,7 +783,7 @@
         switch (networkType) {
             case VXLAN:
             case GRE:
-                PortNumber portNum = tunnelPortNumByNetType(networkType.name(), osNode);
+                PortNumber portNum = tunnelPortNumByNetType(networkType, osNode);
                 tBuilder.extension(buildExtension(
                                 deviceService,
                                 osNode.intgBridge(),
@@ -805,7 +814,7 @@
                                             Long vni,
                                             IpPrefix destVmIp,
                                             DeviceId dstDeviceId,
-                                            NetworkType networkType,
+                                            Type networkType,
                                             boolean install) {
 
         TrafficSelector selector = DefaultTrafficSelector.builder()
@@ -813,7 +822,7 @@
                 .matchIPDst(destVmIp)
                 .build();
 
-        PortNumber portNum = tunnelPortNumByNetType(networkType.name(),
+        PortNumber portNum = tunnelPortNumByNetType(networkType,
                                                     osNodeService.node(deviceId));
 
         TrafficTreatment treatment = DefaultTrafficTreatment.builder()
@@ -841,7 +850,7 @@
                                                       String segmentId,
                                                       Subnet updatedSubnet,
                                                       Set<Subnet> routableSubnets,
-                                                      NetworkType networkType,
+                                                      Type networkType,
                                                       boolean install) {
         //At first we install flow rules to gateway with segId and gatewayIp of updated subnet
         setRulesToGatewayWithDstIp(osNode, sourceNatGateway, segmentId,
@@ -863,7 +872,7 @@
                                             OpenstackNode sourceNatGateway,
                                             String segmentId,
                                             IpAddress dstIp,
-                                            NetworkType networkType,
+                                            Type networkType,
                                             boolean install) {
         TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
                 .matchEthType(Ethernet.TYPE_IPV4)
@@ -876,7 +885,7 @@
             case GRE:
                 sBuilder.matchTunnelId(Long.parseLong(segmentId));
 
-                PortNumber portNum = tunnelPortNumByNetType(networkType.name(), osNode);
+                PortNumber portNum = tunnelPortNumByNetType(networkType, osNode);
 
                 tBuilder.extension(buildExtension(
                         deviceService,
@@ -975,7 +984,7 @@
     private void setRulesToController(DeviceId deviceId,
                                       String segmentId,
                                       IpPrefix srcSubnet,
-                                      NetworkType networkType,
+                                      Type networkType,
                                       boolean install) {
         TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
                 .matchEthType(Ethernet.TYPE_IPV4)
@@ -999,7 +1008,7 @@
 
         TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
 
-        if (networkType.equals(NetworkType.VLAN)) {
+        if (networkType == VLAN) {
             tBuilder.popVlan();
         }
 
@@ -1016,7 +1025,7 @@
     }
 
     private void setRouterAdminRules(String segmentId,
-                                     NetworkType networkType,
+                                     Type networkType,
                                      boolean install) {
         TrafficTreatment treatment;
         TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
@@ -1288,7 +1297,9 @@
 
         private void instPortDetected(InstancePort instPort) {
             Network network = osNetworkAdminService.network(instPort.networkId());
-            if (network.getNetworkType() == FLAT) {
+            Type netType = osNetworkAdminService.networkType(instPort.networkId());
+
+            if (netType == FLAT) {
                 return;
             }
 
@@ -1298,13 +1309,15 @@
                                 gwNode.intgBridge(),
                                 Long.parseLong(network.getProviderSegID()),
                                 IpPrefix.valueOf(instPort.ipAddress(), VM_PREFIX),
-                                instPort.deviceId(), network.getNetworkType(), true));
+                                instPort.deviceId(), netType, true));
             }
         }
 
         private void instPortRemoved(InstancePort instPort) {
             Network network = osNetworkAdminService.network(instPort.networkId());
-            if (network.getNetworkType() == FLAT) {
+            Type netType = osNetworkAdminService.networkType(instPort.networkId());
+
+            if (netType == FLAT) {
                 return;
             }
 
@@ -1314,7 +1327,7 @@
                                 gwNode.intgBridge(),
                                 Long.parseLong(network.getProviderSegID()),
                                 IpPrefix.valueOf(instPort.ipAddress(), VM_PREFIX),
-                                instPort.deviceId(), network.getNetworkType(), false));
+                                instPort.deviceId(), netType, false));
             }
         }
     }