[ovs-dev] [patch_v1] dpif: Fix cleanup of userspace datapath.

Darrell Ball dlu998 at gmail.com
Fri Jun 23 04:27:11 UTC 2017


Hardware offload introduced extra tracking of netdev ports.  This
included ovs-netdev, which is really for internal infra usage for
the userpace datapath.  This breaks cleanup of the userspace
datapath.  There is no need to do this extra tracking of this port,
hence it is skipped by checking for the port name as the type does
not help here.  Adding an extra type or field is another way to fix
this, but this would probably be overkill as this port is a constant
and the misuse potential very limited.

CC: Paul Blakey <paulb at mellanox.com>
Fixes: 32b77c316d9982("dpif: Save added ports in a port map.")
Signed-off-by: Darrell Ball <dlu998 at gmail.com>
---
 lib/dpif.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/dpif.c b/lib/dpif.c
index 10bdd70..8624d34 100644
--- a/lib/dpif.c
+++ b/lib/dpif.c
@@ -350,7 +350,11 @@ do_open(const char *name, const char *type, bool create, struct dpif **dpifp)
             struct netdev *netdev;
             int err;
 
-            if (!strcmp(dpif_port.type, "internal")) {
+            /* ovs-netdev is a tap device that is used as an
+             * internal port for the userspace datapath, hence
+             * don't track it here. */
+            if (!strcmp(dpif_port.type, "internal") ||
+                (!strcmp(dpif_port.name, "ovs-netdev"))) {
                 continue;
             }
 
-- 
1.9.1



More information about the dev mailing list