| #! /bin/bash |
| |
| BR=${1:-"br549"} |
| ETH0=${2:-"eth0"} |
| ETH1=${3:-"eth1"} |
| ETH2=${4:-"eth1"} |
| |
| echo "Ethernet Bridge stress test" |
| |
| IP=`/sbin/ifconfig $ETH0 | sed -n -e 's/^.*inet addr:\([0-9][0-9\.]*\).*$/\1/p'` |
| echo $IP |
| |
| inout() { |
| while true; |
| do |
| brctl addif $1 $2 |
| sleep $(($RANDOM % 10)) |
| brctl delif $1 $2 |
| done |
| } |
| |
| newdel() { |
| while true; |
| do |
| brctl addbr $1 |
| brctl delbr $1 |
| done |
| } |
| |
| updown() { |
| while true; |
| do |
| ifconfig $1 down |
| ifconfig $1 up |
| sleep 11 |
| done |
| } |
| |
| echo "1. Creating bridge $BR" |
| brctl addbr $BR |
| |
| echo -n "2. Add ethernets" |
| ifconfig $ETH0 0.0.0.0 |
| brctl addif $BR $ETH0 |
| echo -n $ETH0 |
| ifconfig $ETH2 0.0.0.0 |
| brctl addif $BR $ETH2 |
| echo $ETH2 |
| |
| echo "4. Starting add/del interface" $ETH1 |
| ifconfig $ETH1 0.0.0.0 |
| inout $BR $ETH1 & |
| ipid=$! |
| |
| echo "5. Starting add/remove bridge" |
| newdel brtmp1 & |
| npid=$! |
| |
| echo "6. Starting up/down" $ETH1 |
| updown $BR $ETH1 & |
| upid=$! |
| |
| trap "kill $ipid $npid $upid" 1 2 3 15 |
| |
| echo " Waiting" |
| wait |