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));
}
}
}