Initial support GRE tunnel at SONA
Change-Id: I86536a3ed23d8df45e1dc4033c3068a4dfc9ec73
diff --git a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/Constants.java b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/Constants.java
index b7ca1f5..0422c65 100644
--- a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/Constants.java
+++ b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/Constants.java
@@ -26,7 +26,8 @@
public static final String INTEGRATION_BRIDGE = "br-int";
public static final String TUNNEL_BRIDGE = "br-tun";
public static final String ROUTER_BRIDGE = "br-router";
- public static final String DEFAULT_TUNNEL = "vxlan";
+ public static final String VXLAN_TUNNEL = "vxlan";
+ public static final String GRE_TUNNEL = "gre";
public static final String PATCH_INTG_BRIDGE = "patch-intg";
public static final String PATCH_ROUT_BRIDGE = "patch-rout";
public static final String GATEWAY = "GATEWAY";
diff --git a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/DefaultOpenstackNode.java b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/DefaultOpenstackNode.java
index ca4734e..1ea5942 100644
--- a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/DefaultOpenstackNode.java
+++ b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/DefaultOpenstackNode.java
@@ -35,7 +35,8 @@
import static com.google.common.base.Preconditions.checkArgument;
import static org.onosproject.net.AnnotationKeys.PORT_MAC;
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
-import static org.onosproject.openstacknode.api.Constants.DEFAULT_TUNNEL;
+import static org.onosproject.openstacknode.api.Constants.GRE_TUNNEL;
+import static org.onosproject.openstacknode.api.Constants.VXLAN_TUNNEL;
import static org.onosproject.openstacknode.api.Constants.PATCH_INTG_BRIDGE;
/**
@@ -185,15 +186,26 @@
return port != null ? port.number() : null;
}
+
@Override
- public PortNumber tunnelPortNum() {
+ public PortNumber vxlanTunnelPortNum() {
+ return tunnelPortNum(VXLAN_TUNNEL);
+ }
+
+ @Override
+ public PortNumber greTunnelPortNum() {
+ return tunnelPortNum(GRE_TUNNEL);
+
+ }
+
+ private PortNumber tunnelPortNum(String tunnelType) {
if (dataIp == null) {
return null;
}
DeviceService deviceService = DefaultServiceDirectory.getService(DeviceService.class);
Port port = deviceService.getPorts(intgBridge).stream()
.filter(p -> p.isEnabled() &&
- Objects.equals(p.annotations().value(PORT_NAME), DEFAULT_TUNNEL))
+ Objects.equals(p.annotations().value(PORT_NAME), tunnelType))
.findAny().orElse(null);
return port != null ? port.number() : null;
}
diff --git a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
index a2000ee..63f8ef2 100644
--- a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
+++ b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
@@ -30,16 +30,6 @@
public interface OpenstackNode {
/**
- * List of valid network modes.
- * This includes both physical and virtual network types.
- */
- enum NetworkMode {
- VXLAN,
- VLAN,
- FLAT
- }
-
- /**
* List of valid node types.
*/
enum NodeType {
@@ -105,11 +95,18 @@
NodeState state();
/**
- * Returns the tunnel port number.
+ * Returns the GRE tunnel port number.
*
- * @return port number; null if tunnel port does not exist
+ * @return GRE port number; null if the GRE tunnel port does not exist
*/
- PortNumber tunnelPortNum();
+ PortNumber greTunnelPortNum();
+
+ /**
+ * Returns the VXLAN tunnel port number.
+ *
+ * @return VXLAN port number; null if tunnel port does not exist
+ */
+ PortNumber vxlanTunnelPortNum();
/**
* Returns the vlan port number.
diff --git a/apps/openstacknode/api/src/test/java/org/onosproject/openstacknode/api/OpenstackNodeAdapter.java b/apps/openstacknode/api/src/test/java/org/onosproject/openstacknode/api/OpenstackNodeAdapter.java
index d625a05..451139e 100644
--- a/apps/openstacknode/api/src/test/java/org/onosproject/openstacknode/api/OpenstackNodeAdapter.java
+++ b/apps/openstacknode/api/src/test/java/org/onosproject/openstacknode/api/OpenstackNodeAdapter.java
@@ -69,7 +69,12 @@
}
@Override
- public PortNumber tunnelPortNum() {
+ public PortNumber greTunnelPortNum() {
+ return null;
+ }
+
+ @Override
+ public PortNumber vxlanTunnelPortNum() {
return null;
}