1#! /bin/bash
2
3BR=${1:-"br549"}
4ETH0=${2:-"eth0"}
5ETH1=${3:-"eth1"}
6ETH2=${4:-"eth1"}
7
8echo "Ethernet Bridge stress test"
9
10IP=`/sbin/ifconfig $ETH0 | sed -n -e 's/^.*inet addr:\([0-9][0-9\.]*\).*$/\1/p'`
11echo $IP
12
13inout() {
14    while true;
15    do
16	brctl addif $1 $2
17	sleep $(($RANDOM % 10))
18	brctl delif $1 $2
19    done
20}
21
22newdel() {
23    while true;
24    do
25	brctl addbr $1
26	brctl delbr $1
27    done
28}
29
30updown() {
31    while true;
32    do
33      	ifconfig $1 down
34	ifconfig $1 up
35	sleep 11
36    done
37}
38
39echo "1. Creating bridge $BR"
40brctl addbr $BR
41
42echo -n "2. Add ethernets"
43ifconfig $ETH0 0.0.0.0
44brctl addif $BR $ETH0
45echo -n $ETH0
46ifconfig $ETH2 0.0.0.0
47brctl addif $BR $ETH2
48echo $ETH2
49
50echo "4. Starting add/del interface" $ETH1
51ifconfig $ETH1 0.0.0.0
52inout $BR $ETH1 &
53ipid=$!
54
55echo "5. Starting add/remove bridge"
56newdel brtmp1 &
57npid=$!
58
59echo "6. Starting up/down" $ETH1
60updown $BR $ETH1 &
61upid=$!
62
63trap "kill $ipid $npid $upid" 1 2 3 15
64
65echo " Waiting"
66wait
67