def run_roams(dev, apdev, hapd0, hapd1, ssid, passphrase, over_ds=False,
sae=False, eap=False, fail_test=False, roams=1,
- pairwise_cipher="CCMP", group_cipher="TKIP CCMP", ptk_rekey="0"):
+ pairwise_cipher="CCMP", group_cipher="TKIP CCMP", ptk_rekey="0",
+ test_connectivity=True):
logger.info("Connect to first AP")
if eap:
dev.connect(ssid, key_mgmt="FT-EAP", proto="WPA2", ieee80211w="1",
ap2 = apdev[0]
hapd1ap = hapd1
hapd2ap = hapd0
- hwsim_utils.test_connectivity(dev, hapd1ap)
+ if test_connectivity:
+ hwsim_utils.test_connectivity(dev, hapd1ap)
dev.scan_for_bss(ap2['bssid'], freq="2412")
return
if dev.get_status_field('bssid') != ap2['bssid']:
raise Exception("Did not connect to correct AP")
- if i == 0 or i == roams - 1:
+ if (i == 0 or i == roams - 1) and test_connectivity:
hwsim_utils.test_connectivity(dev, hapd2ap)
logger.info("Roam back to the first AP")
dev.roam(ap1['bssid'])
if dev.get_status_field('bssid') != ap1['bssid']:
raise Exception("Did not connect to correct AP")
- if i == 0 or i == roams - 1:
+ if (i == 0 or i == roams - 1) and test_connectivity:
hwsim_utils.test_connectivity(dev, hapd1ap)
def test_ap_ft(dev, apdev):
dev[0].request("DISCONNECT")
finally:
dev[0].request("VENDOR_ELEM_REMOVE 13 *")
+
+def test_ap_ft_ric(dev, apdev):
+ """WPA2-PSK-FT AP and RIC"""
+ ssid = "test-ft"
+ passphrase="12345678"
+
+ params = ft_params1(ssid=ssid, passphrase=passphrase)
+ hapd0 = hostapd.add_ap(apdev[0], params)
+ params = ft_params2(ssid=ssid, passphrase=passphrase)
+ hapd1 = hostapd.add_ap(apdev[1], params)
+
+ dev[0].set("ric_ies", "")
+ dev[0].set("ric_ies", '""')
+ if "FAIL" not in dev[0].request("SET ric_ies q"):
+ raise Exception("Invalid ric_ies value accepted")
+
+ tests = [ "3900",
+ "3900ff04eeeeeeee",
+ "390400000000",
+ "390400000000" + "390400000000",
+ "390400000000" + "dd050050f20202",
+ "390400000000" + "dd3d0050f2020201" + 55*"00",
+ "390400000000" + "dd3d0050f2020201aa300010270000000000000000000000000000000000000000000000000000ffffff7f00000000000000000000000040420f00ffff0000",
+ "390401010000" + "dd3d0050f2020201aa3000dc050000000000000000000000000000000000000000000000000000dc050000000000000000000000000000808d5b0028230000" ]
+ for t in tests:
+ dev[0].set("ric_ies", t)
+ run_roams(dev[0], apdev, hapd0, hapd1, ssid, passphrase,
+ test_connectivity=False)
+ dev[0].request("REMOVE_NETWORK all")
+ dev[0].wait_disconnected()
+ dev[0].dump_monitor()