From 41a061e28d98367ff9c65a551337defa2a26750e Mon Sep 17 00:00:00 2001 From: "emellor@leeni.uk.xensource.com" Date: Tue, 10 Jan 2006 15:21:00 +0000 Subject: [PATCH] Poll for peth0 coming up before trying to attach it to the bridge. This fixes a problem seen with tg3's needing some time for auto-negotiation, and so the script would fail. Patch courtesy of someone who's name has been lost to history. Signed-off-by: Ewan Mellor --- tools/examples/network-bridge | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tools/examples/network-bridge b/tools/examples/network-bridge index 652e4aacb2..ce383be86d 100755 --- a/tools/examples/network-bridge +++ b/tools/examples/network-bridge @@ -242,10 +242,10 @@ using loopback.nloopbacks= on the domain 0 kernel command line. ip addr flush ${pdev} ip link set ${netdev} addr ${mac} arp on add_to_bridge ${bridge} ${vif0} - add_to_bridge ${bridge} ${pdev} ip link set ${bridge} up ip link set ${vif0} up ip link set ${pdev} up + add_to_bridge2 ${bridge} ${pdev} do_ifup ${netdev} else # old style without ${vdev} @@ -293,6 +293,27 @@ op_stop () { brctl delbr ${bridge} } +# adds $dev to $bridge but waits for $dev to be in running state first +add_to_bridge2() { + local bridge=$1 + local dev=$2 + local maxtries=10 + + echo -n "Waiting for ${dev} to negotiate link." + for i in `seq ${maxtries}` ; do + if ifconfig ${dev} | grep -q RUNNING ; then + break + else + echo -n '.' + sleep 1 + fi + done + + if [ ${i} -eq ${maxtries} ] ; then echo '(link isnt in running state)' ; fi + + add_to_bridge ${bridge} ${dev} +} + case "$command" in start) op_start -- 2.30.2