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:55:45 +0000 (15:55 -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 41187b171489ac3916084b4481dc5056e05020ff..bfa13ca26b7476c56ea8e3fa49c3bed641d58837 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);
 }