start-p2p-concurrent.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. DIR="$( cd "$( dirname "$0" )" && pwd )"
  3. WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
  4. WPACLI=$DIR/../../wpa_supplicant/wpa_cli
  5. HAPD=$DIR/../../hostapd/hostapd
  6. WLANTEST=$DIR/../../wlantest/wlantest
  7. if [ "x$1" = "xvalgrind" ]; then
  8. VALGRIND=y
  9. else
  10. unset VALGRIND
  11. fi
  12. $DIR/stop-wifi.sh
  13. sudo modprobe mac80211_hwsim radios=5
  14. sudo iw wlan0 interface add sta0 type station
  15. sudo iw wlan1 interface add sta1 type station
  16. sudo iw wlan2 interface add sta2 type station
  17. mkdir -p $DIR/logs
  18. DATE=`date +%s`
  19. sudo ifconfig hwsim0 up
  20. sudo $WLANTEST -i hwsim0 -c -d > $DIR/logs/$DATE-hwsim0 &
  21. sudo tcpdump -ni hwsim0 -s 2500 -w $DIR/logs/$DATE-hwsim0.dump > $DIR/logs/$DATE-tcpdump 2>&1 &
  22. if [ "x$VALGRIND" = "xy" ]; then
  23. for i in 0 1 2; do
  24. sudo valgrind --log-file=$DIR/logs/$DATE-valgrind-wlan$i $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -N -Dnl80211 -ista$i -c $DIR/sta-dummy.conf -ddKt > $DIR/logs/$DATE-log$i &
  25. done
  26. sudo valgrind --log-file=$DIR/logs/$DATE-valgrind-hostapd $HAPD -ddKt -g /var/run/hostapd-global -G admin -ddKt > $DIR/logs/$DATE-hostapd &
  27. else
  28. for i in 0 1 2; do
  29. sudo $WPAS -g /tmp/wpas-wlan$i -Gadmin -Dnl80211 -iwlan$i -c $DIR/p2p$i.conf -N -Dnl80211 -ista$i -c $DIR/sta-dummy.conf -ddKt > $DIR/logs/$DATE-log$i &
  30. done
  31. sudo $HAPD -ddKt -g /var/run/hostapd-global -G admin -ddKt > $DIR/logs/$DATE-hostapd &
  32. fi
  33. sleep 1
  34. sudo chown $USER $DIR/logs/$DATE-hwsim0.dump
  35. if [ "x$VALGRIND" = "xy" ]; then
  36. sudo chown $USER $DIR/logs/$DATE-valgrind*
  37. fi
  38. # wait for programs to be fully initialized
  39. for i in 0 1 2; do
  40. for j in `seq 1 10`; do
  41. if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
  42. break
  43. fi
  44. if [ $j = "10" ]; then
  45. echo "Could not connect to /tmp/wpas-wlan$i"
  46. fi
  47. sleep 1
  48. done
  49. done
  50. for j in `seq 1 10`; do
  51. if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
  52. break
  53. fi
  54. if [ $j = "10" ]; then
  55. echo "Could not connect to /var/run/hostapd-global"
  56. fi
  57. sleep 1
  58. done