📄 functest
字号:
#! /bin/bashBR=${1:-"br549"}ETH=${2:-"eth0"}maxports=${3:-1000}echo "Ethernet Bridge functional test"echo -n "Testing kernel: " ; uname -aecho -n "Utilities: " ; brctl -V# fetch ip of working $ETHIP=`/sbin/ifconfig $ETH | sed -n -e 's/^.*inet addr:\([0-9][0-9\.]*\).*$/\1/p'`echo "Using IP address $IP"# All commands in this part must succeedset -eecho "0. Creating $maxports dummy devices"modprobe dummy numdummies=$maxportsecho "1. Creating bridge $BR"brctl addbr $BR brctl stp $BR onecho "2. Add $ETH"ifconfig $ETH 0.0.0.0brctl addif $BR $ETHecho "3. Bring up bridge"ifconfig $BR $IPecho "4 Bring up another bridge"brctl addbr "brx%d"ifconfig brx0 1.1.1.1echo "5 Bring down bridge"ifconfig brx0 downbrctl delbr brx0echo -n "6. Add " $maxports " ports:"for (( i=1; i < $maxports; i++))do brctl addif $BR dummy$i if [[ $(( $i % 10 )) -eq 10 ]] then echo -n '.' fidoneechoecho -n "7. Delete those ports:"for (( i=1; i < $maxports; i++))do brctl delif $BR dummy$i if [[ $(( $i % 10 )) -eq 10 ]] then echo -n '.' fidoneechoecho "8. Notififer cases"brctl addif $BR dummy0echo "8a Device down"ifconfig dummy0 downecho "8b Change device address"ifconfig dummy0 hw ether 00:0d:02:03:04:05echo "8c. Device up"ifconfig dummy0 upecho "8d Unregister device (slow)"rmmod dummyecho "** Done"modprobe dummy numdummies=2set +eecho "10 Error cases"echo -n " duplicate bridge - "brctl addbr $BRecho -n " bridge to bridge - "brctl addbr brTmpbrctl addif $BR brTmpecho -n " already in other bridge - "brctl addif brTmp $ETHecho -n " already in this bridge - "brctl addif $BR $ETHecho -n " remove from wrong bridge - "brctl delif brTmp $ETHbrctl delbr brTmpecho -n " remove bridge $ETH - "brctl delbr $ETH echo -n " remove bridge bogus - "brctl delbr bogus echo -n " remove still active bridge - "brctl delbr $BR echo -n " zero hw address - "ifconfig dummy0 hw ether 00:00:00:00:00:00brctl addif $BR dummy0echo -n " duplicate hw address - "ifconfig dummy0 hw ether 00:0d:01:00:00:00ifconfig dummy1 hw ether 00:0d:01:00:00:00brctl addif $BR dummy0brctl addif $BR dummy1# leave dummy0 for next test.echo "10 Tuning"set -ebrctl stp $BR offbrctl stp $BR onbrctl setageing $BR 4000brctl setbridgeprio $BR 1brctl setfd $BR 120brctl sethello $BR 20brctl setmaxage $BR 1000brctl setpathcost $BR dummy0 50brctl setportprio $BR dummy0 2echo "Status check"brctl showread -p "Ok?"brctl showstp $BRread -p "Ok?"brctl showmacs $BRread -p "Ok?"echo "30 Shutdown"ifconfig $BR downbrctl delbr $BRifconfig $ETH $IPecho "31 Remove bridge module"rmmod bridgermmod dummyrmmod bridgeecho "32 Check for dead bridge cleanup"brctl addbr $BRrmmod bridgemodprobe bridgesleep 1echo "33 Remove module with race"brctl addbr $BR ifconfig $BR 9.9.9.9rmmod --wait bridge &sleep 2brctl addbr brXX if ifconfig brXX 1.1.1.1 ; then echo "?? ifconfig succeeded" ifconfig brXX downfiifconfig $BR downwaitecho "*** Done ***"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -