Fix: do not handle non-smart NIC capable port at direct port provider
Change-Id: Ife763092da8d4ad8f361dbb7cfe5532c54c24ebe
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 615de0e..16dcc21 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
@@ -137,6 +137,7 @@
import static org.onlab.packet.Ip4Address.valueOf;
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
import static org.onosproject.openstacknetworking.api.Constants.DEFAULT_GATEWAY_MAC_STR;
+import static org.onosproject.openstacknetworking.api.Constants.DIRECT;
import static org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT;
import static org.onosproject.openstacknetworking.api.Constants.NETWORK_FORMAT;
import static org.onosproject.openstacknetworking.api.Constants.OPENSTACK_NETWORKING_REST_PATH;
@@ -399,6 +400,24 @@
}
/**
+ * Checks whether the given openstack port is smart NIC capable.
+ *
+ * @param port openstack port
+ * @return true if the given port is smart NIC capable, false otherwise
+ */
+ public static boolean isSmartNicCapable(Port port) {
+ if (port.getProfile() != null && port.getvNicType().equals(DIRECT)) {
+ String vendorInfo = String.valueOf(port.getProfile().get(PCI_VENDOR_INFO));
+ if (portNamePrefixMap().containsKey(vendorInfo)) {
+ log.debug("Port {} is a Smart NIC capable port.", port.getId());
+ return true;
+ }
+ return false;
+ }
+ return false;
+ }
+
+ /**
* Extract the interface name with the supplied port.
*
* @param port port