tests: Check update misbehaving MBO AP test to include roam
APs PMF capabilities can differ. wpa_supplicant should be able to disable and enable MBO when roaming to and from a misbehaving MBO AP that doesn't support PMF. Verify that this is indeed happening. Signed-off-by: Matthew Wang <matthewmwang@chromium.org>
This commit is contained in:
parent
daa0a22e45
commit
58c5bd762e
1 changed files with 24 additions and 7 deletions
|
@ -543,15 +543,32 @@ def test_mbo_without_pmf(dev, apdev):
|
||||||
def test_mbo_without_pmf_workaround(dev, apdev):
|
def test_mbo_without_pmf_workaround(dev, apdev):
|
||||||
"""MBO and WPA2 without PMF on misbehaving AP"""
|
"""MBO and WPA2 without PMF on misbehaving AP"""
|
||||||
ssid = "test-wnm-mbo"
|
ssid = "test-wnm-mbo"
|
||||||
params = {'ssid': ssid, "wpa": '2',
|
params0 = {'ssid': ssid, "wpa": '2',
|
||||||
"wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP",
|
"wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP",
|
||||||
"wpa_passphrase": "12345678",
|
"wpa_passphrase": "12345678",
|
||||||
"vendor_elements": "dd07506f9a16010100"}
|
"vendor_elements": "dd07506f9a16010100"}
|
||||||
hapd = hostapd.add_ap(apdev[0], params)
|
params1 = {'ssid': ssid, "mbo": '1', "wpa": '2',
|
||||||
|
"wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP",
|
||||||
|
"wpa_passphrase": "12345678", "ieee80211w": "1"}
|
||||||
|
hapd0 = hostapd.add_ap(apdev[0], params0)
|
||||||
dev[0].connect(ssid, psk="12345678", key_mgmt="WPA-PSK",
|
dev[0].connect(ssid, psk="12345678", key_mgmt="WPA-PSK",
|
||||||
proto="WPA2", ieee80211w="1", scan_freq="2412")
|
proto="WPA2", ieee80211w="1", scan_freq="2412")
|
||||||
hapd.wait_sta()
|
hapd0.wait_sta()
|
||||||
sta = hapd.get_sta(dev[0].own_addr())
|
sta = hapd0.get_sta(dev[0].own_addr())
|
||||||
|
ext_capab = bytearray(binascii.unhexlify(sta['ext_capab']))
|
||||||
|
if ext_capab[2] & 0x08:
|
||||||
|
raise Exception("STA did not disable BSS Transition capability")
|
||||||
|
hapd1 = hostapd.add_ap(apdev[1], params1)
|
||||||
|
dev[0].scan_for_bss(hapd1.own_addr(), 2412, force_scan=True)
|
||||||
|
dev[0].roam(hapd1.own_addr())
|
||||||
|
hapd1.wait_sta()
|
||||||
|
sta = hapd1.get_sta(dev[0].own_addr())
|
||||||
|
ext_capab = bytearray(binascii.unhexlify(sta['ext_capab']))
|
||||||
|
if not ext_capab[2] & 0x08:
|
||||||
|
raise Exception("STA disabled BSS Transition capability")
|
||||||
|
dev[0].roam(hapd0.own_addr())
|
||||||
|
hapd0.wait_sta()
|
||||||
|
sta = hapd0.get_sta(dev[0].own_addr())
|
||||||
ext_capab = bytearray(binascii.unhexlify(sta['ext_capab']))
|
ext_capab = bytearray(binascii.unhexlify(sta['ext_capab']))
|
||||||
if ext_capab[2] & 0x08:
|
if ext_capab[2] & 0x08:
|
||||||
raise Exception("STA did not disable BSS Transition capability")
|
raise Exception("STA did not disable BSS Transition capability")
|
||||||
|
|
Loading…
Reference in a new issue