:orphan: .. index:: pair: group; Control WPA supplicant .. _doxid-group__tapi__wifi__wpa__supplicant: Control WPA supplicant ====================== .. toctree:: :hidden: enum_tapi_wpa_supplicant_status.rst struct_tapi_wpa_supplicant_security.rst Overview ~~~~~~~~ Test API to control WPA supplicant tool. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block // typedefs typedef enum :ref:`tapi_wpa_supplicant_status` :ref:`tapi_wpa_supplicant_status`; typedef struct :ref:`tapi_wpa_supplicant_security` :ref:`tapi_wpa_supplicant_security`; // enums enum :ref:`tapi_wpa_supplicant_status`; // structs struct :ref:`tapi_wpa_supplicant_security`; // global functions void :ref:`tapi_wpa_supplicant_security_init_simple`(:ref:`tapi_wifi_policy` policy, const char* passphrase, :ref:`tapi_wpa_supplicant_security`* security); void :ref:`tapi_wpa_supplicant_security_init`(:ref:`tapi_wifi_policy` policy, :ref:`tapi_wifi_key_mgmt` key_mgmt, :ref:`tapi_wifi_cipher` pairwise_cipher, :ref:`tapi_wifi_cipher` group_cipher, :ref:`tapi_wifi_pmf` pmf, :ref:`tapi_wifi_pmf` ieee80211w, const char* passphrase, :ref:`tapi_wpa_supplicant_security`* security); void :ref:`tapi_wpa_supplicant_security_clone`(:ref:`tapi_wpa_supplicant_security`* to, const :ref:`tapi_wpa_supplicant_security`* from); void :ref:`tapi_wpa_supplicant_security_free`(:ref:`tapi_wpa_supplicant_security`* security); :ref:`te_errno` :ref:`tapi_wpa_supplicant_configure`(const char* ta, const char* ifname, const uint8_t* bssid, const char* ssid, :ref:`tapi_wpa_supplicant_security`* security, bool scan_ssid, const char* opts_fmt, ...); :ref:`te_errno` :ref:`te_errno` :ref:`tapi_wpa_supplicant_configure_va`(const char* ta, const char* ifname, const uint8_t* bssid, const char* ssid, :ref:`tapi_wpa_supplicant_security`* security, bool scan_ssid, const char* opts_fmt, va_list ap); :ref:`te_errno` :ref:`tapi_wpa_supplicant_reset`(const char* ta, const char* ifname); :ref:`te_errno` :ref:`tapi_wpa_supplicant_start`(const char* ta, const char* ifname); :ref:`te_errno` :ref:`tapi_wpa_supplicant_stop`(const char* ta, const char* ifname); :ref:`te_errno` :ref:`tapi_wpa_supplicant_get_status`(const char* ta, const char* ifname, :ref:`tapi_wpa_supplicant_status`* status); .. _details-group__tapi__wifi__wpa__supplicant: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Test API to control WPA supplicant tool. Copyright (C) 2004-2022 OKTET Labs Ltd. All rights reserved. Typedefs -------- .. index:: pair: typedef; tapi_wpa_supplicant_status .. _doxid-group__tapi__wifi__wpa__supplicant_1ga01a3efedc4c451f4f8497481ef1024b6: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef enum :ref:`tapi_wpa_supplicant_status` tapi_wpa_supplicant_status WPA supplicant states. Based on `https://w1.fi/wpa_supplicant/devel/defs_8h.html `__ (wpa_states). .. index:: pair: typedef; tapi_wpa_supplicant_security .. _doxid-group__tapi__wifi__wpa__supplicant_1gade4e05fcc761e9434a93c71f105d5bd2: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct :ref:`tapi_wpa_supplicant_security` tapi_wpa_supplicant_security WPA supplicant security settings. Global Functions ---------------- .. index:: pair: function; tapi_wpa_supplicant_security_init_simple .. _doxid-group__tapi__wifi__wpa__supplicant_1gafcffaae5762d2336de82fefc42df6a14: .. ref-code-block:: cpp :class: doxyrest-title-code-block void tapi_wpa_supplicant_security_init_simple(:ref:`tapi_wifi_policy` policy, const char* passphrase, :ref:`tapi_wpa_supplicant_security`* security) Initialize Wi-Fi client security settings container in a simple way. Refering on ``policy`` it guesses the value of PMF and key_mgmt, sets cipher to UNDEF value (to use default wpa_supplicant settings) and in the final it calls :ref:`tapi_wpa_supplicant_security_init() `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - policy - Security protocol. * - passphrase - SSID passphrase, may be ``NULL`` for open SSID. * - security - Security container. .. rubric:: See also: :ref:`tapi_wpa_supplicant_security_free ` .. index:: pair: function; tapi_wpa_supplicant_security_init .. _doxid-group__tapi__wifi__wpa__supplicant_1ga10c532e96a7b4f16bfc471c4016ff150: .. ref-code-block:: cpp :class: doxyrest-title-code-block void tapi_wpa_supplicant_security_init(:ref:`tapi_wifi_policy` policy, :ref:`tapi_wifi_key_mgmt` key_mgmt, :ref:`tapi_wifi_cipher` pairwise_cipher, :ref:`tapi_wifi_cipher` group_cipher, :ref:`tapi_wifi_pmf` pmf, :ref:`tapi_wifi_pmf` ieee80211w, const char* passphrase, :ref:`tapi_wpa_supplicant_security`* security) Initialize Wi-Fi client security settings container. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - policy - Security protocol. * - key_mgmt - Authenticated key management protocol. * - pairwise_cipher - Pairwise (unicast) encryption protocol. * - group_cipher - Group (broadcast/multicast) encryption protocol. * - pmf - Protected Management Frame (global). * - ieee80211w - Protected Management Frame (per-network). * - passphrase - SSID passphrase, may be ``NULL`` for open SSID. * - security - Security container. .. rubric:: See also: :ref:`tapi_wpa_supplicant_security_free ` .. index:: pair: function; tapi_wpa_supplicant_security_clone .. _doxid-group__tapi__wifi__wpa__supplicant_1gaabf97afc3de4f2dc356d625788a24382: .. ref-code-block:: cpp :class: doxyrest-title-code-block void tapi_wpa_supplicant_security_clone(:ref:`tapi_wpa_supplicant_security`* to, const :ref:`tapi_wpa_supplicant_security`* from) Copy security settings from one container to another deeply. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - to - Destination security container. * - from - Source security container. .. index:: pair: function; tapi_wpa_supplicant_security_free .. _doxid-group__tapi__wifi__wpa__supplicant_1gaa58c83363842fa24bcab36911c1dd659: .. ref-code-block:: cpp :class: doxyrest-title-code-block void tapi_wpa_supplicant_security_free(:ref:`tapi_wpa_supplicant_security`* security) Free memory allocated for security settings container. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - security - Security container. .. index:: pair: function; tapi_wpa_supplicant_configure .. _doxid-group__tapi__wifi__wpa__supplicant_1ga297fecd6a0ff2c81771cfd6a04fd024d: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` tapi_wpa_supplicant_configure(const char* ta, const char* ifname, const uint8_t* bssid, const char* ssid, :ref:`tapi_wpa_supplicant_security`* security, bool scan_ssid, const char* opts_fmt, ...) Configure WPA supplicant settings. It does not care if the supplicant is already running or not, a user should ensure themselves that the supplicant is inactive before reconfiguring. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - ta - Test agent name the supplicant is configured on. * - ifname - Wi-Fi network interface the supplicant uses. * - bssid - Wi-Fi Access Point's BSSID, may be ``NULL``. * - ssid - Wi-Fi Access Point's SSID, may be ``NULL``. * - security - Wi-Fi security settings, may be ``NULL`` to reset them. * - scan_ssid - Enable/disable scanning SSID with specific Probe Request frames. This can be enabled to find APs that do not accept broadcast SSID or use multiple SSIDs; this will add latency to scanning, so enable this only when needed. * - opts_fmt - Format string with extra wpa_supplicant options, such as "-dd", "-D", etc. Useful to set options which cannot be applied with a normal way * - ... - Format string arguments. .. rubric:: Returns: Status code. .. rubric:: See also: :ref:`tapi_wpa_supplicant_configure_va ` .. index:: pair: function; tapi_wpa_supplicant_configure_va .. _doxid-group__tapi__wifi__wpa__supplicant_1gaa2c260d6f772ae5a5a2c2f29746ff870: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` :ref:`te_errno` tapi_wpa_supplicant_configure_va(const char* ta, const char* ifname, const uint8_t* bssid, const char* ssid, :ref:`tapi_wpa_supplicant_security`* security, bool scan_ssid, const char* opts_fmt, va_list ap) Same as :ref:`tapi_wpa_supplicant_configure() ` but operates with va_list instead of format string. .. rubric:: See also: :ref:`tapi_wpa_supplicant_configure ` .. index:: pair: function; tapi_wpa_supplicant_reset .. _doxid-group__tapi__wifi__wpa__supplicant_1ga75a72caa7f97728931afa65b263752de: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` tapi_wpa_supplicant_reset(const char* ta, const char* ifname) Stop WPA supplicant and reset its settings. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - ta - Test agent name the supplicant is configured on. * - ifname - Wi-Fi network interface the supplicant uses. .. rubric:: Returns: Status code. .. index:: pair: function; tapi_wpa_supplicant_start .. _doxid-group__tapi__wifi__wpa__supplicant_1ga7b9ad205a07edbc4f43c14098add9eca: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` tapi_wpa_supplicant_start(const char* ta, const char* ifname) Start WPA supplicant. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - ta - Test agent name the supplicant is started on. * - ifname - Wi-Fi network interface the supplicant uses. .. rubric:: Returns: Status code. .. index:: pair: function; tapi_wpa_supplicant_stop .. _doxid-group__tapi__wifi__wpa__supplicant_1ga94b0ce631dafbc115f19fb254281dbd0: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` tapi_wpa_supplicant_stop(const char* ta, const char* ifname) Stop WPA supplicant. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - ta - Test agent name the supplicant is stopped on. * - ifname - Wi-Fi network interface the supplicant uses. .. rubric:: Returns: Status code. .. index:: pair: function; tapi_wpa_supplicant_get_status .. _doxid-group__tapi__wifi__wpa__supplicant_1ga4c690c0edfe2ba8809f80b61ed368caa: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`te_errno` tapi_wpa_supplicant_get_status(const char* ta, const char* ifname, :ref:`tapi_wpa_supplicant_status`* status) Get WPA supplicant status. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - ta - Test agent name the supplicant is running on. * - ifname - Wi-Fi network interface the supplicant uses. * - status - WPA supplicant status. * - TE_ENOENT - If the supplicant is not running. * - TE_EUNKNOWN - Unknown status, this function requires an update. .. rubric:: Returns: Status code.