-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtraffic-generation-helper.sh
executable file
·62 lines (52 loc) · 1.82 KB
/
traffic-generation-helper.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
HPING3_EXECUTABLE=/usr/sbin/hping3
if [ $1 ]
then
DESTINATION=$1
else
DESTINATION="127.0.0.1"
fi
echo "Using destination: $DESTINATION"
CHAR='.'
PACKET_INTERVAL=100
PACKET_INTERVAL_STEP_SIZE=5
echo "Press any key to start packet generation."
read -n 1
echo "Starting packet generation..."
killall -9 hping3 &> /dev/null ; ($HPING3_EXECUTABLE -1 -q -d 16 -i u$PACKET_INTERVAL $DESTINATION &> /dev/null &)
echo "Valid commands are: q - quit, + - increase packet rate, - - decrease packet rate."
while [ $CHAR != 'q' ]
do
read -n 1 -s CHAR
case $CHAR in
("+")
echo "Increasing packet rate."
if [ $(($PACKET_INTERVAL - $PACKET_INTERVAL_STEP_SIZE)) -gt 0 ]
then
PACKET_INTERVAL=$(($PACKET_INTERVAL - $PACKET_INTERVAL_STEP_SIZE))
echo "New packet interval: $PACKET_INTERVAL; Resulting theoretic packet rate: $((1000000 / $PACKET_INTERVAL)) packets/second"
killall -9 hping3 &> /dev/null ; ($HPING3_EXECUTABLE -1 -q -d 16 -i u$PACKET_INTERVAL $DESTINATION &> /dev/null &)
fi
;;
("-")
echo "Decreasing packet rate."
PACKET_INTERVAL=$(($PACKET_INTERVAL + $PACKET_INTERVAL_STEP_SIZE))
echo "New packet interval: $PACKET_INTERVAL; Resulting theoretic packet rate: $((1000000 / $PACKET_INTERVAL)) packets/second"
killall -9 hping3 &> /dev/null ; ($HPING3_EXECUTABLE -1 -q -d 16 -i u$PACKET_INTERVAL $DESTINATION &> /dev/null &)
;;
("q")
echo "Shutting down."
;;
(*)
echo "Valid commands are: q - quit, + - increase packet rate, - - decrease packet rate."
;;
esac
if [ $PACKET_INTERVAL -gt 60 ]
then
PACKET_INTERVAL_STEP_SIZE=5
elif [ $PACKET_INTERVAL -le 60 ]
then
PACKET_INTERVAL_STEP_SIZE=2
fi
done
killall -9 hping3 &> /dev/null