logger = logging.getLogger()
import time
import re
+import subprocess
import hwsim_utils
if ev is None:
raise Exception("4-way handshake in IBSS timed out")
-def add_ibss(dev, ssid, psk=None, proto=None, key_mgmt=None, pairwise=None, group=None, beacon_int=None, bssid=None):
+def add_ibss(dev, ssid, psk=None, proto=None, key_mgmt=None, pairwise=None,
+ group=None, beacon_int=None, bssid=None, scan_freq=None):
id = dev.add_network()
dev.set_network(id, "mode", "1")
dev.set_network(id, "frequency", "2412")
+ if scan_freq:
+ dev.set_network(id, "scan_freq", str(scan_freq))
dev.set_network_quoted(id, "ssid", ssid)
if psk:
dev.set_network_quoted(id, "psk", psk)
logger.info("STA0 BSSID " + bssid0 + " differs from STA2 BSSID " + bssid2)
bssid2 = wait_ibss_connection(dev[2])
- print bssid0
- print bssid1
- print bssid2
+ logger.info("bssid0=%s bssid1=%s bssid2=%s" % (bssid0, bssid1, bssid2))
bss = dev[0].get_bss(bssid0)
if not bss:
logger.info("STA0 BSSID " + bssid0 + " differs from STA1 BSSID " + bssid1)
bssid1 = wait_ibss_connection(dev[1])
- print bssid0
- print bssid1
+ logger.info("bssid0=%s bssid1=%s" % (bssid0, bssid1))
# Allow some time for all peers to complete key setup
time.sleep(1)
finally:
dev[0].request("AP_SCAN 1")
dev[1].request("AP_SCAN 1")
+
+def test_ibss_open_retry(dev):
+ """IBSS open (no security) with cfg80211 retry workaround"""
+ subprocess.check_call(['iw', 'dev', dev[0].ifname, 'set', 'type', 'adhoc'])
+ subprocess.check_call(['iw', 'dev', dev[0].ifname, 'ibss', 'join',
+ 'ibss-test', '2412', 'HT20', 'fixed-freq',
+ '02:22:33:44:55:66'])
+ ssid="ibss"
+ try:
+ dev[0].request("AP_SCAN 2")
+ id = add_ibss(dev[0], ssid, key_mgmt="NONE", beacon_int="150",
+ bssid="02:33:44:55:66:77", scan_freq=2412)
+ #connect_ibss_cmd(dev[0], id)
+ dev[0].request("REASSOCIATE")
+ bssid0 = wait_ibss_connection(dev[0])
+
+ subprocess.check_call(['iw', 'dev', dev[0].ifname, 'ibss', 'leave'])
+ time.sleep(1)
+ dev[0].request("DISCONNECT")
+ finally:
+ dev[0].request("AP_SCAN 1")