Split tunneling behavior into a separated tunnel bridge
Change-Id: I4de5f21ac9eaf286479f619c960a2319b597a819
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
index 56039b5..4e430a3 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
@@ -396,6 +396,16 @@
}
@Override
+ public PortNumber intgToTunPortNum() {
+ return portNumber(intgBridge, intgToTunPatchPortName());
+ }
+
+ @Override
+ public PortNumber tunToIntgPortNum() {
+ return portNumber(tunBridge, tunToIntgPatchPortName());
+ }
+
+ @Override
public PortNumber extBridgePortNum() {
if (this.extIntf == null) {
return null;
@@ -519,6 +529,15 @@
}
@Override
+ public String tunBridgePortName() {
+ if (mode == PASSTHROUGH) {
+ return TUNNEL_BRIDGE + "-" + uniqueString(5);
+ } else {
+ return TUNNEL_BRIDGE;
+ }
+ }
+
+ @Override
public String intgToExtPatchPortName() {
if (mode == PASSTHROUGH) {
return INTEGRATION_TO_EXTERNAL_BRIDGE + "-" + uniqueString(5);
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
index 8931b45..e443880 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
@@ -287,6 +287,13 @@
String localBridgePortName();
/**
+ * Returns tunnel bridge port name.
+ *
+ * @return tunnel bridge port name
+ */
+ String tunBridgePortName();
+
+ /**
* Returns integration to external patch port name.
*
* @return integration to external patch port name
@@ -385,6 +392,20 @@
PortNumber extToIntgPatchPortNum();
/**
+ * Returns the integration to tunnel patch port number.
+ *
+ * @return patch port number
+ */
+ PortNumber intgToTunPortNum();
+
+ /**
+ * Returns the tunnel to integration patch port number.
+ *
+ * @return patch port number
+ */
+ PortNumber tunToIntgPortNum();
+
+ /**
* Returns the external bridge to router port number.
*
* @return port number, null if the port does not exist
diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/cli/K8sNodeCheckCommand.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/cli/K8sNodeCheckCommand.java
index 2060712..de8f38c 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/cli/K8sNodeCheckCommand.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/cli/K8sNodeCheckCommand.java
@@ -68,11 +68,6 @@
printPortState(deviceService, node.intgBridge(), node.intgBridgePortName());
printPortState(deviceService, node.intgBridge(), node.intgToExtPatchPortName());
printPortState(deviceService, node.intgBridge(), node.intgToLocalPatchPortName());
- if (node.dataIp() != null) {
- printPortState(deviceService, node.intgBridge(), node.vxlanPortName());
- printPortState(deviceService, node.intgBridge(), node.grePortName());
- printPortState(deviceService, node.intgBridge(), node.genevePortName());
- }
} else {
print("%s %s=%s is not available",
MSG_ERROR,
@@ -80,6 +75,7 @@
node.intgBridge());
}
+ print("");
print("[External Bridge Status]");
Device extBridge = deviceService.getDevice(node.extBridge());
if (extBridge != null) {
@@ -89,7 +85,6 @@
extBridge.id(),
deviceService.isAvailable(extBridge.id()),
extBridge.annotations());
- printPortState(deviceService, node.extBridge(), node.extBridgePortName());
printPortState(deviceService, node.extBridge(), node.extToIntgPatchPortName());
} else {
print("%s %s=%s is not available",
@@ -98,6 +93,7 @@
node.extBridge());
}
+ print("");
print("[Local Bridge Status]");
Device localBridge = deviceService.getDevice(node.localBridge());
if (localBridge != null) {
@@ -107,9 +103,27 @@
localBridge.id(),
deviceService.isAvailable(localBridge.id()),
localBridge.annotations());
- printPortState(deviceService, node.localBridge(), node.localBridgePortName());
printPortState(deviceService, node.localBridge(), node.localToIntgPatchPortName());
}
+
+ print("");
+ print("[Tunnel Bridge Status]");
+ Device tunBridge = deviceService.getDevice(node.tunBridge());
+ if (tunBridge != null) {
+ print("%s %s=%s available=%s %s",
+ deviceService.isAvailable(tunBridge.id()) ? MSG_OK : MSG_ERROR,
+ node.tunBridgeName(),
+ tunBridge.id(),
+ deviceService.isAvailable(tunBridge.id()),
+ tunBridge.annotations());
+ printPortState(deviceService, node.tunBridge(), node.tunToIntgPatchPortName());
+
+ if (node.dataIp() != null) {
+ printPortState(deviceService, node.tunBridge(), node.vxlanPortName());
+ printPortState(deviceService, node.tunBridge(), node.grePortName());
+ printPortState(deviceService, node.tunBridge(), node.genevePortName());
+ }
+ }
}
private void printPortState(DeviceService deviceService,