diff options
Diffstat (limited to 'package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch')
-rw-r--r-- | package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch b/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch new file mode 100644 index 0000000000..1f3aed92bd --- /dev/null +++ b/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch @@ -0,0 +1,100 @@ +From 7488e0ade6dffb6df4c1fb6526a9f3ede0eb18ef Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <jouni@codeaurora.org> +Date: Thu, 20 Dec 2018 12:41:00 +0200 +Subject: [PATCH] tests: Multi-AP association + +Signed-off-by: Jouni Malinen <jouni@codeaurora.org> +--- + tests/hwsim/test_multi_ap.py | 73 ++++++++++++++++++++++++++++++++++++ + tests/hwsim/wpasupplicant.py | 3 +- + 2 files changed, 75 insertions(+), 1 deletion(-) + create mode 100644 tests/hwsim/test_multi_ap.py + +--- /dev/null ++++ b/tests/hwsim/test_multi_ap.py +@@ -0,0 +1,73 @@ ++# Test cases for Multi-AP ++# Copyright (c) 2018, The Linux Foundation ++# ++# This software may be distributed under the terms of the BSD license. ++# See README for more details. ++ ++import hostapd ++ ++def test_multi_ap_association(dev, apdev): ++ """Multi-AP association in backhaul BSS""" ++ run_multi_ap_association(dev, apdev, 1) ++ dev[1].connect("multi-ap", psk="12345678", scan_freq="2412", ++ wait_connect=False) ++ ev = dev[1].wait_event([ "CTRL-EVENT-DISCONNECTED", ++ "CTRL-EVENT-CONNECTED", ++ "CTRL-EVENT-ASSOC-REJECT" ], ++ timeout=5) ++ dev[1].request("DISCONNECT") ++ if ev is None: ++ raise Exception("Connection result not reported") ++ if "CTRL-EVENT-ASSOC-REJECT" not in ev: ++ raise Exception("Association rejection not reported") ++ if "status_code=12" not in ev: ++ raise Exception("Unexpected association status code: " + ev) ++ ++def test_multi_ap_association_shared_bss(dev, apdev): ++ """Multi-AP association in backhaul BSS (with fronthaul BSS enabled)""" ++ run_multi_ap_association(dev, apdev, 3) ++ dev[1].connect("multi-ap", psk="12345678", scan_freq="2412") ++ ++def run_multi_ap_association(dev, apdev, multi_ap): ++ params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") ++ params["multi_ap"] = str(multi_ap) ++ hapd = hostapd.add_ap(apdev[0], params) ++ ++ dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", ++ scan_freq="2412") ++ ++def test_multi_ap_disabled_on_ap(dev, apdev): ++ """Multi-AP association attempt when disabled on AP""" ++ params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") ++ hapd = hostapd.add_ap(apdev[0], params) ++ ++ dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", ++ scan_freq="2412", wait_connect=False) ++ ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED", ++ "CTRL-EVENT-CONNECTED" ], ++ timeout=5) ++ dev[0].request("DISCONNECT") ++ if ev is None: ++ raise Exception("Connection result not reported") ++ if "CTRL-EVENT-DISCONNECTED" not in ev: ++ raise Exception("Unexpected connection result") ++ ++def test_multi_ap_fronthaul_on_ap(dev, apdev): ++ """Multi-AP association attempt when only fronthaul BSS on AP""" ++ params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") ++ params["multi_ap"] = "2" ++ hapd = hostapd.add_ap(apdev[0], params) ++ ++ dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", ++ scan_freq="2412", wait_connect=False) ++ ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED", ++ "CTRL-EVENT-CONNECTED", ++ "CTRL-EVENT-ASSOC-REJECT" ], ++ timeout=5) ++ dev[0].request("DISCONNECT") ++ if ev is None: ++ raise Exception("Connection result not reported") ++ if "CTRL-EVENT-ASSOC-REJECT" not in ev: ++ raise Exception("Association rejection not reported") ++ if "status_code=12" not in ev: ++ raise Exception("Unexpected association status code: " + ev) +--- a/tests/hwsim/wpasupplicant.py ++++ b/tests/hwsim/wpasupplicant.py +@@ -1031,7 +1031,8 @@ class WpaSupplicant: + "dpp_csign", "dpp_csign_expiry", + "dpp_netaccesskey", "dpp_netaccesskey_expiry", + "group_mgmt", "owe_group", +- "roaming_consortium_selection" ] ++ "roaming_consortium_selection", "multi_ap_backhaul_sta" ] ++ + for field in not_quoted: + if field in kwargs and kwargs[field]: + self.set_network(id, field, kwargs[field]) |