run_owe_transition_mode(dev, apdev, adv_bssid0="02:11:22:33:44:55",
adv_bssid1="02:11:22:33:44:66")
-def run_owe_transition_mode(dev, apdev, adv_bssid0=None, adv_bssid1=None):
+def test_owe_transition_mode_bss_limit(dev, apdev):
+ """Opportunistic Wireless Encryption transition mode (BSS limit)"""
+ try:
+ run_owe_transition_mode(dev, apdev, bss_limit=True)
+ finally:
+ dev[0].set("bss_max_count", "200")
+
+def run_owe_transition_mode(dev, apdev, adv_bssid0=None, adv_bssid1=None,
+ bss_limit=False):
if "OWE" not in dev[0].get_capability("key_mgmt"):
raise HwsimSkip("OWE not supported")
dev[0].flush_scan_cache()
if val != "OWE":
raise Exception("Unexpected key_mgmt: " + val)
+ if bss_limit:
+ id = dev[1].add_network()
+ dev[1].set_network(id, "mode", "2")
+ dev[1].set_network_quoted(id, "ssid", "owe-test")
+ dev[1].set_network(id, "key_mgmt", "NONE")
+ dev[1].set_network(id, "frequency", "2412")
+ dev[1].set_network(id, "scan_freq", "2412")
+ dev[1].select_network(id)
+ dev[1].wait_connected()
+
+ # Verify that wpa_s->current_bss does not become invalid if oldest BSS
+ # entries need to be removed.
+ dev[0].set("bss_max_count", "1")
+ dev[0].scan(freq=2412, type="ONLY")
+ dev[0].scan(freq=2412, type="ONLY")
+ logger.info("STATUS:\n" + dev[0].request("STATUS"))
+ logger.info("STATUS:\n" + dev[0].request("BSS CURRENT"))
+
+ dev[1].request("DISCONNECT")
+ dev[1].wait_disconnected()
+
logger.info("Move to OWE only mode (disable transition mode)")
dev[0].request("DISCONNECT")