Lines Matching refs:dev
22 def check_scan(dev, params, other_started=False, test_busy=False): argument
24 ev = dev.wait_event(["CTRL-EVENT-SCAN-STARTED"])
31 dev.dump_monitor()
32 id = dev.request("SCAN " + params)
38 if "FAIL-BUSY" not in dev.request("SCAN"):
42 ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"])
48 ev = dev.wait_event(["CTRL-EVENT-SCAN-STARTED"])
54 if "FAIL-BUSY" not in dev.request("SCAN"):
57 ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"])
63 def check_scan_retry(dev, params, bssid): argument
65 check_scan(dev, "freq=2412-2462,5180 use_id=1")
66 if int(dev.get_bss(bssid)['age']) <= 1:
71 def test_scan(dev, apdev): argument
77 check_scan(dev[0], "use_id=1", test_busy=True)
80 check_scan_retry(dev[0], "freq=2412-2462,5180 use_id=1", bssid)
86 check_scan(dev[0], "freq=2457 passive=1 use_id=1")
88 check_scan(dev[0], "freq=2452 passive=0 use_id=1")
89 if int(dev[0].get_bss(bssid)['age']) < 2:
93 check_scan_retry(dev[0], "freq=2412 passive=0 use_id=1", bssid)
96 check_scan(dev[0], "freq=2457 non_coloc_6ghz=1 use_id=1")
99 def test_scan_tsf(dev, apdev): argument
107 check_scan(dev[0], "freq=2412 passive=%d use_id=1" % passive)
108 bss = dev[0].get_bss(bssid)
124 def test_scan_only(dev, apdev): argument
130 check_scan(dev[0], "type=only use_id=1")
133 check_scan_retry(dev[0], "type=only freq=2412-2462,5180 use_id=1", bssid)
139 check_scan(dev[0], "type=only freq=2457 passive=1 use_id=1")
141 check_scan(dev[0], "type=only freq=2452 passive=0 use_id=1")
142 if int(dev[0].get_bss(bssid)['age']) < 2:
146 check_scan_retry(dev[0], "type=only freq=2412 passive=0 use_id=1", bssid)
149 def test_scan_external_trigger(dev, apdev): argument
153 dev[0].cmd_execute(['iw', dev[0].ifname, 'scan', 'trigger'])
154 check_scan(dev[0], "use_id=1", other_started=True)
156 def test_scan_bss_expiration_count(dev, apdev): argument
158 if "FAIL" not in dev[0].request("BSS_EXPIRE_COUNT 0"):
160 if "OK" not in dev[0].request("BSS_EXPIRE_COUNT 2"):
164 dev[0].scan(freq="2412", only_new=True)
165 if bssid not in dev[0].request("SCAN_RESULTS"):
173 dev[0].scan(freq="2412", only_new=True)
174 if bssid not in dev[0].request("SCAN_RESULTS"):
176 dev[0].scan(freq="2412", only_new=True)
177 if bssid in dev[0].request("SCAN_RESULTS"):
181 def test_scan_bss_expiration_age(dev, apdev): argument
184 if "FAIL" not in dev[0].request("BSS_EXPIRE_AGE COUNT 9"):
186 if "OK" not in dev[0].request("BSS_EXPIRE_AGE 10"):
192 dev[0].scan(freq="2412")
193 if bssid in dev[0].request("SCAN_RESULTS"):
195 if bssid not in dev[0].request("SCAN_RESULTS"):
200 if bssid not in dev[0].request("SCAN_RESULTS"):
202 ev = dev[0].wait_event(["CTRL-EVENT-BSS-REMOVED"], timeout=15)
205 if bssid in dev[0].request("SCAN_RESULTS"):
208 dev[0].request("BSS_EXPIRE_AGE 180")
211 def test_scan_filter(dev, apdev): argument
214 if "OK" not in dev[0].request("SET filter_ssids 1"):
216 id = dev[0].connect("test-scan", key_mgmt="NONE", only_add_network=True)
221 dev[0].scan(freq="2412", only_new=True)
222 if bssid not in dev[0].request("SCAN_RESULTS"):
224 if bssid2 in dev[0].request("SCAN_RESULTS"):
226 dev[0].set_network_quoted(id, "ssid", "")
227 dev[0].scan(freq="2412")
228 id2 = dev[0].connect("test", key_mgmt="NONE", only_add_network=True)
229 dev[0].scan(freq="2412")
231 dev[0].request("SET filter_ssids 0")
234 def test_scan_int(dev, apdev): argument
237 if "FAIL" not in dev[0].request("SCAN_INTERVAL -1"):
239 if "OK" not in dev[0].request("SCAN_INTERVAL 1"):
241 dev[0].connect("not-used", key_mgmt="NONE", scan_freq="2412",
247 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=5)
253 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], 10)
260 dev[0].request("SCAN_INTERVAL 5")
262 def test_scan_bss_operations(dev, apdev): argument
269 dev[0].flush_scan_cache()
270 dev[0].scan(freq="2412")
271 dev[0].scan(freq="2412")
272 dev[0].scan(freq="2412")
274 id1 = dev[0].request("BSS FIRST MASK=0x1").splitlines()[0].split('=')[1]
275 id2 = dev[0].request("BSS LAST MASK=0x1").splitlines()[0].split('=')[1]
277 res = dev[0].request("BSS RANGE=ALL MASK=0x20001")
287 res = dev[0].request("BSS RANGE=ALL MASK=0")
297 res = dev[0].request("BSS RANGE=ALL MASK=0x1").splitlines()
300 res = dev[0].request("BSS FIRST MASK=0x1")
303 res = dev[0].request("BSS LAST MASK=0x1")
306 res = dev[0].request("BSS ID-" + id1 + " MASK=0x1")
309 res = dev[0].request("BSS NEXT-" + id1 + " MASK=0x1")
312 res = dev[0].request("BSS NEXT-" + id2 + " MASK=0x1")
316 if len(dev[0].request("BSS RANGE=" + id2 + " MASK=0x1").splitlines()) != 0:
318 if len(dev[0].request("BSS RANGE=" + id1 + "- MASK=0x1").splitlines()) != 2:
320 if len(dev[0].request("BSS RANGE=-" + id2 + " MASK=0x1").splitlines()) != 2:
322 if len(dev[0].request("BSS RANGE=" + id1 + "-" + id2 + " MASK=0x1").splitlines()) != 2:
324 if len(dev[0].request("BSS RANGE=" + id2 + "-" + id2 + " MASK=0x1").splitlines()) != 1:
326 …if len(dev[0].request("BSS RANGE=" + str(int(id2) + 1) + "-" + str(int(id2) + 10) + " MASK=0x1").s…
328 if len(dev[0].request("BSS RANGE=0-" + str(int(id2) + 10) + " MASK=0x1").splitlines()) != 2:
330 if len(dev[0].request("BSS RANGE=" + id1 + "-" + id1 + " MASK=0x1").splitlines()) != 1:
333 res = dev[0].request("BSS p2p_dev_addr=FOO")
336 res = dev[0].request("BSS p2p_dev_addr=00:11:22:33:44:55")
340 dev[0].request("BSS_FLUSH 1000")
341 res = dev[0].request("BSS RANGE=ALL MASK=0x1").splitlines()
344 dev[0].request("BSS_FLUSH 0")
345 res = dev[0].request("BSS RANGE=ALL MASK=0x1").splitlines()
350 def test_scan_and_interface_disabled(dev, apdev): argument
353 dev[0].request("SCAN")
354 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"])
357 dev[0].request("DRIVER_EVENT INTERFACE_DISABLED")
358 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=7)
363 if "FAIL" not in dev[0].request("SCAN"):
366 dev[0].request("DRIVER_EVENT INTERFACE_ENABLED")
367 dev[0].scan(freq="2412")
369 dev[0].request("DRIVER_EVENT INTERFACE_ENABLED")
372 def test_scan_for_auth(dev, apdev): argument
375 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
380 id = dev[0].request("RADIO_WORK add block-work")
381 ev = dev[0].wait_event(["EXT-RADIO-WORK-START"])
384 dev[0].connect("open", key_mgmt="NONE", scan_freq="2412",
386 dev[0].dump_monitor()
388 res, data = dev[0].cmd_execute(['iw', dev[0].ifname, 'scan', 'trigger',
392 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], 5)
397 dev[0].request("RADIO_WORK done " + id)
399 dev[0].wait_connected(timeout=15)
402 def test_scan_for_auth_fail(dev, apdev): argument
405 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
410 id = dev[0].request("RADIO_WORK add block-work")
411 ev = dev[0].wait_event(["EXT-RADIO-WORK-START"])
414 dev[0].connect("open", key_mgmt="NONE", scan_freq="2412",
416 dev[0].dump_monitor()
419 res, data = dev[0].cmd_execute(['iw', dev[0].ifname, 'scan', 'trigger',
423 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], 5)
428 dev[0].request("RADIO_WORK done " + id)
430 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS",
436 dev[0].request("DISCONNECT")
439 def test_scan_for_auth_wep(dev, apdev): argument
441 check_wep_capa(dev[0])
442 dev[0].flush_scan_cache()
446 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
451 id = dev[0].request("RADIO_WORK add block-work")
452 ev = dev[0].wait_event(["EXT-RADIO-WORK-START"])
455 dev[0].connect("wep", key_mgmt="NONE", wep_key0='"abcde"',
457 dev[0].dump_monitor()
459 res, data = dev[0].cmd_execute(['iw', dev[0].ifname, 'scan', 'trigger',
463 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], 5)
468 dev[0].request("RADIO_WORK done " + id)
470 dev[0].wait_connected(timeout=15)
473 def test_scan_hidden(dev, apdev): argument
475 dev[0].flush_scan_cache()
482 check_scan(dev[0], "freq=2412 use_id=1")
487 if "OK" not in dev[0].request(cmd):
489 check_scan(dev[0], "freq=2412 use_id=1")
494 if "OK" not in dev[0].request(cmd):
496 check_scan(dev[0], "freq=2412 use_id=1")
498 dev[0].request("VENDOR_ELEM_REMOVE 14 *")
499 if "test-scan" in dev[0].request("SCAN_RESULTS"):
502 id1 = dev[0].connect("foo", key_mgmt="NONE", scan_ssid="1",
504 id2 = dev[0].connect("test-scan", key_mgmt="NONE", scan_ssid="1",
506 id3 = dev[0].connect("bar", key_mgmt="NONE", only_add_network=True)
508 check_scan(dev[0], "freq=2412 use_id=1")
509 if "test-scan" in dev[0].request("SCAN_RESULTS"):
517 check_scan(dev[0], "scan_id=%d,%d,%d freq=2412 use_id=1" % (id1, id2, id3))
518 if "test-scan" in dev[0].request("SCAN_RESULTS"):
524 if "FAIL" not in dev[0].request("SCAN scan_id=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"):
528 check_scan(dev[0], "scan_id=%d,%d,%d freq=2412 use_id=1" % (id1, id1, id2))
530 dev[0].request("REMOVE_NETWORK all")
532 dev[0].flush_scan_cache(freq=2432)
533 dev[0].flush_scan_cache()
535 def test_scan_and_bss_entry_removed(dev, apdev): argument
546 dev[0].scan_for_bss(bssid, freq="2412")
551 id = dev[0].request("RADIO_WORK add block-work")
553 dev[0].wait_event(["EXT-RADIO-WORK-START"], timeout=1)
555 nid = dev[0].connect("open", key_mgmt="NONE", scan_freq="2412",
562 dev[0].request("BSS_FLUSH 0")
568 dev[0].request("RADIO_WORK done " + id)
571 ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=1)
574 dev[0].remove_network(nid)
580 dev[0].request("BSS_FLUSH 0")
584 dev[0].scan_for_bss(bssid, freq="2412")
589 id = dev[0].request("RADIO_WORK add block-work")
591 dev[0].wait_event(["EXT-RADIO-WORK-START"], timeout=1)
595 dev[0].connect("open", key_mgmt="NONE", scan_freq="2412",
604 subprocess.call(['iw', dev[0].ifname, 'scan', 'trigger', 'freq', '2412'])
611 dev[0].request("RADIO_WORK done " + id)
614 dev[0].wait_connected(timeout=15, error="No connection (sme-connect)")
616 dev[0].request("DISCONNECT")
618 dev[0].flush_scan_cache()
622 def test_scan_reqs_with_non_scan_radio_work(dev, apdev): argument
624 id = dev[0].request("RADIO_WORK add test-work-a")
625 ev = dev[0].wait_event(["EXT-RADIO-WORK-START"])
629 if "OK" not in dev[0].request("SCAN"):
631 if "FAIL-BUSY" not in dev[0].request("SCAN"):
633 if "FAIL-BUSY" not in dev[0].request("SCAN"):
636 res = dev[0].request("RADIO_WORK show").splitlines()
645 dev[0].dump_monitor()
646 dev[0].request("RADIO_WORK done " + id)
647 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=5)
650 if "FAIL-BUSY" not in dev[0].request("SCAN"):
653 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
656 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=0.2)
660 def test_scan_setband(dev, apdev): argument
664 devs = [ dev[0], dev[1], dev[2], wpas ]
682 if "FAIL" not in dev[0].request("SET setband FOO"):
684 if "OK" not in dev[0].request("SET setband AUTO"):
686 if "OK" not in dev[1].request("SET setband 5G"):
688 if "OK" not in dev[2].request("SET setband 2G"):
703 res0 = dev[0].request("SCAN_RESULTS")
704 res1 = dev[1].request("SCAN_RESULTS")
705 res2 = dev[2].request("SCAN_RESULTS")
712 res = dev[0].request("SCAN_RESULTS")
716 res = dev[1].request("SCAN_RESULTS")
722 res = dev[2].request("SCAN_RESULTS")
742 def test_scan_hidden_many(dev, apdev): argument
745 _test_scan_hidden_many(dev, apdev)
747 dev[0].flush_scan_cache(freq=2432)
748 dev[0].flush_scan_cache()
749 dev[0].request("SCAN_INTERVAL 5")
751 def _test_scan_hidden_many(dev, apdev): argument
756 dev[0].request("SCAN_INTERVAL 1")
759 id = dev[0].add_network()
760 dev[0].set_network_quoted(id, "ssid", "foo")
761 dev[0].set_network(id, "key_mgmt", "NONE")
762 dev[0].set_network(id, "disabled", "0")
763 dev[0].set_network(id, "scan_freq", "2412")
764 dev[0].set_network(id, "scan_ssid", "1")
766 dev[0].set_network_quoted(id, "ssid", "test-scan-ssid")
767 dev[0].set_network(id, "key_mgmt", "NONE")
768 dev[0].set_network(id, "disabled", "0")
769 dev[0].set_network(id, "scan_freq", "2412")
770 dev[0].set_network(id, "scan_ssid", "1")
773 id = dev[0].add_network()
774 dev[0].set_network_quoted(id, "ssid", "foo")
775 dev[0].set_network(id, "key_mgmt", "NONE")
776 dev[0].set_network(id, "disabled", "0")
777 dev[0].set_network(id, "scan_freq", "2412")
778 dev[0].set_network(id, "scan_ssid", "1")
780 dev[0].request("REASSOCIATE")
781 dev[0].wait_connected(timeout=30)
782 dev[0].request("REMOVE_NETWORK all")
785 def test_scan_random_mac(dev, apdev, params): argument
788 _test_scan_random_mac(dev, apdev, params)
790 dev[0].request("MAC_RAND_SCAN all enable=0")
792 def _test_scan_random_mac(dev, apdev, params): argument
809 if "FAIL" not in dev[0].request("MAC_RAND_SCAN " + args):
812 if dev[0].get_driver_status_field('capa.mac_addr_rand_scan_supported') != '1':
819 dev[0].request("MAC_RAND_SCAN " + args)
820 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
827 if dev[0].own_addr() in addr:
839 def test_scan_random_mac_connected(dev, apdev, params): argument
842 _test_scan_random_mac_connected(dev, apdev, params)
844 dev[0].request("MAC_RAND_SCAN all enable=0")
846 def _test_scan_random_mac_connected(dev, apdev, params): argument
849 if dev[0].get_driver_status_field('capa.mac_addr_rand_scan_supported') != '1':
852 dev[0].connect("test-scan", key_mgmt="NONE", scan_freq="2412")
859 dev[0].request("MAC_RAND_SCAN all enable=1")
860 dev[0].scan_for_bss(bssid1, freq=2462, force_scan=True)
863 def test_scan_trigger_failure(dev, apdev): argument
865 if dev[0].get_status_field('wpa_state') == "SCANNING":
871 if "OK" not in dev[0].request("SET test_failure 1"):
874 if "OK" not in dev[0].request("SCAN"):
876 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=10)
881 if dev[0].get_status_field('wpa_state') == "SCANNING":
884 id = dev[0].connect("test-scan", key_mgmt="NONE", scan_freq="2412",
886 dev[0].select_network(id)
887 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=10)
892 if dev[0].get_status_field('wpa_state') == "SCANNING":
894 dev[0].request("SET test_failure 0")
895 dev[0].wait_connected()
897 dev[0].request("SET test_failure 1")
898 if "OK" not in dev[0].request("SCAN"):
900 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=10)
905 if dev[0].get_status_field('wpa_state') != "COMPLETED":
907 dev[0].request("SET test_failure 0")
910 def test_scan_specify_ssid(dev, apdev): argument
912 dev[0].flush_scan_cache()
916 check_scan(dev[0], "freq=2412 use_id=1 ssid 414243")
917 bss = dev[0].get_bss(bssid)
922 … check_scan(dev[0], "freq=2412 ssid 414243 ssid 746573742d68696464656e ssid 616263313233 use_id=1")
923 bss = dev[0].get_bss(bssid)
924 if bss and 'test-hidden' in dev[0].request("SCAN_RESULTS"):
928 if 'test-hidden' not in dev[0].request("SCAN_RESULTS"):
932 dev[0].flush_scan_cache(freq=2432)
933 dev[0].flush_scan_cache()
935 if "FAIL" not in dev[0].request("SCAN ssid foo"):
939 def test_scan_ap_scan_2_ap_mode(dev, apdev): argument
942 _test_scan_ap_scan_2_ap_mode(dev, apdev)
944 dev[0].request("AP_SCAN 1")
946 def _test_scan_ap_scan_2_ap_mode(dev, apdev): argument
947 if "OK" not in dev[0].request("AP_SCAN 2"):
950 id = dev[0].add_network()
951 dev[0].set_network(id, "mode", "2")
952 dev[0].set_network_quoted(id, "ssid", "wpas-ap-open")
953 dev[0].set_network(id, "key_mgmt", "NONE")
954 dev[0].set_network(id, "frequency", "2412")
955 dev[0].set_network(id, "scan_freq", "2412")
956 dev[0].set_network(id, "disabled", "0")
957 dev[0].select_network(id)
958 ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=5)
962 with fail_test(dev[0], 1, "wpa_driver_nl80211_scan"):
963 if "OK" not in dev[0].request("SCAN freq=2412"):
965 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED",
973 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED",
980 dev[1].connect("wpas-ap-open", key_mgmt="NONE", scan_freq="2412")
981 dev[1].request("DISCONNECT")
982 dev[1].wait_disconnected()
983 dev[0].request("DISCONNECT")
984 dev[0].wait_disconnected()
986 def test_scan_bss_expiration_on_ssid_change(dev, apdev): argument
988 dev[0].flush_scan_cache()
991 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
995 if "OK" not in dev[0].request("BSS_EXPIRE_COUNT 3"):
997 dev[0].scan(freq="2412")
998 dev[0].scan(freq="2412")
999 if "OK" not in dev[0].request("BSS_EXPIRE_COUNT 2"):
1001 res = dev[0].request("SCAN_RESULTS")
1006 dev[0].connect("open", key_mgmt="NONE")
1008 dev[0].request("BSS_FLUSH 0")
1009 res = dev[0].request("SCAN_RESULTS")
1012 dev[0].request("DISCONNECT")
1013 dev[0].wait_disconnected()
1015 def test_scan_dfs(dev, apdev, params): argument
1018 _test_scan_dfs(dev, apdev, params)
1020 clear_regdom_dev(dev)
1022 def _test_scan_dfs(dev, apdev, params): argument
1026 ev = dev[i].wait_event(["CTRL-EVENT-REGDOM-CHANGE"], timeout=5)
1031 dev[i].dump_monitor()
1033 if "OK" not in dev[0].request("SCAN"):
1035 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=30)
1039 if "OK" not in dev[0].request("SCAN freq=2412,5180,5260,5500,5600,5745"):
1041 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"])
1060 def test_scan_abort(dev, apdev): argument
1062 dev[0].request("SCAN")
1063 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"])
1066 if "OK" not in dev[0].request("ABORT_SCAN"):
1068 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=2)
1073 def test_scan_abort_on_connect(dev, apdev): argument
1078 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
1079 dev[0].dump_monitor()
1080 dev[0].request("SCAN")
1081 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"])
1084 dev[0].connect("test-scan", key_mgmt="NONE")
1087 def test_scan_ext(dev, apdev): argument
1093 if "OK" not in dev[0].request("VENDOR_ELEM_ADD 14 dd050011223300"):
1095 check_scan(dev[0], "freq=2412 use_id=1")
1097 dev[0].request("VENDOR_ELEM_REMOVE 14 *")
1099 def test_scan_fail(dev, apdev): argument
1101 with fail_test(dev[0], 1, "wpa_driver_nl80211_scan"):
1102 dev[0].request("DISCONNECT")
1103 if "OK" not in dev[0].request("SCAN freq=2412"):
1105 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=5)
1108 dev[0].dump_monitor()
1111 with alloc_fail(dev[0], i,
1113 if "OK" not in dev[0].request("SCAN ssid 112233 freq=2412"):
1115 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=5)
1118 dev[0].dump_monitor()
1120 with alloc_fail(dev[0], 1, "radio_add_work;wpa_supplicant_trigger_scan"):
1121 if "OK" not in dev[0].request("SCAN freq=2412"):
1123 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=5)
1126 dev[0].dump_monitor()
1129 if "OK" not in dev[0].request("SET filter_ssids 1"):
1131 id = dev[0].connect("test-scan", key_mgmt="NONE", only_add_network=True)
1132 with alloc_fail(dev[0], 1, "wpa_supplicant_build_filter_ssids"):
1136 if "OK" not in dev[0].request("SCAN freq=2412"):
1138 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"])
1141 dev[0].remove_network(id)
1143 dev[0].request("SET filter_ssids 0")
1144 dev[0].dump_monitor()
1146 with alloc_fail(dev[0], 1, "nl80211_get_scan_results"):
1147 if "OK" not in dev[0].request("SCAN freq=2412"):
1149 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=5)
1152 wait_fail_trigger(dev[0], "GET_ALLOC_FAIL")
1153 dev[0].dump_monitor()
1156 if "OK" not in dev[0].request("SET setband 2G"):
1158 with alloc_fail(dev[0], 1, "=wpa_add_scan_freqs_list"):
1162 if "OK" not in dev[0].request("SCAN"):
1164 wait_fail_trigger(dev[0], "GET_ALLOC_FAIL")
1165 dev[0].request("ABORT_SCAN")
1166 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"])
1170 dev[0].request("SET setband AUTO")
1171 dev[0].dump_monitor()
1186 with alloc_fail(dev[0], 1, "wpa_bss_add"):
1187 dev[0].flush_scan_cache()
1188 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
1190 def test_scan_fail_type_only(dev, apdev): argument
1192 with fail_test(dev[0], 1, "wpa_driver_nl80211_scan"):
1193 dev[0].request("SCAN TYPE=ONLY freq=2417")
1194 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=5)
1200 dev[0].connect("open", key_mgmt="NONE", scan_freq="2412")
1203 def test_scan_freq_list(dev, apdev): argument
1206 if "OK" not in dev[0].request("SET freq_list 2412 2417"):
1208 check_scan(dev[0], "use_id=1")
1210 dev[0].request("SET freq_list ")
1213 dev[0].connect("test-scan", key_mgmt="NONE", scan_freq="2412")
1215 if "OK" not in dev[0].request("SET scan_cur_freq 1"):
1217 check_scan(dev[0], "use_id=1")
1219 dev[0].request("SET scan_cur_freq 0")
1220 dev[0].request("REMOVE_NETWORK all")
1221 dev[0].wait_disconnected()
1223 def test_scan_bss_limit(dev, apdev): argument
1226 _test_scan_bss_limit(dev, apdev)
1228 dev[0].request("SET bss_max_count 200")
1231 def _test_scan_bss_limit(dev, apdev): argument
1232 dev[0].flush_scan_cache()
1237 dev[0].request("SET bss_max_count 1")
1239 dev[0].connect("test-scan", key_mgmt="NONE", scan_freq="2412")
1242 dev[0].scan_for_bss(apdev[1]['bssid'], freq=2437, force_scan=True)
1244 def run_scan(dev, bssid, exp_freq): argument
1246 dev.request("SCAN freq=2412,2437,2462")
1247 ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"])
1250 bss = dev.get_bss(bssid)
1257 def test_scan_chan_switch(dev, apdev): argument
1264 csa_supported(dev[0])
1270 run_scan(dev[0], bssid, 2412)
1271 dev[0].dump_monitor()
1273 run_scan(dev[0], bssid, 2437)
1274 dev[0].dump_monitor()
1276 run_scan(dev[0], bssid, 2462)
1277 dev[0].dump_monitor()
1280 dev[0].connect("test-scan", key_mgmt="NONE", scan_freq="2412 2437 2462")
1281 run_scan(dev[0], bssid, 2462)
1282 dev[0].dump_monitor()
1284 wait_channel_switch(dev[0], 2437)
1285 dev[0].dump_monitor()
1286 run_scan(dev[0], bssid, 2437)
1287 dev[0].dump_monitor()
1289 wait_channel_switch(dev[0], 2412)
1290 dev[0].dump_monitor()
1291 run_scan(dev[0], bssid, 2412)
1292 dev[0].dump_monitor()
1294 def test_scan_new_only(dev, apdev): argument
1296 dev[0].flush_scan_cache()
1298 dev[0].set("ignore_old_scan_res", "1")
1301 dev[0].scan_for_bss(bssid, freq=2412)
1302 bss = dev[0].get_bss(bssid)
1304 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
1305 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
1306 bss = dev[0].get_bss(bssid)
1316 dev[0].scan(freq=2412)
1317 bss = dev[0].get_bss(bssid)
1323 def test_scan_flush(dev, apdev): argument
1325 dev[0].flush_scan_cache()
1327 dev[0].dump_monitor()
1328 dev[0].request("SCAN TYPE=ONLY freq=2412-2472 passive=1")
1329 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=10)
1333 dev[0].request("FLUSH")
1334 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS",
1342 def test_scan_ies(dev, apdev): argument
1344 dev[0].flush_scan_cache()
1348 dev[0].dump_monitor()
1351 dev[0].request("SCAN TYPE=ONLY freq=2412 passive=1")
1352 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=15)
1355 if dev[0].get_bss(bssid):
1359 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
1360 bss = dev[0].get_bss(bssid)
1374 def test_scan_parsing(dev, apdev): argument
1376 if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES START"):
1379 if "FAIL" not in dev[0].request("DRIVER_EVENT SCAN_RES foo "):
1420 if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES BSS " + t):
1423 if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES END"):
1426 res = dev[0].request("SCAN_RESULTS")
1430 res = dev[0].request("BSS FIRST")
1445 res = dev[0].request("BSS NEXT-" + id)
1462 if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES START"):
1464 …if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES BSS bssid=02:ff:00:00:00:09 freq=2412 caps=00…
1466 if "OK" not in dev[0].request("DRIVER_EVENT SCAN_RES END"):
1468 res = dev[0].request("BSS 02:ff:00:00:00:09")
1482 def test_scan_specific_bssid(dev, apdev): argument
1484 dev[0].flush_scan_cache()
1490 dev[0].request("SCAN TYPE=ONLY freq=2412 bssid=02:ff:ff:ff:ff:ff")
1491 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
1494 bss1 = dev[0].get_bss(bssid)
1497 dev[0].request("SCAN TYPE=ONLY freq=2412 bssid=" + bssid)
1498 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
1501 bss2 = dev[0].get_bss(bssid)
1516 dev[0].request("SCAN TYPE=ONLY freq=2412 bssid=" + bssid)
1517 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
1527 dev[0].request("SCAN TYPE=ONLY freq=2412 wildcard_ssid=1 bssid=" + bssid)
1528 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
1535 def test_scan_probe_req_events(dev, apdev): argument
1542 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412", force_scan=True)
1547 if "sa=" + dev[0].own_addr() not in ev:
1557 dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412", force_scan=True)
1586 def run_scans(dev, check): argument
1588 dev.request("SCAN TYPE=ONLY freq=2412")
1589 ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=10)
1595 bss = dev.get_bss(bssid)
1604 def check_multibss_sta_capa(dev): argument
1605 res = dev.get_capability("multibss")
1609 def test_scan_multi_bssid(dev, apdev): argument
1611 check_multibss_sta_capa(dev[0])
1612 dev[0].flush_scan_cache()
1630 run_scans(dev[0], check)
1632 def test_scan_multi_bssid_2(dev, apdev): argument
1634 check_multibss_sta_capa(dev[0])
1635 dev[0].flush_scan_cache()
1657 run_scans(dev[0], check)
1659 def test_scan_multi_bssid_3(dev, apdev): argument
1661 check_multibss_sta_capa(dev[0])
1662 dev[0].flush_scan_cache()
1680 run_scans(dev[0], check)
1682 def test_scan_multi_bssid_4(dev, apdev): argument
1684 check_multibss_sta_capa(dev[0])
1685 dev[0].flush_scan_cache()
1711 run_scans(dev[0], check)
1718 def test_scan_multi_bssid_check_ie(dev, apdev): argument
1720 check_multibss_sta_capa(dev[0])
1721 dev[0].flush_scan_cache()
1739 dev[0].request("SCAN TYPE=ONLY freq=2412 passive=1")
1740 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=15)
1743 if dev[0].get_bss(bssid):
1747 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
1748 bss = dev[0].get_bss(bssid)
1752 trans_bss = dev[0].get_bss(bssid)
1763 nontrans_bss1 = dev[0].get_bss(bssid)
1796 def test_scan_multi_bssid_fms(dev, apdev): argument
1798 check_multibss_sta_capa(dev[0])
1799 dev[0].flush_scan_cache()
1817 dev[0].request("SCAN TYPE=ONLY freq=2412 passive=1")
1818 ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"], timeout=15)
1821 if dev[0].get_bss(bssid):
1825 dev[0].scan_for_bss(bssid, freq=2412, force_scan=True)
1826 bss = dev[0].get_bss(bssid)
1830 trans_bss = dev[0].get_bss(bssid)
1842 nontrans_bss1 = dev[0].get_bss(bssid)
1856 def test_scan_multiple_mbssid_ie(dev, apdev): argument
1858 check_multibss_sta_capa(dev[0])
1859 dev[0].flush_scan_cache()
1881 run_scans(dev[0], check)
1883 def test_scan_mbssid_hidden_ssid(dev, apdev): argument
1885 check_multibss_sta_capa(dev[0])
1886 dev[0].flush_scan_cache()
1909 run_scans(dev[0], check)
1911 def test_connect_mbssid_open_1(dev, apdev): argument
1913 check_multibss_sta_capa(dev[0])
1914 dev[0].flush_scan_cache()
1929 dev[0].connect("transmitted", key_mgmt="NONE", scan_freq="2412")
1930 dev[0].request("REMOVE_NETWORK all")
1931 dev[0].wait_disconnected()
1932 dev[0].dump_monitor()
1934 dev[0].connect("nontransmitted", key_mgmt="NONE", scan_freq="2412",
1936 ev = dev[0].wait_event(["SME: Trying to authenticate"], timeout=10)
1943 dev[0].request("REMOVE_NETWORK all")
1944 dev[0].dump_monitor()
1946 dev[0].connect("nontransmitted_2", key_mgmt="NONE", scan_freq="2412",
1948 ev = dev[0].wait_event(["SME: Trying to authenticate"], timeout=10)
1955 dev[0].request("REMOVE_NETWORK all")
1956 dev[0].dump_monitor()
1958 def test_scan_only_one(dev, apdev): argument
1960 dev[0].flush_scan_cache()
1964 check_scan(dev[0], "use_id=1", test_busy=True)
1965 dev[0].scan_for_bss(bssid, freq="2412")
1967 status, stdout = hostapd.cmd_execute(dev[0], ['iw', dev[0].ifname, 'scan', 'dump'])
1975 def test_scan_ssid_list(dev, apdev): argument
1977 dev[0].flush_scan_cache()
1987 if "OK" not in dev[0].request(cmd):
1990 check_scan(dev[0], "freq=2412 use_id=1")
1991 if ssid in dev[0].request("SCAN_RESULTS"):
1995 dev[0].request("VENDOR_ELEM_REMOVE 14 *")
1997 dev[0].flush_scan_cache(freq=2432)
1998 dev[0].flush_scan_cache()
2003 def test_scan_short_ssid_list(dev, apdev): argument
2005 dev[0].flush_scan_cache()
2015 if "OK" not in dev[0].request(cmd):
2018 check_scan(dev[0], "freq=2412 use_id=1")
2019 if ssid in dev[0].request("SCAN_RESULTS"):
2023 dev[0].request("VENDOR_ELEM_REMOVE 14 *")
2025 dev[0].flush_scan_cache(freq=2432)
2026 dev[0].flush_scan_cache()