aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch
diff options
context:
space:
mode:
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.patch100
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])