]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: OWE transition mode and oldest unknown BSS entry removal
authorJouni Malinen <quic_jouni@quicinc.com>
Tue, 21 Jan 2025 17:38:05 +0000 (19:38 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 21 Jan 2025 17:38:05 +0000 (19:38 +0200)
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
tests/hwsim/test_owe.py

index 98254e54b59caea01d79112ab44c7a66c1d5143e..e86eed0d3744186e72e994d731754072ef69d50b 100644 (file)
@@ -184,7 +184,15 @@ def test_owe_transition_mode_mismatch3(dev, apdev):
     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()
@@ -228,6 +236,27 @@ def run_owe_transition_mode(dev, apdev, adv_bssid0=None, adv_bssid1=None):
     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")