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