mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-02 11:48:03 +00:00
Merge branch 'master' of github.com:greearb/lanforge-scripts
This commit is contained in:
85
arp-flood.sh
Executable file
85
arp-flood.sh
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
echo "----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- "
|
||||
echo " This script will issue local arp flushes. "
|
||||
echo " Those commands cannot be issued against a remote lanforge."
|
||||
echo "----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- "
|
||||
sleep 2
|
||||
mgr=localhost
|
||||
port=4001
|
||||
station=wlan0
|
||||
upstream=eth1
|
||||
num_mvlans=20
|
||||
cxlist=()
|
||||
ports=($station)
|
||||
trap do_sigint ABRT
|
||||
trap do_sigint INT
|
||||
trap do_sigint KILL
|
||||
trap do_sigint PIPE
|
||||
trap do_sigint QUIT
|
||||
trap do_sigint SEGV
|
||||
trap do_sigint TERM
|
||||
|
||||
function do_sigint() {
|
||||
echo ""
|
||||
for cx in "${cxlist[@]}"; do
|
||||
echo -n "stopping $cx "
|
||||
fire_cmd set_cx_state default_tm $cx STOPPED >/dev/null
|
||||
done
|
||||
for cx in "${cxlist[@]}"; do
|
||||
echo -n "removing $cx "
|
||||
fire_cmd rm_cx default_tm $cx STOPPED >/dev/null
|
||||
done
|
||||
for cx in "${cxlist[@]}"; do
|
||||
echo -n "removing $cx-A $cx-B "
|
||||
fire_cmd rm_endp ${cx}-A STOPPED >/dev/null
|
||||
fire_cmd rm_endp ${cx}-B STOPPED >/dev/null
|
||||
done
|
||||
exit 0
|
||||
}
|
||||
|
||||
function fire_cmd() {
|
||||
./lf_firemod.pl --mgr $mgr --mgr_port $port --quiet yes --action do_cmd \
|
||||
--cmd "$*" \
|
||||
&>/dev/null
|
||||
}
|
||||
function fire_newcx() {
|
||||
local cxname=$1; shift
|
||||
local sta=$1; shift
|
||||
local eth=$1; shift
|
||||
./lf_firemod.pl --mgr $mgr --mgr_port $port --action create_cx --quiet yes \
|
||||
--cx_name $cxname --use_ports $sta,$eth --use_speeds 2600,2600 --endp_type udp \
|
||||
&>/dev/null
|
||||
}
|
||||
|
||||
# create new set of vlans, this will also recreate them using random mac addresses
|
||||
for i in `seq 0 $num_mvlans`; do
|
||||
mvlan="${upstream}#${i}"
|
||||
echo -n " $mvlan"
|
||||
fire_cmd rm_vlan 1 1 $mvlan
|
||||
echo -n "-"
|
||||
fire_cmd add_mvlan 1 1 $upstream 'xx:xx:xx:*:*:xx' $i
|
||||
echo -n "+"
|
||||
fire_cmd set_port 1 1 "$mvlan" NA NA NA NA 2147483648 NA NA NA NA 67125250
|
||||
echo -n "."
|
||||
fire_newcx "udp-$i" $station $mvlan
|
||||
echo -n "o"
|
||||
cxlist+=("udp-$i")
|
||||
ports+=($mvlan)
|
||||
done
|
||||
sleep 4
|
||||
for i in `seq 0 $num_mvlans`; do
|
||||
echo -n "!"
|
||||
fire_cmd set_cx_state default_tm "udp-$i" RUNNING
|
||||
done
|
||||
|
||||
sleep 4
|
||||
echo ""
|
||||
echo -n "Starting arp flushing "
|
||||
while : ; do
|
||||
for p in "${ports[@]}"; do
|
||||
ip neigh flush dev $p@$upstream
|
||||
|
||||
done
|
||||
echo -n "."
|
||||
sleep 0.2
|
||||
done
|
||||
Reference in New Issue
Block a user