Supports dpdk-based vm creation in OpenstackNetworking service.
Change-Id: I39c30cde5b455952a4c7ed0147903324c6598880
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
index ca9647f..32f4fdf 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
@@ -25,6 +25,7 @@
import org.onosproject.cfg.ConfigProperty;
import org.onosproject.net.DeviceId;
import org.onosproject.net.device.DeviceService;
+import org.onosproject.openstacknetworking.api.Constants.VnicType;
import org.onosproject.openstacknetworking.api.InstancePort;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
import org.onosproject.openstacknetworking.api.OpenstackRouterAdminService;
@@ -71,6 +72,8 @@
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
import static org.onosproject.openstacknetworking.api.Constants.PCISLOT;
import static org.onosproject.openstacknetworking.api.Constants.PCI_VENDOR_INFO;
+import static org.onosproject.openstacknetworking.api.Constants.PORT_NAME_PREFIX_VM;
+import static org.onosproject.openstacknetworking.api.Constants.PORT_NAME_VHOST_USER_PREFIX_VM;
import static org.onosproject.openstacknetworking.api.Constants.portNamePrefixMap;
import static org.openstack4j.core.transport.ObjectMapperSingleton.getContext;
@@ -467,6 +470,21 @@
Objects.equals(routerInterface1.getTenantId(), routerInterface2.getTenantId());
}
+ public static VnicType vnicType(String portName) {
+ if (portName.startsWith(PORT_NAME_PREFIX_VM) ||
+ portName.startsWith(PORT_NAME_VHOST_USER_PREFIX_VM)) {
+ return VnicType.NORMAL;
+ } else if (isDirectPort(portName)) {
+ return VnicType.DIRECT;
+ } else {
+ return VnicType.UNSUPPORTED;
+ }
+ }
+
+ private static boolean isDirectPort(String portName) {
+ return portNamePrefixMap().values().stream().filter(p -> portName.startsWith(p)).findAny().isPresent();
+ }
+
/**
* Builds up and a complete endpoint URL from gateway node.
*