OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | From 7488e0ade6dffb6df4c1fb6526a9f3ede0eb18ef Mon Sep 17 00:00:00 2001 |
2 | From: Jouni Malinen <jouni@codeaurora.org> |
||
3 | Date: Thu, 20 Dec 2018 12:41:00 +0200 |
||
4 | Subject: [PATCH] tests: Multi-AP association |
||
5 | |||
6 | Signed-off-by: Jouni Malinen <jouni@codeaurora.org> |
||
7 | --- |
||
8 | tests/hwsim/test_multi_ap.py | 73 ++++++++++++++++++++++++++++++++++++ |
||
9 | tests/hwsim/wpasupplicant.py | 3 +- |
||
10 | 2 files changed, 75 insertions(+), 1 deletion(-) |
||
11 | create mode 100644 tests/hwsim/test_multi_ap.py |
||
12 | |||
13 | --- /dev/null |
||
14 | +++ b/tests/hwsim/test_multi_ap.py |
||
15 | @@ -0,0 +1,73 @@ |
||
16 | +# Test cases for Multi-AP |
||
17 | +# Copyright (c) 2018, The Linux Foundation |
||
18 | +# |
||
19 | +# This software may be distributed under the terms of the BSD license. |
||
20 | +# See README for more details. |
||
21 | + |
||
22 | +import hostapd |
||
23 | + |
||
24 | +def test_multi_ap_association(dev, apdev): |
||
25 | + """Multi-AP association in backhaul BSS""" |
||
26 | + run_multi_ap_association(dev, apdev, 1) |
||
27 | + dev[1].connect("multi-ap", psk="12345678", scan_freq="2412", |
||
28 | + wait_connect=False) |
||
29 | + ev = dev[1].wait_event([ "CTRL-EVENT-DISCONNECTED", |
||
30 | + "CTRL-EVENT-CONNECTED", |
||
31 | + "CTRL-EVENT-ASSOC-REJECT" ], |
||
32 | + timeout=5) |
||
33 | + dev[1].request("DISCONNECT") |
||
34 | + if ev is None: |
||
35 | + raise Exception("Connection result not reported") |
||
36 | + if "CTRL-EVENT-ASSOC-REJECT" not in ev: |
||
37 | + raise Exception("Association rejection not reported") |
||
38 | + if "status_code=12" not in ev: |
||
39 | + raise Exception("Unexpected association status code: " + ev) |
||
40 | + |
||
41 | +def test_multi_ap_association_shared_bss(dev, apdev): |
||
42 | + """Multi-AP association in backhaul BSS (with fronthaul BSS enabled)""" |
||
43 | + run_multi_ap_association(dev, apdev, 3) |
||
44 | + dev[1].connect("multi-ap", psk="12345678", scan_freq="2412") |
||
45 | + |
||
46 | +def run_multi_ap_association(dev, apdev, multi_ap): |
||
47 | + params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") |
||
48 | + params["multi_ap"] = str(multi_ap) |
||
49 | + hapd = hostapd.add_ap(apdev[0], params) |
||
50 | + |
||
51 | + dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", |
||
52 | + scan_freq="2412") |
||
53 | + |
||
54 | +def test_multi_ap_disabled_on_ap(dev, apdev): |
||
55 | + """Multi-AP association attempt when disabled on AP""" |
||
56 | + params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") |
||
57 | + hapd = hostapd.add_ap(apdev[0], params) |
||
58 | + |
||
59 | + dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", |
||
60 | + scan_freq="2412", wait_connect=False) |
||
61 | + ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED", |
||
62 | + "CTRL-EVENT-CONNECTED" ], |
||
63 | + timeout=5) |
||
64 | + dev[0].request("DISCONNECT") |
||
65 | + if ev is None: |
||
66 | + raise Exception("Connection result not reported") |
||
67 | + if "CTRL-EVENT-DISCONNECTED" not in ev: |
||
68 | + raise Exception("Unexpected connection result") |
||
69 | + |
||
70 | +def test_multi_ap_fronthaul_on_ap(dev, apdev): |
||
71 | + """Multi-AP association attempt when only fronthaul BSS on AP""" |
||
72 | + params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678") |
||
73 | + params["multi_ap"] = "2" |
||
74 | + hapd = hostapd.add_ap(apdev[0], params) |
||
75 | + |
||
76 | + dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1", |
||
77 | + scan_freq="2412", wait_connect=False) |
||
78 | + ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED", |
||
79 | + "CTRL-EVENT-CONNECTED", |
||
80 | + "CTRL-EVENT-ASSOC-REJECT" ], |
||
81 | + timeout=5) |
||
82 | + dev[0].request("DISCONNECT") |
||
83 | + if ev is None: |
||
84 | + raise Exception("Connection result not reported") |
||
85 | + if "CTRL-EVENT-ASSOC-REJECT" not in ev: |
||
86 | + raise Exception("Association rejection not reported") |
||
87 | + if "status_code=12" not in ev: |
||
88 | + raise Exception("Unexpected association status code: " + ev) |
||
89 | --- a/tests/hwsim/wpasupplicant.py |
||
90 | +++ b/tests/hwsim/wpasupplicant.py |
||
91 | @@ -1031,7 +1031,8 @@ class WpaSupplicant: |
||
92 | "dpp_csign", "dpp_csign_expiry", |
||
93 | "dpp_netaccesskey", "dpp_netaccesskey_expiry", |
||
94 | "group_mgmt", "owe_group", |
||
95 | - "roaming_consortium_selection" ] |
||
96 | + "roaming_consortium_selection", "multi_ap_backhaul_sta" ] |
||
97 | + |
||
98 | for field in not_quoted: |
||
99 | if field in kwargs and kwargs[field]: |
||
100 | self.set_network(id, field, kwargs[field]) |