The test checks that when using the SEND_ACTION command, the action frame is actually sent to and received by the station. For that, the action frame sent is a CSA because they are easy to check for on the station side. Signed-off-by: Raphaël Mélotte <raphael.melotte@xxxxxxx> --- tests/hwsim/test_hapd_ctrl.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/hwsim/test_hapd_ctrl.py b/tests/hwsim/test_hapd_ctrl.py index 9cf8ac73c..28904c379 100644 --- a/tests/hwsim/test_hapd_ctrl.py +++ b/tests/hwsim/test_hapd_ctrl.py @@ -1075,3 +1075,28 @@ def test_hapd_ctrl_attach_errors(dev, apdev): with alloc_fail(hapd, 1, "ctrl_iface_attach"): if "FAIL" not in hglobal.request("ATTACH foo"): raise Exception("Invalid ATTACH accepted") + +def test_hapd_ctrl_send_action(dev, apdev): + """hostapd SEND_ACTION control interface command.""" + ssid = "hapd-send-action" + passphrase = "12345678" + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + hapd = hostapd.add_ap(apdev[0], params) + dev[0].connect(ssid, psk=passphrase, scan_freq="2412") + addr = dev[0].own_addr() + + # Send a CSA to be able to check that the station received it: + frame = ("00" # Action + "04" # CSA + "25" # element ID + "03" # length + "00" # mode + "06" # channel number + "00") # count + + if "OK" not in hapd.request("SEND_ACTION " + addr + " " + frame): + raise Exception("SEND_ACTION failed") + + ev = dev[0].wait_event(["CTRL-EVENT-STARTED-CHANNEL-SWITCH"], timeout=2) + if ev is None: + raise Exception("Action frame was not received by the station") -- 2.37.3 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap