diff mbox series

[ovs-dev,RFC,v1] netdev-dpdk: Add flow_api support for netdev vports

Message ID 1574668580-11348-2-git-send-email-ophirmu@mellanox.com
State RFC
Headers show
Series [ovs-dev,RFC,v1] netdev-dpdk: Add flow_api support for netdev vports | expand

Commit Message

Ophir Munk Nov. 25, 2019, 7:56 a.m. UTC
Currently vport devices with dpif type "system" are rejected as part of
netdev_offload_dpdk_init_flow_api() call. It is correct but we also need
to specify what should be accepted.  We should accept vport devices with
dpif type "netdev". This commit add the acceptance of such devices to
netdev_dpdk_flow_api_supported() API. This will allow any vport of type
"netdev" to be considered for offloading by flow_put().

Co-authored-by: Eveline Raine <eveliner@mellanox.com>
Signed-off-by: Eveline Raine <eveliner@mellanox.com>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
---
 lib/netdev-dpdk.c         | 6 ++++++
 lib/netdev-offload-dpdk.c | 7 -------
 2 files changed, 6 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 2423d26..854259c 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -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;
     }
diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 2804978..1cc5f59 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -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;
 }