Good news come from Amos When I just want to report an issue about this nic mode to both of you. Then I describe the issue for referring. I found the mac addr generated from code is same as the hwaddr in result of ifconfig in guest, but it different from the hwaddr value in the ifcfg-eth0 file. So the framework report error info of "Cannot find IP address for MAC address 9a:xx:xx:xx:xx:xx". In last week, I report the pass of tap mode, because my image is setup manually. Today, the case failed. now, I will update code to use the new method of private bridge.
Thanks! wuyu On 2011-04-19,at 11:43:14, Lucas Meneghel Rodrigues wrote: >发送日期:2011-04-19 11:43:14 >收件人:Amos Kong >抄送:autotest >主题:Re: [Autotest] [PATCH 1/3] KVM-test: Add script to setup privatebridge >> >On Tue, 2011-04-19 at 11:17 +0800, Amos Kong wrote: >> Script is used to setup/remove of private bridge >> it provides dhcp service to guests by dnsmasq. > >Ok, this is a great start! I'd rather have this as python code as part >of the framework, so I'll play with it a little and we can get this >going. > >Jason, would you please re-send that patchset that removes the need for >the qemu-ifup script? We can make everything work together and deliver a >good experience for users and completely getting rid of user mode for >ever and ever :) > >> Signed-off-by: Amos Kong <ak...@redhat.com> >> --- >> client/tests/kvm/scripts/set_private_br.sh | 53 >> ++++++++++++++++++++++++++++ >> 1 files changed, 53 insertions(+), 0 deletions(-) >> create mode 100755 client/tests/kvm/scripts/set_private_br.sh >> >> diff --git a/client/tests/kvm/scripts/set_private_br.sh >> b/client/tests/kvm/scripts/set_private_br.sh >> new file mode 100755 >> index 0000000..4c4cff0 >> --- /dev/null >> +++ b/client/tests/kvm/scripts/set_private_br.sh >> @@ -0,0 +1,53 @@ >> +#!/bin/bash >> +# >> +# Author: Amos Kong <kongjian...@gmail.com> >> +# Date: Apr 14, 2011 >> +# Description: this script is used to create/delete a private bridge, >> +# launch a dhcp server on the bridge by dnsmasq. >> +# >> +# @ ./set_private_br.sh $bridge_name $subnet_prefix >> +# @ ./set_private_br.sh vbr0 192.168.33 >> + >> +brname='vbr0' >> +subnet='192.168.33' >> + >> +add_br() >> +{ >> + echo "add new private bridge: $brname" >> + /usr/sbin/brctl show |egrep "\b$brname\b" && exit >> + /usr/sbin/brctl addbr $brname >> + echo 1 > /proc/sys/net/ipv4/ip_forward >> + /usr/sbin/brctl stp $brname on >> + /usr/sbin/brctl setfd $brname 0 >> + ifconfig $brname $subnet.1 up >> + # Add forward rule, then guest can access public network >> + iptables -t nat -A POSTROUTING -s $subnet.254/24 ! -d $subnet.254/24 -j >> MASQUERADE >> + /etc/init.d/dnsmasq stop >> + dnsmasq --strict-order --bind-interfaces --listen-address $subnet.1 >> --dhcp-range $subnet.1,$subnet.254 --pid-file=/tmp/dnsmasq.pid >> +} >> + >> +del_br() >> +{ >> + echo "cleanup bridge setup" >> + kill -9 `cat /tmp/dnsmasq.pid` >> + ifconfig $brname down >> + /usr/sbin/brctl delbr $brname >> + iptables -t nat -D POSTROUTING -s $subnet.254/24 ! -d $subnet.254/24 -j >> MASQUERADE >> +} >> + >> + >> +if [ $# = 0 ]; then >> + echo "./set_private_br.sh add|del [brname] [subnet]" >> + exit >> +fi >> +if [ $# > 1 ]; then >> + brname="$2" >> +fi >> +if [ $# > 2 ]; then >> + subnet="$3" >> +fi >> +if [ $1 = 'add' ]; then >> + add_br >> +elif [ $1 = 'del' ]; then >> + del_br 2>/dev/null >> +fi >> > > >_______________________________________________ >Autotest mailing list >Autotest@test.kernel.org >http://test.kernel.org/cgi-bin/mailman/listinfo/autotest >. > ------------------ wuyu8242 2011-04-19 _______________________________________________ Autotest mailing list Autotest@test.kernel.org http://test.kernel.org/cgi-bin/mailman/listinfo/autotest