]> git.proxmox.com Git - mirror_ovs.git/commitdiff
netdev-offload-dpdk: Implement flow flush.
authorEli Britstein <elibr@nvidia.com>
Mon, 28 Dec 2020 10:19:03 +0000 (10:19 +0000)
committerIlya Maximets <i.maximets@ovn.org>
Fri, 15 Jan 2021 18:01:00 +0000 (19:01 +0100)
Remove all the rules for the specified netdev.

Signed-off-by: Eli Britstein <elibr@nvidia.com>
Reviewed-by: Gaetan Rivet <gaetanr@nvidia.com>
Acked-by: Emma Finn <emma.finn@intel.com>
Tested-by: Emma Finn <emma.finn@intel.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
lib/netdev-offload-dpdk.c

index 014ca35b84ffd385c58b4bc8d01c6ef6482e8d21..f2413f5be65f84ed756c4e941a5d04c3af64bd56 100644 (file)
@@ -1572,10 +1572,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,
 };