if "config_error=12" not in ev:
raise Exception("PBC session overlap not correctly reported (dev1)")
+def test_ap_wps_cancel(dev, apdev):
+ """WPS AP cancelling enabled config method"""
+ ssid = "test-wps-ap-cancel"
+ hostapd.add_ap(apdev[0]['ifname'],
+ { "ssid": ssid, "eap_server": "1", "wps_state": "2",
+ "wpa_passphrase": "12345678", "wpa": "2",
+ "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP" })
+ bssid = apdev[0]['bssid']
+ hapd = hostapd.Hostapd(apdev[0]['ifname'])
+
+ logger.info("Verify PBC enable/cancel")
+ hapd.request("WPS_PBC")
+ dev[0].request("SET ignore_old_scan_res 1")
+ dev[0].scan(freq="2412")
+ bss = dev[0].get_bss(apdev[0]['bssid'])
+ if "[WPS-PBC]" not in bss['flags']:
+ raise Exception("WPS-PBC flag missing")
+ if "FAIL" in hapd.request("WPS_CANCEL"):
+ raise Exception("WPS_CANCEL failed")
+ dev[0].scan(freq="2412")
+ bss = dev[0].get_bss(apdev[0]['bssid'])
+ if "[WPS-PBC]" in bss['flags']:
+ raise Exception("WPS-PBC flag not cleared")
+
+ logger.info("Verify PIN enable/cancel")
+ hapd.request("WPS_PIN any 12345670")
+ dev[0].scan(freq="2412")
+ bss = dev[0].get_bss(apdev[0]['bssid'])
+ if "[WPS-AUTH]" not in bss['flags']:
+ raise Exception("WPS-AUTH flag missing")
+ if "FAIL" in hapd.request("WPS_CANCEL"):
+ raise Exception("WPS_CANCEL failed")
+ dev[0].scan(freq="2412")
+ bss = dev[0].get_bss(apdev[0]['bssid'])
+ if "[WPS-AUTH]" in bss['flags']:
+ raise Exception("WPS-AUTH flag not cleared")
+
def test_ap_wps_er_add_enrollee(dev, apdev):
"""WPS ER configuring AP and adding a new enrollee using PIN"""
ssid = "wps-er-add-enrollee"