@@ -4428,6 +4428,12 @@ netdev_dpdk_flow_api_supported(struct netdev *netdev)
struct netdev_dpdk *dev;
bool ret = false;
+ if (netdev_vport_is_vport_class(netdev->netdev_class) &&
+ !strcmp(netdev_get_dpif_type(netdev), "netdev")) {
+ ret = true;
+ goto out;
+ }
+
if (!is_dpdk_class(netdev->netdev_class)) {
goto out;
}
@@ -759,13 +759,6 @@ netdev_offload_dpdk_flow_del(struct netdev *netdev, const ovs_u128 *ufid,
static int
netdev_offload_dpdk_init_flow_api(struct netdev *netdev)
{
- if (netdev_vport_is_vport_class(netdev->netdev_class)
- && !strcmp(netdev_get_dpif_type(netdev), "system")) {
- VLOG_DBG("%s: vport belongs to the system datapath. Skipping.",
- netdev_get_name(netdev));
- return EOPNOTSUPP;
- }
-
return netdev_dpdk_flow_api_supported(netdev) ? 0 : EOPNOTSUPP;
}