Index: xen-4.1.2-testing/tools/hotplug/Linux/network-bridge =================================================================== --- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-bridge +++ xen-4.1.2-testing/tools/hotplug/Linux/network-bridge @@ -249,6 +249,9 @@ op_start () { claim_lock "network-bridge" + local bonded="" + [ -e /sys/class/net/${netdev}/bonding ] && bonded="yes" + vlans=$(find_active_vlans "${netdev}") for vlan in $vlans ; do ifdown $vlan ; done @@ -266,18 +269,32 @@ op_start () { ip link set ${netdev} down ip addr flush ${netdev} fi - ip link set ${netdev} name ${pdev} - ip link set ${tdev} name ${bridge} - - setup_physical_bridge_port ${pdev} - # Restore slaves - if [ -n "${slaves}" ]; then - ip link set ${pdev} up - ifenslave ${pdev} ${slaves} + if [ "x${bonded}" = "xyes" ] + then + ip link set ${tdev} name ${bridge} + ln -sf /etc/sysconfig/network/ifcfg-${netdev} /etc/sysconfig/network/ifcfg-${pdev} + ifup ${pdev} + local gw=`ip route show dev ${pdev} | fgrep default | sed 's/default via //'` + ip addr flush ${pdev} + rm -f /etc/sysconfig/network/ifcfg-${pdev} + brctl addif ${bridge} ${pdev} + ip link set ${bridge} up + [ -n "$gw" ] && ip route add default via ${gw} + else + ip link set ${netdev} name ${pdev} + ip link set ${tdev} name ${bridge} + + setup_bridge_port ${pdev} + + # Restore slaves + if [ -n "${slaves}" ]; then + ip link set ${pdev} up + ifenslave ${pdev} ${slaves} + fi + add_to_bridge2 ${bridge} ${pdev} + do_ifup ${bridge} fi - add_to_bridge2 ${bridge} ${pdev} - do_ifup ${bridge} for vlan in $vlans ; do ifup $vlan ; done