ovs-brcompatd: Delete ports when netdevs on fake bridges disappear.
authorBen Pfaff <blp@nicira.com>
Thu, 15 Sep 2011 22:55:45 +0000 (15:55 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 15 Sep 2011 22:56:59 +0000 (15:56 -0700)
Until now, when a network device disappeared, netdev_changed_cb() passed
the name of the bridge that contained the network device to ovs-vsctl as
part of the "del-port" command.  However, when the network device was
actually a "fake bridge", it would pass the name of the real bridge, which
ovs-vsctl rejected as wrong (expecting the name of the fake bridge) and
not remove the port.

This fixes the problem by dropping the bridge name, which is simpler than
trying to get the name of the fake bridge in this case.

Reported-by: Tyler Coumbes <coumbes@gmail.com>
Tested-by: Tyler Coumbes <coumbes@gmail.com>
vswitchd/ovs-brcompatd.c

index 3dd25c3..a19d45f 100644 (file)
@@ -790,7 +790,7 @@ netdev_changed_cb(const struct rtnetlink_link_change *change,
               port_name, br_name);
 
     run_vsctl(vsctl_program, VSCTL_OPTIONS,
-              "--", "--if-exists", "del-port", br_name, port_name,
+              "--", "--if-exists", "del-port", port_name,
               "--", "comment", "ovs-brcompatd:", port_name, "disappeared",
               (char *) NULL);
 }