[ovs-dev] [PATCH V3 4/4] netdev-offload-dpdk: Implement flow flush

Eli Britstein elibr at nvidia.com
Mon Dec 28 10:19:03 UTC 2020


Remove all the rules for the specified netdev.

Signed-off-by: Eli Britstein <elibr at nvidia.com>
Reviewed-by: Gaetan Rivet <gaetanr at nvidia.com>
---
 lib/netdev-offload-dpdk.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index dece4fd06..c45dd3e90 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -1585,10 +1585,27 @@ out:
     return ret;
 }
 
+static int
+netdev_offload_dpdk_flow_flush(struct netdev *netdev)
+{
+    struct ufid_to_rte_flow_data *data;
+
+    CMAP_FOR_EACH (data, node, &ufid_to_rte_flow) {
+        if (data->netdev != netdev) {
+            continue;
+        }
+
+        netdev_offload_dpdk_flow_destroy(data);
+    }
+
+    return 0;
+}
+
 const struct netdev_flow_api netdev_offload_dpdk = {
     .type = "dpdk_flow_api",
     .flow_put = netdev_offload_dpdk_flow_put,
     .flow_del = netdev_offload_dpdk_flow_del,
     .init_flow_api = netdev_offload_dpdk_init_flow_api,
     .flow_get = netdev_offload_dpdk_flow_get,
+    .flow_flush = netdev_offload_dpdk_flow_flush,
 };
-- 
2.28.0.546.g385c171



More information about the dev mailing list