]> git.ipfire.org Git - thirdparty/hostap.git/blame - tests/hwsim/start.sh
HE: MCS size is always a minimum of 4 bytes
[thirdparty/hostap.git] / tests / hwsim / start.sh
CommitLineData
05955587
JM
1#!/bin/sh
2
3DIR="$( cd "$( dirname "$0" )" && pwd )"
4WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
b76579e0 5WPACLI=$DIR/../../wpa_supplicant/wpa_cli
05955587 6HAPD=$DIR/../../hostapd/hostapd
3f33b3ad 7HAPD_AS=$DIR/../../hostapd/hostapd
de677292 8HAPDCLI=$DIR/../../hostapd/hostapd_cli
05955587 9WLANTEST=$DIR/../../wlantest/wlantest
479cbb38 10HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw
05955587 11
5fecc0f5 12if [ -z "$LOGDIR" ] ; then
222ff97b 13 DATE="$(date +%s)"
b72c3002 14 LOGDIR="$DIR/logs/$DATE"
958bf1ba 15 mkdir -p $LOGDIR
3f33b3ad
JM
16else
17 if [ -e $LOGDIR/alt-wpa_supplicant/wpa_supplicant/wpa_supplicant ]; then
18 WPAS=$LOGDIR/alt-wpa_supplicant/wpa_supplicant/wpa_supplicant
6532a84e 19 WPACLI=$LOGDIR/alt-wpa_supplicant/wpa_supplicant/wpa_cli
e9026725
JM
20 # extra code coverage
21 $WPAS > /dev/null 2>&1
22 $WPAS -efoo -Ifoo -mfoo -ofoo -Ofoo -pfoo -Pfoo -h > /dev/null 2>&1
23 $WPAS -bfoo -B -Cfoo -q -W -N -L > /dev/null 2>&1
24 $WPAS -T -v > /dev/null 2>&1
25 $WPAS -u -z > /dev/null 2>&1
3f33b3ad
JM
26 fi
27 if [ -e $LOGDIR/alt-hostapd/hostapd/hostapd ]; then
28 HAPD=$LOGDIR/alt-hostapd/hostapd/hostapd
6532a84e 29 HAPDCLI=$LOGDIR/alt-hostapd/hostapd/hostapd_cli
e9026725
JM
30 # extra code coverage
31 $HAPD > /dev/null 2>&1
32 $HAPD -v > /dev/null 2>&1
33 $HAPD -B -efoo -Pfoo -T -bfoo -h > /dev/null 2>&1
34 $HAPD -ufoo > /dev/null 2>&1
35 $HAPD -u00:11:22:33:44:55 > /dev/null 2>&1
36 $HAPD -gfoo > /dev/null 2>&1
37 $HAPD -Gfoo-not-exists > /dev/null 2>&1
38 $HAPD -z > /dev/null 2>&1
a0fda900 39 $HAPD -i foo1,foo2,foo3 > /dev/null 2>&1
3f33b3ad
JM
40 fi
41 if [ -e $LOGDIR/alt-hostapd-as/hostapd/hostapd ]; then
42 HAPD_AS=$LOGDIR/alt-hostapd-as/hostapd/hostapd
1cfb58d4
JM
43 fi
44 if [ -e $LOGDIR/alt-hlr_auc_gw/hostapd/hlr_auc_gw ]; then
45 HLR_AUC_GW=$LOGDIR/alt-hlr_auc_gw/hostapd/hlr_auc_gw
e9026725
JM
46 # extra code coverage
47 $HLR_AUC_GW > /dev/null 2>&1
48 $HLR_AUC_GW -Dfoo -i7 -sfoo -h > /dev/null 2>&1
49 $HLR_AUC_GW -i100 > /dev/null 2>&1
50 $HLR_AUC_GW -z > /dev/null 2>&1
3f33b3ad 51 fi
5fecc0f5 52fi
5fecc0f5 53
222ff97b
AVEM
54LOGBASEDIR="$( cd "$(dirname "$LOGDIR")" && pwd )"
55if test "$LOGBASEDIR" = "$DIR/logs" -a -w "$LOGBASEDIR" ; then
56 rm -rf "$LOGBASEDIR/current"
57 ln -sf "$(basename "$LOGDIR")" "$LOGBASEDIR/current"
3bdc651a
EA
58fi
59
997ebcfa
JM
60if groups | tr ' ' "\n" | grep -q ^admin$; then
61 GROUP=admin
ede4f68e
MH
62elif groups | tr ' ' "\n" | grep -q ^wheel$; then
63 GROUP=wheel
997ebcfa
JM
64else
65 GROUP=adm
66fi
67
d65a593b
MK
68for i in 0 1 2; do
69 sed "s/ GROUP=.*$/ GROUP=$GROUP/" "$DIR/p2p$i.conf" > "$LOGDIR/p2p$i.conf"
70done
71
279a0aff
JM
72sed "s/group=admin/group=$GROUP/;s%LOGDIR%$LOGDIR%g" "$DIR/auth_serv/as.conf" > "$LOGDIR/as.conf"
73sed "s/group=admin/group=$GROUP/;s%LOGDIR%$LOGDIR%g" "$DIR/auth_serv/as2.conf" > "$LOGDIR/as2.conf"
4fcee244 74
79bbafd7
AO
75unset VM
76if [ "$1" = "VM" ]; then
77 VM="y"
78 shift
79fi
80
66767f0f 81if [ "$1" = "valgrind" ]; then
0c43a982 82 VALGRIND=y
7153540c
JM
83 VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d --leak-check=full"
84 VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd --leak-check=full"
3b464a3c
JM
85 chmod -f a+rx $WPAS
86 chmod -f a+rx $HAPD
a7fb2f2f 87 chmod -f a+rx $HAPD_AS
7153540c 88 HAPD_AS="valgrind --log-file=$LOGDIR/valgrind-auth-serv --leak-check=full $HAPD_AS"
66767f0f 89 shift
0c43a982
JM
90else
91 unset VALGRIND
95194219
JB
92 VALGRIND_WPAS=
93 VALGRIND_HAPD=
0c43a982
JM
94fi
95
66767f0f 96if [ "$1" = "trace" ]; then
53b63a0a 97 TRACE="T"
66767f0f 98 shift
53b63a0a
JM
99else
100 TRACE=""
101fi
102
f01edbcf 103$DIR/stop.sh
57d909ee
HD
104
105TMP=$1
106if [ x${TMP%=[0-9]*} = "xchannels" ]; then
107 NUM_CH=${TMP#channels=}
108 shift
109else
110 NUM_CH=1
111fi
112
c6ba0215 113test -f /proc/modules && sudo modprobe mac80211_hwsim radios=7 channels=$NUM_CH support_p2p_device=0 dyndbg=+p
41a256ec 114
05955587 115sudo ifconfig hwsim0 up
d2e7cfc0 116sudo $WLANTEST -i hwsim0 -n $LOGDIR/hwsim0.pcapng -c -dtN -L $LOGDIR/hwsim0 &
95194219 117for i in 0 1 2; do
b0839232 118 DBUSARG=""
b62d0544 119 if [ $i = "0" ] && ([ -r /var/run/dbus/pid ] || [ -r /var/run/dbus/system_bus_socket ]); then
b0839232
JM
120 if $WPAS | grep -q -- -u; then
121 DBUSARG="-u"
122 fi
123 fi
d65a593b 124 sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $LOGDIR/p2p$i.conf \
b0839232 125 -ddKt$TRACE -f $LOGDIR/log$i $DBUSARG &
95194219 126done
9489637b
JM
127sudo $(printf -- "$VALGRIND_WPAS" 5) $WPAS -g /tmp/wpas-wlan5 -G$GROUP \
128 -ddKt$TRACE -f $LOGDIR/log5 &
47824e0d 129sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -f $LOGDIR/hostapd &
eb89361b 130HPID=$!
79bbafd7
AO
131
132if [ -z "$VM" ]; then
133 # Sleep a bit, otherwise pgrep may run before the child is forked
134 sleep 0.1
135 pgrep -P $HPID > $LOGDIR/hostapd-test.pid
136else
137 echo $HPID > $LOGDIR/hostapd-test.pid
138fi
95194219 139
479cbb38 140if [ -x $HLR_AUC_GW ]; then
1d6f579a
JM
141 cp $DIR/auth_serv/hlr_auc_gw.milenage_db $LOGDIR/hlr_auc_gw.milenage_db
142 sudo $HLR_AUC_GW -u -m $LOGDIR/hlr_auc_gw.milenage_db -g $DIR/auth_serv/hlr_auc_gw.gsm > $LOGDIR/hlr_auc_gw &
479cbb38
JM
143fi
144
279a0aff
JM
145openssl ocsp -index $DIR/auth_serv/index.txt \
146 -rsigner $DIR/auth_serv/ocsp-responder.pem \
147 -rkey $DIR/auth_serv/ocsp-responder.key \
148 -CA $DIR/auth_serv/ca.pem \
149 -issuer $DIR/auth_serv/ca.pem \
150 -verify_other $DIR/auth_serv/ca.pem -trust_other \
151 -ndays 7 \
152 -reqin $DIR/auth_serv/ocsp-req.der \
153 -respout $LOGDIR/ocsp-server-cache.der > $LOGDIR/ocsp.log 2>&1
154if [ ! -r $LOGDIR/ocsp-server-cache.der ]; then
155 cp $DIR/auth_serv/ocsp-server-cache.der $LOGDIR/ocsp-server-cache.der
156fi
37b4a66c 157
98d125ca
JM
158cp $DIR/auth_serv/ocsp-multi-server-cache.der $LOGDIR/ocsp-multi-server-cache.der
159
58a40620
JM
160openssl ocsp -index $DIR/auth_serv/index.txt \
161 -rsigner $DIR/auth_serv/ocsp-responder.pem \
162 -rkey $DIR/auth_serv/ocsp-responder.key \
163 -resp_key_id \
164 -CA $DIR/auth_serv/ca.pem \
165 -issuer $DIR/auth_serv/ca.pem \
166 -verify_other $DIR/auth_serv/ca.pem -trust_other \
167 -ndays 7 \
168 -reqin $DIR/auth_serv/ocsp-req.der \
169 -respout $LOGDIR/ocsp-server-cache-key-id.der > $LOGDIR/ocsp.log 2>&1
170
37b4a66c
JM
171for i in unknown revoked; do
172 openssl ocsp -index $DIR/auth_serv/index-$i.txt \
173 -rsigner $DIR/auth_serv/ocsp-responder.pem \
174 -rkey $DIR/auth_serv/ocsp-responder.key \
175 -CA $DIR/auth_serv/ca.pem \
176 -issuer $DIR/auth_serv/ca.pem \
177 -verify_other $DIR/auth_serv/ca.pem -trust_other \
178 -ndays 7 \
179 -reqin $DIR/auth_serv/ocsp-req.der \
180 -respout $LOGDIR/ocsp-server-cache-$i.der >> $LOGDIR/ocsp.log 2>&1
181done
d79ce4a6
JM
182
183openssl ocsp -reqout $LOGDIR/ocsp-req.der -issuer $DIR/auth_serv/ca.pem \
1dd66fc1 184 -sha256 -serial 0xD8D3E3A6CBE3CD17 -no_nonce >> $LOGDIR/ocsp.log 2>&1
d79ce4a6
JM
185for i in "" "-unknown" "-revoked"; do
186 openssl ocsp -index $DIR/auth_serv/index$i.txt \
187 -rsigner $DIR/auth_serv/ca.pem \
188 -rkey $DIR/auth_serv/ca-key.pem \
189 -CA $DIR/auth_serv/ca.pem \
190 -ndays 7 \
191 -reqin $LOGDIR/ocsp-req.der \
192 -resp_no_certs \
193 -respout $LOGDIR/ocsp-resp-ca-signed$i.der >> $LOGDIR/ocsp.log 2>&1
194done
195openssl ocsp -index $DIR/auth_serv/index.txt \
196 -rsigner $DIR/auth_serv/server.pem \
197 -rkey $DIR/auth_serv/server.key \
198 -CA $DIR/auth_serv/ca.pem \
199 -ndays 7 \
200 -reqin $LOGDIR/ocsp-req.der \
201 -respout $LOGDIR/ocsp-resp-server-signed.der >> $LOGDIR/ocsp.log 2>&1
202
5b1aaf6c
JM
203touch $LOGDIR/hostapd.db
204sudo $HAPD_AS -ddKt $LOGDIR/as.conf $LOGDIR/as2.conf > $LOGDIR/auth_serv &
479cbb38 205
b76579e0 206# wait for programs to be fully initialized
b350009f
JM
207for i in 0 1 2 3 4 5 6 7 8 9; do
208 if [ -e /tmp/wpas-wlan0 ]; then
209 break
210 fi
211 sleep 0.05
212done
b76579e0
JM
213for i in 0 1 2; do
214 for j in `seq 1 10`; do
215 if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
216 break
217 fi
218 if [ $j = "10" ]; then
219 echo "Could not connect to /tmp/wpas-wlan$i"
8d0825d6 220 exit 1
b76579e0
JM
221 fi
222 sleep 1
223 done
224done
225
226for j in `seq 1 10`; do
227 if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
228 break
229 fi
230 if [ $j = "10" ]; then
231 echo "Could not connect to /var/run/hostapd-global"
8d0825d6 232 exit 1
b76579e0
JM
233 fi
234 sleep 1
235done
8d0825d6 236
de677292
JM
237for j in `seq 1 10`; do
238 if $HAPDCLI -i as ping | grep -q PONG; then
239 break
240 fi
241 if [ $j = "10" ]; then
242 echo "Could not connect to hostapd-as-RADIUS-server"
243 exit 1
244 fi
245 sleep 1
246done
247
b350009f
JM
248if [ $USER = "0" -o $USER = "root" ]; then
249 exit 0
250fi
251
252sleep 0.75
253sudo chown -f $USER $LOGDIR/hwsim0.pcapng $LOGDIR/hwsim0 $LOGDIR/log* $LOGDIR/hostapd
254if [ "x$VALGRIND" = "xy" ]; then
255 sudo chown -f $USER $LOGDIR/*valgrind*
256fi
257
8d0825d6 258exit 0