Support STT tunneling protocol at kubevirt networking app
Change-Id: Icbef76dbfb842ce1cf6893bf18ee80c4b1b26006
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
index e9ab1fe..2d5b87d 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
@@ -72,6 +72,7 @@
import static org.onosproject.kubevirtnetworking.api.Constants.TUNNEL_DEFAULT_TABLE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GENEVE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GRE;
+import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.STT;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.buildGarpPacket;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.externalPatchPortNum;
@@ -164,7 +165,8 @@
}
KubevirtNetwork kubevirtNetwork = kubevirtNetworkService.network(kubevirtPort.networkId());
- if (kubevirtNetwork.type() == VXLAN || kubevirtNetwork.type() == GENEVE || kubevirtNetwork.type() == GRE) {
+ if (kubevirtNetwork.type() == VXLAN || kubevirtNetwork.type() == GENEVE ||
+ kubevirtNetwork.type() == GRE || kubevirtNetwork.type() == STT) {
setFloatingIpDownstreamRulesToGatewayTunBridge(floatingIp,
electedGw, kubevirtNetwork, kubevirtPort, install);
}
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtLbHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtLbHandler.java
index ba352eb..55b84f1 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtLbHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtLbHandler.java
@@ -83,6 +83,7 @@
import static org.onosproject.kubevirtnetworking.api.Constants.TUNNEL_DEFAULT_TABLE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GENEVE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GRE;
+import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.STT;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.buildGarpPacket;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.externalPatchPortNum;
@@ -237,7 +238,7 @@
setLbDownstreamRules(loadBalancer, router, gateway, true);
setLbUpstreamRules(loadBalancer, router, gateway, true);
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE || network.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, gateway, true);
}
}
@@ -274,7 +275,8 @@
setLbDownstreamRules(old, oldRouter, oldGateway, false);
setLbUpstreamRules(old, oldRouter, oldGateway, false);
- if (oldNetwork.type() == VXLAN || oldNetwork.type() == GENEVE || oldNetwork.type() == GRE) {
+ if (oldNetwork.type() == VXLAN || oldNetwork.type() == GENEVE ||
+ oldNetwork.type() == GRE || oldNetwork.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, oldGateway, false);
}
setBucketsToGroup(old, oldGateway, false);
@@ -310,7 +312,8 @@
setBucketsToGroup(loadBalancer, gateway, true);
setLbDownstreamRules(loadBalancer, router, gateway, true);
setLbUpstreamRules(loadBalancer, router, gateway, true);
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE ||
+ network.type() == GRE || network.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, gateway, true);
}
}
@@ -350,7 +353,7 @@
setBucketsToGroup(loadBalancer, gateway, false);
setLbGroup(loadBalancer, gateway, false);
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE || network.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, gateway, false);
}
}
@@ -747,7 +750,8 @@
setLbUpstreamRules(loadBalancer, router, gatewayNode, true);
KubevirtNetwork network = networkService.network(loadBalancer.networkId());
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE ||
+ network.type() == GRE || network.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, gatewayNode, true);
}
@@ -781,7 +785,8 @@
setLbGroup(loadBalancer, gatewayNode, false);
KubevirtNetwork network = networkService.network(loadBalancer.networkId());
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE ||
+ network.type() == GRE || network.type() == STT) {
setLbDownStreamRulesForTunBridge(loadBalancer, gatewayNode, false);
}
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
index 482676f..1ea11e5 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
@@ -469,6 +469,7 @@
case VXLAN:
case GRE:
case GENEVE:
+ case STT:
setDefaultEgressRuleToGatewayNode(router, network,
electedGateway.intgBridge(), install);
kubevirtNodeService.completeNodes(WORKER).forEach(node -> {
@@ -1208,6 +1209,7 @@
case VXLAN:
case GRE:
case GENEVE:
+ case STT:
initIntegrationTunnelBridge(network);
break;
case FLAT:
@@ -1228,6 +1230,7 @@
case VXLAN:
case GRE:
case GENEVE:
+ case STT:
purgeIntegrationTunnelBridge(network);
break;
case FLAT:
@@ -1301,6 +1304,7 @@
case VXLAN:
case GRE:
case GENEVE:
+ case STT:
if (network.segmentId() == null) {
continue;
}
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkManager.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkManager.java
index 74d317d..3c29e30 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkManager.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkManager.java
@@ -48,6 +48,7 @@
import static org.onosproject.kubevirtnetworking.api.Constants.KUBEVIRT_NETWORKING_APP_ID;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GENEVE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GRE;
+import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.STT;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
import static org.slf4j.LoggerFactory.getLogger;
@@ -224,7 +225,8 @@
return ImmutableSet.copyOf(networkStore.networks().stream()
.filter(n -> n.type() == VXLAN ||
n.type() == GRE ||
- n.type() == GENEVE)
+ n.type() == GENEVE ||
+ n.type() == STT)
.collect(Collectors.toSet()));
}
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRoutingSnatHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRoutingSnatHandler.java
index 7c21b3f..8cdf435 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRoutingSnatHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRoutingSnatHandler.java
@@ -79,6 +79,7 @@
import static org.onosproject.kubevirtnetworking.api.Constants.TUNNEL_DEFAULT_TABLE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GENEVE;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GRE;
+import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.STT;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VLAN;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.buildGarpPacket;
@@ -318,7 +319,7 @@
GW_DROP_TABLE,
install);
- if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE) {
+ if (network.type() == VXLAN || network.type() == GENEVE || network.type() == GRE || network.type() == STT) {
setDownStreamRulesToGatewayTunBridge(network, gatewayNode, kubevirtPort, install);
}
}
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
index 21353b9..82d3964 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/util/KubevirtNetworkingUtil.java
@@ -320,6 +320,8 @@
return node.grePort();
case GENEVE:
return node.genevePort();
+ case STT:
+ return node.sttPort();
default:
break;
}
@@ -446,6 +448,8 @@
return node.grePort();
case GENEVE:
return node.genevePort();
+ case STT:
+ return node.sttPort();
case FLAT:
case VLAN:
default: