This should be done when bringing down the last PIF which uses a
datapath in order to account for VLAN PIFs sharing a datapath.
The logic in bring_down() already acounts for this requirement by
clearing the dp variable if the datapath is still required so if we
get as far as deconfiguring that datapath then it is also correct to
bring down the physical devices.
With unit test suite update by Ben Pfaff.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
/sbin/ifdown xenbr2
deconfigure ipdev xenbr2 on xenbr2
deconfigure_bridge: bridge - xenbr2
/sbin/ifdown xenbr2
deconfigure ipdev xenbr2 on xenbr2
deconfigure_bridge: bridge - xenbr2
+action_down: bring down physical devices - [u'eth2']
+/sbin/ifconfig eth2 down
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xenbr2
--if-exists del-br xenbr2
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xenbr2
--if-exists del-br xenbr2
deconfigure_bridge: bridge - xapi3
action_down: no more masters, bring down slave xenbr3
deconfigure_bridge: bridge - xenbr3
deconfigure_bridge: bridge - xapi3
action_down: no more masters, bring down slave xenbr3
deconfigure_bridge: bridge - xenbr3
+action_down: bring down physical devices - [u'eth3']
+/sbin/ifconfig eth3 down
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi3
--if-exists del-br xapi3
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi3
--if-exists del-br xapi3
/sbin/ifdown xapi1
deconfigure ipdev xapi1 on xapi1
deconfigure_bridge: bridge - xapi1
/sbin/ifdown xapi1
deconfigure ipdev xapi1 on xapi1
deconfigure_bridge: bridge - xapi1
+action_down: bring down physical devices - [u'eth0', u'eth1']
+/sbin/ifconfig eth0 down
+/sbin/ifconfig eth1 down
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi1
--if-exists del-br xapi1
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi1
--if-exists del-br xapi1
deconfigure_bridge: bridge - xapi2
action_down: no more masters, bring down slave xapi1
deconfigure_bridge: bridge - xapi1
deconfigure_bridge: bridge - xapi2
action_down: no more masters, bring down slave xapi1
deconfigure_bridge: bridge - xapi1
+action_down: bring down physical devices - [u'eth0', u'eth1']
+/sbin/ifconfig eth0 down
+/sbin/ifconfig eth1 down
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi2
--if-exists del-br xapi2
/usr/bin/ovs-vsctl --timeout=20
--with-iface --if-exists del-port xapi2
--if-exists del-br xapi2
if dp:
vsctl_argv += deconfigure_bridge(dp)
if dp:
vsctl_argv += deconfigure_bridge(dp)
+ physical_devices = [pif_netdev_name(p) for p in datapath_get_physical_pifs(dp)]
+
+ log("action_down: bring down physical devices - %s" % physical_devices)
+
+ for p in physical_devices:
+ netdev_down(p)
+
datapath_modify_config(vsctl_argv)
datapath_modify_config(vsctl_argv)