]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Pass extra_bss_membership_selectors to nl80211 driver
authorBenjamin Berg <benjamin.berg@intel.com>
Wed, 8 Jan 2025 09:10:33 +0000 (10:10 +0100)
committerJouni Malinen <j@w1.fi>
Sun, 26 Jan 2025 20:06:18 +0000 (22:06 +0200)
mac80211 will start checking whether the BSS membership selectors
present in the supported rates set are supported by the local station.
Add the appropriate options so that the check is bypassed when
implemented on newer kernels.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Reviewed-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
tests/hwsim/test_ap_ht.py
tests/hwsim/test_ap_vht.py
tests/hwsim/test_he.py
tests/hwsim/test_owe.py

index 4ae02234e0fab8802d1e3a80b4687e30ae912a14..01e874fc8d90637a72c00e9aeee8ce9b496a0948 100644 (file)
@@ -871,11 +871,14 @@ def test_ap_require_ht(dev, apdev):
               "require_ht": "1"}
     hapd = hostapd.add_ap(apdev[0], params)
 
-    dev[1].connect("require-ht", key_mgmt="NONE", scan_freq="2412",
-                   disable_ht="1", wait_connect=False)
+    wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
+    wpas.interface_add("wlan5", drv_params="extra_bss_membership_selectors=127")
+
+    wpas.connect("require-ht", key_mgmt="NONE", scan_freq="2412",
+                 disable_ht="1", wait_connect=False)
     dev[0].connect("require-ht", key_mgmt="NONE", scan_freq="2412")
-    ev = dev[1].wait_event(["CTRL-EVENT-ASSOC-REJECT"])
-    dev[1].request("DISCONNECT")
+    ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"])
+    wpas.request("DISCONNECT")
     if ev is None:
         raise Exception("Association rejection timed out")
     if "status_code=27" not in ev:
@@ -912,11 +915,14 @@ def test_ap_require_ht_limited_rates(dev, apdev):
               "require_ht": "1"}
     hapd = hostapd.add_ap(apdev[0], params)
 
-    dev[1].connect("require-ht", key_mgmt="NONE", scan_freq="2412",
-                   disable_ht="1", wait_connect=False)
+    wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
+    wpas.interface_add("wlan5", drv_params="extra_bss_membership_selectors=127")
+
+    wpas.connect("require-ht", key_mgmt="NONE", scan_freq="2412",
+                 disable_ht="1", wait_connect=False)
     dev[0].connect("require-ht", key_mgmt="NONE", scan_freq="2412")
-    ev = dev[1].wait_event(["CTRL-EVENT-ASSOC-REJECT"])
-    dev[1].request("DISCONNECT")
+    ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"])
+    wpas.request("DISCONNECT")
     if ev is None:
         raise Exception("Association rejection timed out")
     if "status_code=27" not in ev:
index 5ba0227e765ed9d11cda7fa1087560db8887eabb..88ea1dd9716d9ce4ee2090476c9b7c4dc6e7f4c8 100644 (file)
@@ -211,17 +211,21 @@ def test_ap_vht80_params(dev, apdev):
                   "require_vht": "1"}
         hapd = hostapd.add_ap(apdev[0], params)
 
-        dev[1].connect("vht", key_mgmt="NONE", scan_freq="5180",
-                       disable_vht="1", wait_connect=False)
+        wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
+        wpas.interface_add("wlan5",
+                           drv_params="extra_bss_membership_selectors=126")
+
+        wpas.connect("vht", key_mgmt="NONE", scan_freq="5180",
+                     disable_vht="1", wait_connect=False)
         dev[0].connect("vht", key_mgmt="NONE", scan_freq="5180")
         dev[2].connect("vht", key_mgmt="NONE", scan_freq="5180",
                        disable_sgi="1")
-        ev = dev[1].wait_event(["CTRL-EVENT-ASSOC-REJECT"])
+        ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"])
         if ev is None:
             raise Exception("Association rejection timed out")
         if "status_code=104" not in ev:
             raise Exception("Unexpected rejection status code")
-        dev[1].request("DISCONNECT")
+        wpas.request("DISCONNECT")
         hwsim_utils.test_connectivity(dev[0], hapd)
         sta0 = hapd.get_sta(dev[0].own_addr())
         sta2 = hapd.get_sta(dev[2].own_addr())
index 917313feeb3e3895fef6ffa400db894173598795..9c4cfa4be60b482ff9251c91663e467d6f32a7b3 100644 (file)
@@ -327,21 +327,25 @@ def test_he80_params(dev, apdev):
                   "he_rts_threshold":"1"}
         hapd = hostapd.add_ap(apdev[0], params)
 
-        dev[1].connect("he", key_mgmt="NONE", scan_freq="5180",
-                       disable_vht="1", wait_connect=False)
+        wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
+        wpas.interface_add("wlan5",
+                           drv_params="extra_bss_membership_selectors=126,122")
+
+        wpas.connect("he", key_mgmt="NONE", scan_freq="5180",
+                     disable_vht="1", wait_connect=False)
         dev[0].connect("he", key_mgmt="NONE", scan_freq="5180")
         dev[2].connect("he", key_mgmt="NONE", scan_freq="5180",
                        disable_sgi="1")
-        ev = dev[1].wait_event(["CTRL-EVENT-ASSOC-REJECT"])
+        ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"])
         if ev is None:
             raise Exception("Association rejection timed out")
         if "status_code=104" not in ev:
             raise Exception("Unexpected rejection status code")
-        dev[1].request("DISCONNECT")
-        dev[1].request("REMOVE_NETWORK all")
-        dev[1].dump_monitor()
-        dev[1].connect("he", key_mgmt="NONE", scan_freq="5180",
-                       disable_he="1", wait_connect=False)
+        wpas.request("DISCONNECT")
+        wpas.request("REMOVE_NETWORK all")
+        wpas.dump_monitor()
+        wpas.connect("he", key_mgmt="NONE", scan_freq="5180",
+                     disable_he="1", wait_connect=False)
         hwsim_utils.test_connectivity(dev[0], hapd)
         sta0 = hapd.get_sta(dev[0].own_addr())
         sta2 = hapd.get_sta(dev[2].own_addr())
@@ -351,7 +355,7 @@ def test_he80_params(dev, apdev):
             raise Exception("dev[0] did not support SGI")
         if capab2 & 0x60 != 0:
             raise Exception("dev[2] claimed support for SGI")
-        ev = dev[1].wait_event(["CTRL-EVENT-ASSOC-REJECT"])
+        ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"])
         if ev is None:
             raise Exception("Association rejection timed out (2)")
         if "status_code=124" not in ev:
index e86eed0d3744186e72e994d731754072ef69d50b..6628150d3d608fcd78918411bf295d1ba3b853c7 100644 (file)
@@ -778,11 +778,13 @@ def test_owe_assoc_reject(dev, apdev):
     bssid = hapd.own_addr()
 
     # First, reject two associations with HT-required (i.e., not OWE related)
-    dev[0].scan_for_bss(bssid, freq="2412")
-    dev[0].connect("owe", key_mgmt="OWE", ieee80211w="2",
-                   disable_ht="1", scan_freq="2412", wait_connect=False)
+    wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
+    wpas.interface_add("wlan5", drv_params="extra_bss_membership_selectors=127")
+    wpas.scan_for_bss(bssid, freq="2412")
+    wpas.connect("owe", key_mgmt="OWE", ieee80211w="2",
+                 disable_ht="1", scan_freq="2412", wait_connect=False)
     for i in range(0, 2):
-        ev = dev[0].wait_event(["CTRL-EVENT-ASSOC-REJECT"], timeout=10)
+        ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT"], timeout=10)
         if ev is None:
             raise Exception("Association rejection not reported")
 
@@ -790,8 +792,8 @@ def test_owe_assoc_reject(dev, apdev):
     # attempt instead of having moved to testing another group.
     hapd.set("require_ht", "0")
     for i in range(0, 2):
-        ev = dev[0].wait_event(["CTRL-EVENT-ASSOC-REJECT",
-                                "CTRL-EVENT-CONNECTED"], timeout=10)
+        ev = wpas.wait_event(["CTRL-EVENT-ASSOC-REJECT",
+                             "CTRL-EVENT-CONNECTED"], timeout=10)
         if ev is None:
             raise Exception("Association result not reported")
         if "CTRL-EVENT-CONNECTED" in ev: