tests: Set the abridged bit in BTM tests

Many of the WNM tests assume that the supplicant will only select a
neighbor that was included in the candidate list. However, without the
abridged bit being set, the supplicant is allowed to also select any BSS
that is not explicitly included in the list.

Prepare for the supplicant handling the abridged bit by setting it in
the tests where relevant.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
This commit is contained in:
Benjamin Berg 2024-04-29 13:51:50 +02:00 committed by Jouni Malinen
parent adc6ca34a0
commit 020f20a222

View file

@ -623,7 +623,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# truncated BSS TM Request # truncated BSS TM Request
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x08) req_mode=0x0a)
req['payload'] = struct.pack("<BBBBH", req['payload'] = struct.pack("<BBBBH",
ACTION_CATEG_WNM, WNM_ACT_BSS_TM_REQ, ACTION_CATEG_WNM, WNM_ACT_BSS_TM_REQ,
1, 0, 0) 1, 0, 0)
@ -633,21 +633,21 @@ def test_wnm_bss_tm_req(dev, apdev):
# no disassociation and no candidate list # no disassociation and no candidate list
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
dialog_token=2) dialog_token=2, req_mode=0x02)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
resp = rx_bss_tm_resp(hapd, expect_dialog=2, expect_status=1) resp = rx_bss_tm_resp(hapd, expect_dialog=2, expect_status=1)
dev[0].dump_monitor() dev[0].dump_monitor()
# truncated BSS Termination Duration # truncated BSS Termination Duration
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x08) req_mode=0x0a)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
expect_ack(hapd) expect_ack(hapd)
dev[0].dump_monitor() dev[0].dump_monitor()
# BSS Termination Duration with TSF=0 and Duration=10 # BSS Termination Duration with TSF=0 and Duration=10
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x08, dialog_token=3) req_mode=0x0a, dialog_token=3)
req['payload'] += struct.pack("<BBQH", 4, 10, 0, 10) req['payload'] += struct.pack("<BBQH", 4, 10, 0, 10)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
resp = rx_bss_tm_resp(hapd, expect_dialog=3, expect_status=1) resp = rx_bss_tm_resp(hapd, expect_dialog=3, expect_status=1)
@ -655,11 +655,11 @@ def test_wnm_bss_tm_req(dev, apdev):
# truncated Session Information URL # truncated Session Information URL
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x10) req_mode=0x12)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
expect_ack(hapd) expect_ack(hapd)
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x10) req_mode=0x12)
req['payload'] += struct.pack("<BBB", 3, 65, 66) req['payload'] += struct.pack("<BBB", 3, 65, 66)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
expect_ack(hapd) expect_ack(hapd)
@ -667,7 +667,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Session Information URL # Session Information URL
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x10, dialog_token=4) req_mode=0x12, dialog_token=4)
req['payload'] += struct.pack("<BBB", 2, 65, 66) req['payload'] += struct.pack("<BBB", 2, 65, 66)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
resp = rx_bss_tm_resp(hapd, expect_dialog=4, expect_status=0) resp = rx_bss_tm_resp(hapd, expect_dialog=4, expect_status=0)
@ -675,14 +675,14 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List without any entries # Preferred Candidate List without any entries
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=5) req_mode=0x03, dialog_token=5)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
resp = rx_bss_tm_resp(hapd, expect_dialog=5, expect_status=7) resp = rx_bss_tm_resp(hapd, expect_dialog=5, expect_status=7)
dev[0].dump_monitor() dev[0].dump_monitor()
# Preferred Candidate List with a truncated entry # Preferred Candidate List with a truncated entry
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01) req_mode=0x03)
req['payload'] += struct.pack("<BB", 52, 1) req['payload'] += struct.pack("<BB", 52, 1)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
expect_ack(hapd) expect_ack(hapd)
@ -690,7 +690,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with a too short entry # Preferred Candidate List with a too short entry
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=6) req_mode=0x03, dialog_token=6)
req['payload'] += struct.pack("<BB", 52, 0) req['payload'] += struct.pack("<BB", 52, 0)
hapd.mgmt_tx(req) hapd.mgmt_tx(req)
resp = rx_bss_tm_resp(hapd, expect_dialog=6, expect_status=7) resp = rx_bss_tm_resp(hapd, expect_dialog=6, expect_status=7)
@ -698,7 +698,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with a non-matching entry # Preferred Candidate List with a non-matching entry
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=6) req_mode=0x03, dialog_token=6)
req['payload'] += struct.pack("<BB6BLBBB", 52, 13, req['payload'] += struct.pack("<BB6BLBBB", 52, 13,
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
0, 81, 1, 7) 0, 81, 1, 7)
@ -708,7 +708,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with a truncated subelement # Preferred Candidate List with a truncated subelement
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=7) req_mode=0x03, dialog_token=7)
req['payload'] += struct.pack("<BB6BLBBBBB", 52, 13 + 2, req['payload'] += struct.pack("<BB6BLBBBBB", 52, 13 + 2,
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
0, 81, 1, 7, 0, 81, 1, 7,
@ -719,7 +719,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with lots of invalid optional subelements # Preferred Candidate List with lots of invalid optional subelements
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=8) req_mode=0x03, dialog_token=8)
subelems = struct.pack("<BBHB", 1, 3, 0, 100) subelems = struct.pack("<BBHB", 1, 3, 0, 100)
subelems += struct.pack("<BBB", 2, 1, 65) subelems += struct.pack("<BBB", 2, 1, 65)
subelems += struct.pack("<BB", 3, 0) subelems += struct.pack("<BB", 3, 0)
@ -737,7 +737,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with lots of valid optional subelements (twice) # Preferred Candidate List with lots of valid optional subelements (twice)
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=8) req_mode=0x03, dialog_token=8)
# TSF Information # TSF Information
subelems = struct.pack("<BBHH", 1, 4, 0, 100) subelems = struct.pack("<BBHH", 1, 4, 0, 100)
# Condensed Country String # Condensed Country String
@ -764,7 +764,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List with truncated BSS Termination Duration # Preferred Candidate List with truncated BSS Termination Duration
# WNM: Too short BSS termination duration # WNM: Too short BSS termination duration
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=8) req_mode=0x03, dialog_token=8)
# BSS Termination Duration (truncated) # BSS Termination Duration (truncated)
subelems = struct.pack("<BBQB", 4, 9, 0, 10) subelems = struct.pack("<BBQB", 4, 9, 0, 10)
req['payload'] += struct.pack("<BB6BLBBB", 52, 13 + len(subelems), req['payload'] += struct.pack("<BB6BLBBB", 52, 13 + len(subelems),
@ -776,7 +776,7 @@ def test_wnm_bss_tm_req(dev, apdev):
# Preferred Candidate List followed by vendor element # Preferred Candidate List followed by vendor element
req = bss_tm_req(addr, apdev[0]['bssid'], req = bss_tm_req(addr, apdev[0]['bssid'],
req_mode=0x01, dialog_token=8) req_mode=0x03, dialog_token=8)
subelems = b'' subelems = b''
req['payload'] += struct.pack("<BB6BLBBB", 52, 13 + len(subelems), req['payload'] += struct.pack("<BB6BLBBB", 52, 13 + len(subelems),
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
@ -916,7 +916,7 @@ def test_wnm_bss_tm(dev, apdev):
dev[0].dump_monitor() dev[0].dump_monitor()
logger.info("No neighbor list entries") logger.info("No neighbor list entries")
if "OK" not in hapd.request("BSS_TM_REQ " + addr): if "OK" not in hapd.request("BSS_TM_REQ " + addr + " abridged=1"):
raise Exception("BSS_TM_REQ command failed") raise Exception("BSS_TM_REQ command failed")
ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10) ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10)
if ev is None: if ev is None:
@ -928,7 +928,7 @@ def test_wnm_bss_tm(dev, apdev):
dev[0].dump_monitor() dev[0].dump_monitor()
logger.info("Neighbor list entry, but not claimed as Preferred Candidate List") logger.info("Neighbor list entry, but not claimed as Preferred Candidate List")
if "OK" not in hapd.request("BSS_TM_REQ " + addr + " dialog_token=123 neighbor=11:22:33:44:55:66,0x0000,81,3,7"): if "OK" not in hapd.request("BSS_TM_REQ " + addr + " abridged=1 dialog_token=123 neighbor=11:22:33:44:55:66,0x0000,81,3,7"):
raise Exception("BSS_TM_REQ command failed") raise Exception("BSS_TM_REQ command failed")
ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10) ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10)
if ev is None: if ev is None:
@ -938,7 +938,7 @@ def test_wnm_bss_tm(dev, apdev):
dev[0].dump_monitor() dev[0].dump_monitor()
logger.info("Preferred Candidate List (no matching neighbor) without Disassociation Imminent") logger.info("Preferred Candidate List (no matching neighbor) without Disassociation Imminent")
if "OK" not in hapd.request("BSS_TM_REQ " + addr + " pref=1 neighbor=11:22:33:44:55:66,0x0000,81,3,7,0301ff neighbor=22:33:44:55:66:77,0x0000,1,44,7 neighbor=00:11:22:33:44:55,0x0000,81,4,7,03010a"): if "OK" not in hapd.request("BSS_TM_REQ " + addr + " abridged=1 pref=1 neighbor=11:22:33:44:55:66,0x0000,81,3,7,0301ff neighbor=22:33:44:55:66:77,0x0000,1,44,7 neighbor=00:11:22:33:44:55,0x0000,81,4,7,03010a"):
raise Exception("BSS_TM_REQ command failed") raise Exception("BSS_TM_REQ command failed")
ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10) ev = hapd.wait_event(['BSS-TM-RESP'], timeout=10)
if ev is None: if ev is None:
@ -1279,15 +1279,15 @@ def test_wnm_bss_tm_country_us(dev, apdev):
hapd, id = start_wnm_tm(apdev[0], "US", dev[0]) hapd, id = start_wnm_tm(apdev[0], "US", dev[0])
logger.info("Preferred Candidate List (no matching neighbor, known channels)") logger.info("Preferred Candidate List (no matching neighbor, known channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,12,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,2,52,7,03010a neighbor=00:11:22:33:44:57,0x0000,4,100,7 neighbor=00:11:22:33:44:59,0x0000,3,149,7 neighbor=00:11:22:33:44:5b,0x0000,34,1,7 neighbor=00:11:22:33:44:5d,0x0000,5,149,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,12,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,2,52,7,03010a neighbor=00:11:22:33:44:57,0x0000,4,100,7 neighbor=00:11:22:33:44:59,0x0000,3,149,7 neighbor=00:11:22:33:44:5b,0x0000,34,1,7 neighbor=00:11:22:33:44:5d,0x0000,5,149,7")
# Make the test take less time by limiting full scans # Make the test take less time by limiting full scans
dev[0].set_network(id, "scan_freq", "2412") dev[0].set_network(id, "scan_freq", "2412")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,12,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,12,12,7 neighbor=00:11:22:33:44:55,0x0000,2,35,7,03010a neighbor=00:11:22:33:44:56,0x0000,2,65,7 neighbor=00:11:22:33:44:57,0x0000,4,99,7 neighbor=00:11:22:33:44:58,0x0000,4,145,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,12,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,12,12,7 neighbor=00:11:22:33:44:55,0x0000,2,35,7,03010a neighbor=00:11:22:33:44:56,0x0000,2,65,7 neighbor=00:11:22:33:44:57,0x0000,4,99,7 neighbor=00:11:22:33:44:58,0x0000,4,145,7")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:59,0x0000,3,148,7 neighbor=00:11:22:33:44:5a,0x0000,3,162,7 neighbor=00:11:22:33:44:5b,0x0000,34,0,7 neighbor=00:11:22:33:44:5c,0x0000,34,4,7 neighbor=00:11:22:33:44:5d,0x0000,5,148,7 neighbor=00:11:22:33:44:5e,0x0000,5,166,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:59,0x0000,3,148,7 neighbor=00:11:22:33:44:5a,0x0000,3,162,7 neighbor=00:11:22:33:44:5b,0x0000,34,0,7 neighbor=00:11:22:33:44:5c,0x0000,34,4,7 neighbor=00:11:22:33:44:5d,0x0000,5,148,7 neighbor=00:11:22:33:44:5e,0x0000,5,166,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)
@ -1299,15 +1299,15 @@ def test_wnm_bss_tm_country_fi(dev, apdev):
hapd, id = start_wnm_tm(apdev[0], "FI", dev[0]) hapd, id = start_wnm_tm(apdev[0], "FI", dev[0])
logger.info("Preferred Candidate List (no matching neighbor, known channels)") logger.info("Preferred Candidate List (no matching neighbor, known channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,4,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,1,36,7,03010a neighbor=00:11:22:33:44:57,0x0000,3,100,7 neighbor=00:11:22:33:44:59,0x0000,17,149,7 neighbor=00:11:22:33:44:5c,0x0000,18,1,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,4,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,1,36,7,03010a neighbor=00:11:22:33:44:57,0x0000,3,100,7 neighbor=00:11:22:33:44:59,0x0000,17,149,7 neighbor=00:11:22:33:44:5c,0x0000,18,1,7")
# Make the test take less time by limiting full scans # Make the test take less time by limiting full scans
dev[0].set_network(id, "scan_freq", "2412") dev[0].set_network(id, "scan_freq", "2412")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:00,0x0000,4,0,7 neighbor=00:11:22:33:44:01,0x0000,4,14,7 neighbor=00:11:22:33:44:02,0x0000,1,35,7 neighbor=00:11:22:33:44:03,0x0000,1,65,7 neighbor=00:11:22:33:44:04,0x0000,3,99,7 neighbor=00:11:22:33:44:05,0x0000,3,141,7 neighbor=00:11:22:33:44:06,0x0000,17,148,7 neighbor=00:11:22:33:44:07,0x0000,17,170,7 neighbor=00:11:22:33:44:08,0x0000,18,0,7 neighbor=00:11:22:33:44:09,0x0000,18,5,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:00,0x0000,4,0,7 neighbor=00:11:22:33:44:01,0x0000,4,14,7 neighbor=00:11:22:33:44:02,0x0000,1,35,7 neighbor=00:11:22:33:44:03,0x0000,1,65,7 neighbor=00:11:22:33:44:04,0x0000,3,99,7 neighbor=00:11:22:33:44:05,0x0000,3,141,7 neighbor=00:11:22:33:44:06,0x0000,17,148,7 neighbor=00:11:22:33:44:07,0x0000,17,170,7 neighbor=00:11:22:33:44:08,0x0000,18,0,7 neighbor=00:11:22:33:44:09,0x0000,18,5,7")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:00,0x0000,0,0,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:00,0x0000,0,0,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)
@ -1319,12 +1319,12 @@ def test_wnm_bss_tm_country_jp(dev, apdev):
hapd, id = start_wnm_tm(apdev[0], "JP", dev[0]) hapd, id = start_wnm_tm(apdev[0], "JP", dev[0])
logger.info("Preferred Candidate List (no matching neighbor, known channels)") logger.info("Preferred Candidate List (no matching neighbor, known channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,30,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,31,14,7,03010a neighbor=00:11:22:33:44:57,0x0000,1,36,7 neighbor=00:11:22:33:44:59,0x0000,34,100,7 neighbor=00:11:22:33:44:5c,0x0000,59,1,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,30,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,31,14,7,03010a neighbor=00:11:22:33:44:57,0x0000,1,36,7 neighbor=00:11:22:33:44:59,0x0000,34,100,7 neighbor=00:11:22:33:44:5c,0x0000,59,1,7")
# Make the test take less time by limiting full scans # Make the test take less time by limiting full scans
dev[0].set_network(id, "scan_freq", "2412") dev[0].set_network(id, "scan_freq", "2412")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,30,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,30,14,7 neighbor=00:11:22:33:44:56,0x0000,31,13,7 neighbor=00:11:22:33:44:57,0x0000,1,33,7 neighbor=00:11:22:33:44:58,0x0000,1,65,7 neighbor=00:11:22:33:44:5a,0x0000,34,99,7 neighbor=00:11:22:33:44:5b,0x0000,34,141,7 neighbor=00:11:22:33:44:5d,0x0000,59,0,7 neighbor=00:11:22:33:44:5e,0x0000,59,4,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,30,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,30,14,7 neighbor=00:11:22:33:44:56,0x0000,31,13,7 neighbor=00:11:22:33:44:57,0x0000,1,33,7 neighbor=00:11:22:33:44:58,0x0000,1,65,7 neighbor=00:11:22:33:44:5a,0x0000,34,99,7 neighbor=00:11:22:33:44:5b,0x0000,34,141,7 neighbor=00:11:22:33:44:5d,0x0000,59,0,7 neighbor=00:11:22:33:44:5e,0x0000,59,4,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)
@ -1336,12 +1336,12 @@ def test_wnm_bss_tm_country_cn(dev, apdev):
hapd, id = start_wnm_tm(apdev[0], "CN", dev[0]) hapd, id = start_wnm_tm(apdev[0], "CN", dev[0])
logger.info("Preferred Candidate List (no matching neighbor, known channels)") logger.info("Preferred Candidate List (no matching neighbor, known channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,7,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,1,36,7,03010a neighbor=00:11:22:33:44:57,0x0000,3,149,7 neighbor=00:11:22:33:44:59,0x0000,6,149,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,7,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,1,36,7,03010a neighbor=00:11:22:33:44:57,0x0000,3,149,7 neighbor=00:11:22:33:44:59,0x0000,6,149,7")
# Make the test take less time by limiting full scans # Make the test take less time by limiting full scans
dev[0].set_network(id, "scan_freq", "2412") dev[0].set_network(id, "scan_freq", "2412")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,7,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,7,14,7 neighbor=00:11:22:33:44:56,0x0000,1,35,7 neighbor=00:11:22:33:44:57,0x0000,1,65,7 neighbor=00:11:22:33:44:58,0x0000,3,148,7 neighbor=00:11:22:33:44:5a,0x0000,3,166,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,7,0,7,0301ff neighbor=22:33:44:55:66:77,0x0000,7,14,7 neighbor=00:11:22:33:44:56,0x0000,1,35,7 neighbor=00:11:22:33:44:57,0x0000,1,65,7 neighbor=00:11:22:33:44:58,0x0000,3,148,7 neighbor=00:11:22:33:44:5a,0x0000,3,166,7 neighbor=00:11:22:33:44:5f,0x0000,0,0,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)
@ -1360,15 +1360,15 @@ def run_wnm_bss_tm_global(dev, apdev, country, country3):
hapd, id = start_wnm_tm(apdev[0], country, dev[0], country3=country3) hapd, id = start_wnm_tm(apdev[0], country, dev[0], country3=country3)
logger.info("Preferred Candidate List (no matching neighbor, known channels)") logger.info("Preferred Candidate List (no matching neighbor, known channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=11:22:33:44:55:66,0x0000,81,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,82,14,7,03010a neighbor=00:11:22:33:44:57,0x0000,83,1,7 neighbor=00:11:22:33:44:59,0x0000,115,36,7 neighbor=00:11:22:33:44:5a,0x0000,121,100,7 neighbor=00:11:22:33:44:5c,0x0000,124,149,7 neighbor=00:11:22:33:44:5d,0x0000,125,149,7 neighbor=00:11:22:33:44:5e,0x0000,128,42,7 neighbor=00:11:22:33:44:5f,0x0000,129,50,7 neighbor=00:11:22:33:44:60,0x0000,180,1,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=11:22:33:44:55:66,0x0000,81,3,7,0301ff neighbor=00:11:22:33:44:55,0x0000,82,14,7,03010a neighbor=00:11:22:33:44:57,0x0000,83,1,7 neighbor=00:11:22:33:44:59,0x0000,115,36,7 neighbor=00:11:22:33:44:5a,0x0000,121,100,7 neighbor=00:11:22:33:44:5c,0x0000,124,149,7 neighbor=00:11:22:33:44:5d,0x0000,125,149,7 neighbor=00:11:22:33:44:5e,0x0000,128,42,7 neighbor=00:11:22:33:44:5f,0x0000,129,50,7 neighbor=00:11:22:33:44:60,0x0000,180,1,7")
# Make the test take less time by limiting full scans # Make the test take less time by limiting full scans
dev[0].set_network(id, "scan_freq", "2412") dev[0].set_network(id, "scan_freq", "2412")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:00,0x0000,81,0,7 neighbor=00:11:22:33:44:01,0x0000,81,14,7 neighbor=00:11:22:33:44:02,0x0000,82,13,7 neighbor=00:11:22:33:44:03,0x0000,83,0,7 neighbor=00:11:22:33:44:04,0x0000,83,14,7 neighbor=00:11:22:33:44:05,0x0000,115,35,7 neighbor=00:11:22:33:44:06,0x0000,115,65,7 neighbor=00:11:22:33:44:07,0x0000,121,99,7 neighbor=00:11:22:33:44:08,0x0000,121,141,7 neighbor=00:11:22:33:44:09,0x0000,124,148,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:00,0x0000,81,0,7 neighbor=00:11:22:33:44:01,0x0000,81,14,7 neighbor=00:11:22:33:44:02,0x0000,82,13,7 neighbor=00:11:22:33:44:03,0x0000,83,0,7 neighbor=00:11:22:33:44:04,0x0000,83,14,7 neighbor=00:11:22:33:44:05,0x0000,115,35,7 neighbor=00:11:22:33:44:06,0x0000,115,65,7 neighbor=00:11:22:33:44:07,0x0000,121,99,7 neighbor=00:11:22:33:44:08,0x0000,121,141,7 neighbor=00:11:22:33:44:09,0x0000,124,148,7")
logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)") logger.info("Preferred Candidate List (no matching neighbor, unknown channels 2)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:00,0x0000,124,162,7 neighbor=00:11:22:33:44:01,0x0000,125,148,7 neighbor=00:11:22:33:44:02,0x0000,125,170,7 neighbor=00:11:22:33:44:03,0x0000,128,35,7 neighbor=00:11:22:33:44:04,0x0000,128,162,7 neighbor=00:11:22:33:44:05,0x0000,129,49,7 neighbor=00:11:22:33:44:06,0x0000,129,115,7 neighbor=00:11:22:33:44:07,0x0000,180,0,7 neighbor=00:11:22:33:44:08,0x0000,180,5,7 neighbor=00:11:22:33:44:09,0x0000,0,0,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:00,0x0000,124,162,7 neighbor=00:11:22:33:44:01,0x0000,125,148,7 neighbor=00:11:22:33:44:02,0x0000,125,170,7 neighbor=00:11:22:33:44:03,0x0000,128,35,7 neighbor=00:11:22:33:44:04,0x0000,128,162,7 neighbor=00:11:22:33:44:05,0x0000,129,49,7 neighbor=00:11:22:33:44:06,0x0000,129,115,7 neighbor=00:11:22:33:44:07,0x0000,180,0,7 neighbor=00:11:22:33:44:08,0x0000,180,5,7 neighbor=00:11:22:33:44:09,0x0000,0,0,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)
@ -1379,7 +1379,7 @@ def test_wnm_bss_tm_op_class_0(dev, apdev):
hapd, id = start_wnm_tm(apdev[0], "US", dev[0]) hapd, id = start_wnm_tm(apdev[0], "US", dev[0])
logger.info("Preferred Candidate List (no matching neighbor, invalid op class specified for channels)") logger.info("Preferred Candidate List (no matching neighbor, invalid op class specified for channels)")
wnm_bss_tm_check(hapd, dev[0], "pref=1 neighbor=00:11:22:33:44:59,0x0000,0,149,7 neighbor=00:11:22:33:44:5b,0x0000,0,1,7") wnm_bss_tm_check(hapd, dev[0], "pref=1 abridged=1 neighbor=00:11:22:33:44:59,0x0000,0,149,7 neighbor=00:11:22:33:44:5b,0x0000,0,1,7")
finally: finally:
stop_wnm_tm(hapd, dev) stop_wnm_tm(hapd, dev)