From 3c9d3b9e19503306c7cfbaec3417704a576310e2 Mon Sep 17 00:00:00 2001 From: Nishant Chaprana Date: Mon, 12 Mar 2018 10:48:17 +0530 Subject: [PATCH] Converted internal API to public APIs Description: This patch converts internal APIs to public API. This patch changes below data type of internal APIs:- gint => int guint => unsigned int gint64 => long guint64 => unsigned long gchar => char guchar => unsigned char gboolean => bool gshort => short gushort => unsigned short Change-Id: Ib31b62ea63eb7e6d3974a7d9941294bc2a6414d7 Signed-off-by: Nishant Chaprana --- include/wifi-mesh-internal.h | 2699 ----------------------------- include/wifi-mesh.h | 2667 +++++++++++++++++++++++++++- include/wifi-mesh_dbus.h | 1 - include/wifi-mesh_log.h | 6 +- include/wifi-mesh_service_error.h | 6 +- src/wifi-mesh-internal.c | 1346 -------------- src/wifi-mesh.c | 1324 +++++++++++++- test/common.h | 1 - test/wifi-mesh-network.c | 76 +- 9 files changed, 4028 insertions(+), 4098 deletions(-) delete mode 100644 include/wifi-mesh-internal.h delete mode 100644 src/wifi-mesh-internal.c diff --git a/include/wifi-mesh-internal.h b/include/wifi-mesh-internal.h deleted file mode 100644 index 84900f7..0000000 --- a/include/wifi-mesh-internal.h +++ /dev/null @@ -1,2699 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __TIZEN_NETWORK_WIFI_MESH_INTERNAL_H__ -#define __TIZEN_NETWORK_WIFI_MESH_INTERNAL_H__ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @file mesh-internal.h - */ - -/** - * @brief The HWMP (Hybrid Wireless Mesh Protocol) type for mesh_hwmp_root_mode_e. - * - * @since_tizen 5.0 - */ -typedef enum { - MESH_HWMP_ROOT_REACTIVE_MODE = 0, /**< Disable Proative Mode */ - MESH_HWMP_ROOT_SIMPLE_PROACTIVE_MODE = 2, /**< Enable the Proactive PREQ with no PREP */ - MESH_HWMP_ROOT_FORCED_PROACTIVE_MODE = 3, /**< Enable the Proactive PREQ with PREP. - Once you do this, all the nodes in your mesh will proactively create paths to your gate. - Mesh nodes will send to gate(s) all traffic to those destinations that could not be resolved in the mesh. */ - MESH_HWMP_ROOT_PROACTIVE_WITH_RANN_MODE = 4, /**< If we use HWMP_ROOTMODE as 4, every 5 sec, - our DUT sends action_frame with root announce. */ -} mesh_hwmp_root_mode_e; - -/** - * @brief The mesh station information handle. - * @since_tizen 5.0 -*/ -typedef void* wifi_mesh_station_info_h; - -/** - * @brief The mesh path information handle. - * @since_tizen 5.0 -*/ -typedef void* wifi_mesh_mpath_info_h; - -/** - * @brief The mesh conf information handle. - * @since_tizen 5.0 -*/ -typedef void* wifi_mesh_meshconf_info_h; - -/** - * @brief Gets the maximum data rate. - * @details This function is to get the maximum data rate - * - * @since_tizen 5.0 - * - * @param[in] network The Wi-Fi mesh network information handle. - * @param[out] data_rate The maximum data rate. - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_network_set_data_rate() - * - */ -int wifi_mesh_network_get_data_rate(wifi_mesh_network_h network, int *data_rate); - -/** - * @brief Sets the maximum data rate. - * @details This function is to set the maximum data rate - * - * @since_tizen 5.0 - * - * @param[in] network The Wi-Fi mesh network information handle. - * @param[in] data_rate The maximum data rate. - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_network_get_data_rate() - * - */ -int wifi_mesh_network_set_data_rate(wifi_mesh_network_h network, int data_rate); - -/** - * @brief Cancels scanning for the mesh network. - * @details Stops scanning process of mesh network. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see wifi_mesh_scan() - * @see wifi_mesh_specific_scan() - * @see wifi_mesh_scan() - * - */ -int wifi_mesh_cancel_scan(wifi_mesh_h handle); - -/** - * @brief Sets gate options. - * @details This function sets mesh gate options. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * @param[in] gate_announce Enable / Disable Gate Announce to peers - * @param[in] hwmp_root_mode HWMP (Hybrid Wireless Mesh Protocol) Root Mode \n - * #MESH_HWMP_ROOT_REACTIVE_MODE \n - * #MESH_HWMP_ROOT_SIMPLE_PROACTIVE_MODE \n - * #MESH_HWMP_ROOT_FORCED_PROACTIVE_MODE \n - * #MESH_HWMP_ROOT_PROACTIVE_WITH_RANN_MODE \n - * @param[in] stp Enable / Disable Gate Announce to peers - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see wifi_mesh_unset_gate() - * - */ -int wifi_mesh_set_gate(wifi_mesh_h handle, int gate_announce, int hwmp_root_mode, bool stp); - -/** - * @brief Unsets gate options. - * @details This function unsets mesh gate options. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see wifi_mesh_set_gate() - * - */ -int wifi_mesh_unset_gate(wifi_mesh_h handle); - -/** - * @brief This callback function is called after wifi_mesh_get_stations_info(). - * @details This function can receive joined station information from mesh network. - * - * @since_tizen 5.0 - * - * @remarks The @station should not be released. - * @remarks The @station can be used only in the callback. To use outside, make a copy. - * - * @param[out] station mesh station information handle - * @param[out] user_data user data pointer - * - * @pre The callback must be registered with wifi_mesh_foreach_found_network() - * - * @see wifi_mesh_foreach_found_network() - */ -typedef void (*wifi_mesh_found_station_cb)(wifi_mesh_station_info_h station, void* user_data); - -/** - * @brief Gets information of all connected stations. - * @details Gets information about all stations present in the currently connected mesh network. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * @param[in] sta_type Type of Station - * @param[in] cb The callback function to receive station information - * @param[in] user_data User data - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see mesh_get_path_info() - * - */ -int wifi_mesh_get_stations_info(wifi_mesh_h handle, - wifi_mesh_station_type_e sta_type, wifi_mesh_found_station_cb cb, - void *user_data); - -/** - * @brief Gets BSSID of connected stations. - * @details Gets BSSID information of a peer - * - * @since_tizen 5.0 - * - * @remarks The @bssid should be released using free(). - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] bssid A pointer to get BSSID information - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_bssid(wifi_mesh_station_info_h station, gchar** bssid); - -/** - * @brief Gets inactive time of a connected station. - * @details Gets inactive time information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] inactive_time A time of inactive period - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_inactive_time(wifi_mesh_station_info_h station, guint* inactive_time); - -/** - * @brief Gets rx bytes of a connected station. - * @details Gets rx bytes information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] rx_bytes a number of received bytes - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_rx_bytes(wifi_mesh_station_info_h station, guint64* rx_bytes); - -/** - * @brief Gets rx packets of a connected station. - * @details Gets rx packets information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] rx_packets a number of received packets - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_rx_packets(wifi_mesh_station_info_h station, guint* rx_packets); - -/** - * @brief Gets tx packets counts of a connected station. - * @details Gets tx packets information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tx_bytes a number of sent packets - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tx_bytes(wifi_mesh_station_info_h station, guint64* tx_bytes); - -/** - * @brief Gets tx packets of a connected station. - * @details Gets rx packets information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tx_packets a number of sent packets - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tx_packets(wifi_mesh_station_info_h station, guint* tx_packets); - -/** - * @brief Gets a re-trial number of transmits at a connected station. - * @details Gets a re-trial number of transmits information at a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tx_retries a re-try number of transmits - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tx_retries(wifi_mesh_station_info_h station, guint* tx_retries); - -/** - * @brief Gets tx-fail counts of a connected station. - * @details Gets a number of transmit failure information of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tx_failed a number of transmits-failures - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tx_failed(wifi_mesh_station_info_h station, guint* tx_failed); - -/** - * @brief Gets a number of beacon loss at a connected station. - * @details Gets a number of beacon loss counts of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] beacon_loss a number of transmits-failures - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_beacon_loss(wifi_mesh_station_info_h station, guint* beacon_loss); - -/** - * @brief Gets a number of received beacons at a connected station. - * @details Gets a number of received beacon counts of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] beacon_rx a number of transmits-failures - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_beacon_rx(wifi_mesh_station_info_h station, guint64* beacon_rx); - -/** - * @brief Gets a number of dropped packets number with ambiguous reason at a connected station. - * @details Gets a number of dropped packets number with ambiguous reason of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] rx_drop_misc a number of dropped packets even if a peer received - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_rx_drop_misc(wifi_mesh_station_info_h station, guint64* rx_drop_misc); - -/** - * @brief Gets instant received signal strength at a connected station. - * @details Gets instant received signal strength of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] signal Instant received signal strength - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_signal(wifi_mesh_station_info_h station, gint* signal); - -/** - * @brief Gets average received signal strength at a connected station. - * @details Gets average received signal strength of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] signal_avg average received signal strength - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_signal_avg(wifi_mesh_station_info_h station, gint* signal_avg); - -/** - * @brief Gets transmit bit-rate at a connected station. - * @details Gets transmit bit-rate of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tx_bitrate Tx bit rate - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tx_bitrate(wifi_mesh_station_info_h station, guint* tx_bitrate); - -/** - * @brief Gets received bit-rate at a connected station. - * @details Gets received bit-rate of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] rx_bitrate Tx bit rate - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_rx_bitrate(wifi_mesh_station_info_h station, guint* rx_bitrate); - -/** - * @brief Gets local-link identifier at a connected station. - * @details Get local-link identifier of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] mesh_llid Local-link identifier - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_mesh_llid(wifi_mesh_station_info_h station, gushort* mesh_llid); - -/** - * @brief Gets peer-link identifier at a connected station. - * @details Get peer-link identifier of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] mesh_plid Peer-link identifier - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_mesh_plid(wifi_mesh_station_info_h station, gushort* mesh_plid); - -/** - * @brief Gets peer-link status at a connected station. - * @details Get peer-link status of a peer - * - * @since_tizen 5.0 - * - * @remarks The @mesh_plink should not be released. - * @remarks The @mesh_plink is available until wifi_mesh_station_info_h is released. - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] mesh_plink Peer-link status such as "ESTAB" - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_mesh_plink(wifi_mesh_station_info_h station, guchar* mesh_plink); - -/** - * @brief Gets local-link power save mode at a connected station. - * @details Get local-link power save mode of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] local_ps_mode Local-link power save - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_local_ps_mode(wifi_mesh_station_info_h station, guint* local_ps_mode); - -/** - * @brief Gets peer-link power save mode at a connected station. - * @details Get peer-link power save mode of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] peer_ps_mode Peer-link power save - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_peer_ps_mode(wifi_mesh_station_info_h station, guint* peer_ps_mode); - -/** - * @brief Gets non-peer-link power save mode at a connected station. - * @details Get non-peer-link power save mode of a peer - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] non_peer_ps_mode Non-peer-link power save - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_non_peer_ps_mode(wifi_mesh_station_info_h station, guint* non_peer_ps_mode); - -/** - * @brief Gets to know whether a connected station authorized or not. - * @details Get to know whether a peer authorized or not. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] authorized Authorized or not - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_authorized(wifi_mesh_station_info_h station, gboolean* authorized); - -/** - * @brief Gets to know whether a connected station athenticated or not. - * @details Get to know whether a peer athenticated or not. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] authenticated Athenticated or not - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_authenticated(wifi_mesh_station_info_h station, gboolean* authenticated); - -/** - * @brief Gets to know whether a connected station associated or not. - * @details Get to know whether a peer associated or not. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] associated Associated or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_associated(wifi_mesh_station_info_h station, gboolean* associated); - -/** - * @brief Gets preamble type long or short. - * @details Get preamble type of a peer. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] preamble Long or short - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_preamble(wifi_mesh_station_info_h station, gboolean* preamble); - -/** - * @brief Gets to know a station can support Wireless Multimedia Extension. - * @details Get to know a station can support Wireless Multimedia Extension (in other word, Wi-Fi Multimedia). - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] wmm_wme WMM supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_wmm_wme(wifi_mesh_station_info_h station, gboolean* wmm_wme); - -/** - * @brief Gets to know a station can support management frame protection. - * @details Get to know a peer can support management frame protection such as WPA1 or WPA2. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] mfp MFP (Management Frame Protection) supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_mfp(wifi_mesh_station_info_h station, gboolean* mfp); - -/** - * @brief Gets to know a station can support tunneled direct link setup. - * @details Get to know a peer can support management TDLS (Tunneled Direct Link Setup). - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] tdls_peer TDLS supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_tdls_peer(wifi_mesh_station_info_h station, gboolean* tdls_peer); - -/** - * @brief Gets DTIM period of a connected station. - * @details Get DTIM (Delivery Traffic Indication Message) period of a peer. - * For example 1024 means that this station sends beacon at every beacon interval. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] dtim_period DTIM period - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_dtim_period(wifi_mesh_station_info_h station, guchar* dtim_period); - -/** - * @brief Gets beacon interval of a connected station. - * @details Get beacon intervl of a peer. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] beacon_interval DTIM period - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_beacon_interval(wifi_mesh_station_info_h station, gushort* beacon_interval); - -/** - * @brief Gets to know a station can support RTS (Request-to-Send) / CTS (Clear-to-Send). - * @details Get to know a peer can support CTS protection mode. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] cts_protection CTS/RTS supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_cts_protection(wifi_mesh_station_info_h station, gboolean* cts_protection); - -/** - * @brief Gets to know a station can support short preamble. - * @details Get to know a peer can support short preamble. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] short_preamble Short preamble supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_slot_time() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_short_preamble(wifi_mesh_station_info_h station, gboolean* short_preamble); - -/** - * @brief Gets to know a station can support short slot. - * @details Get to know a peer can support short slot. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] short_slot_time Short slot supported or not - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_connected_time() - * - */ -int wifi_mesh_get_sta_short_slot_time(wifi_mesh_station_info_h station, gboolean* short_slot_time); - -/** - * @brief Gets to know how many time elapsed since a station joined. - * @details GGet to know how many time elapsed since a peer joined. - * - * @since_tizen 5.0 - * - * @param[in] station The Wi-Fi mesh station handle - * @param[out] connected_time Connection time elapsed - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_found_station_cb() - * @see wifi_mesh_get_stations_info() - * @see wifi_mesh_get_sta_bssid() - * @see wifi_mesh_get_sta_inactive_time() - * @see wifi_mesh_get_sta_rx_bytes() - * @see wifi_mesh_get_sta_rx_packets() - * @see wifi_mesh_get_sta_tx_bytes() - * @see wifi_mesh_get_sta_tx_packets() - * @see wifi_mesh_get_sta_tx_retries() - * @see wifi_mesh_get_sta_tx_failed() - * @see wifi_mesh_get_sta_beacon_loss() - * @see wifi_mesh_get_sta_beacon_rx() - * @see wifi_mesh_get_sta_rx_drop_misc() - * @see wifi_mesh_get_sta_signal() - * @see wifi_mesh_get_sta_signal_avg() - * @see wifi_mesh_get_sta_tx_bitrate() - * @see wifi_mesh_get_sta_rx_bitrate() - * @see wifi_mesh_get_sta_mesh_llid() - * @see wifi_mesh_get_sta_mesh_plid() - * @see wifi_mesh_get_sta_mesh_plink() - * @see wifi_mesh_get_sta_local_ps_mode() - * @see wifi_mesh_get_sta_peer_ps_mode() - * @see wifi_mesh_get_sta_non_peer_ps_mode() - * @see wifi_mesh_get_sta_authorized() - * @see wifi_mesh_get_sta_authenticated() - * @see wifi_mesh_get_sta_associated() - * @see wifi_mesh_get_sta_preamble() - * @see wifi_mesh_get_sta_wmm_wme() - * @see wifi_mesh_get_sta_mfp() - * @see wifi_mesh_get_sta_tdls_peer() - * @see wifi_mesh_get_sta_dtim_period() - * @see wifi_mesh_get_sta_beacon_interval() - * @see wifi_mesh_get_sta_cts_protection() - * @see wifi_mesh_get_sta_short_preamble() - * @see wifi_mesh_get_sta_short_slot_time() - * - */ -int wifi_mesh_get_sta_connected_time(wifi_mesh_station_info_h station, guint* connected_time); - -/** - * @brief Called after wifi_mesh_get_stations_info(). - * @details This function can receive joined station information from mesh network. - * - * @since_tizen 5.0 - * - * @remarks The @path should not be released. - * @remarks The @path can be used only in the callback. To use outside, make a copy. - * - * @param[out] path mesh path information handle - * @param[out] user_data user data pointer - * - * @pre The callback must be registered with wifi_mesh_foreach_found_network() - * - * @see wifi_mesh_foreach_found_network() - */ -typedef void (*mesh_found_mpath_cb)(wifi_mesh_mpath_info_h path, void* user_data); - -/** - * @brief Gets information of all mesh paths. - * @details Get information about all mesh paths present in the currently connected mesh network. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * @param[in] cb The callback function to receive mesh path information - * @param[in] user_data User data - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see wifi_mesh_get_stations_info() - * - */ -int wifi_mesh_get_mpath_info(wifi_mesh_h handle, mesh_found_mpath_cb cb, void *user_data); - -/** - * @brief Gets a destination address. - * @details The first column represents the MAC address of destination node that can be - * 1 or more than 1 hop away in the network. - * - * @since_tizen 5.0 - * - * @remarks The @dest_addr should not be released. - * @remarks The @dest_addr is available until wifi_mesh_mpath_info_h is released. - * - * @param[in] mpath The adjacent mesh path information - * @param[out] dest_addr Destination MAC address - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - * - */ -int wifi_mesh_get_mpath_dest_addr(wifi_mesh_mpath_info_h mpath, gchar** dest_addr); - -/** - * @brief Gets a next hop address. - * @details Second column indicates the MAC address of next hop for the destination - * node/address. The first and second columns can be same if destination node is just one - * hop away or it is peer/neighbor node. - * - * @since_tizen 5.0 - * - * @remarks The @next_hop should not be released. - * @remarks The @next_hop is available until wifi_mesh_mpath_info_h is released. - * - * @param[in] mpath The adjacent mesh path information - * @param[out] next_hop Destination MAC address - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - * - */ -int wifi_mesh_get_mpath_next_hop(wifi_mesh_mpath_info_h mpath, gchar** next_hop); - -/** - * @brief Gets a control interface. - * @details The third column tells about the interface who contains this information or - * where packet is forwarded. - * - * @since_tizen 5.0 - * - * @remarks The @iface should not be released. - * @remarks The @iface is available until wifi_mesh_mpath_info_h is released. - * - * - * @param[in] mpath The adjacent mesh path information - * @param[out] iface Network interface name - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - * - */ -int wifi_mesh_get_mpath_iface(wifi_mesh_mpath_info_h mpath, gchar** iface); - -/** - * @brief Gets a serial number of the current control packet. - * @details The fourth column is about the PREQ sequence number. It is used to detect and - * break the loop while path is being investigated. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] sn Sequence number - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - * - */ -int wifi_mesh_get_mpath_sn(wifi_mesh_mpath_info_h mpath, guint* sn); - -/** - * @brief Gets a metric number. - * @details The fifth column contains value for ALM and telling how the path healthy is. - * This information depends on the number of hops from asked interface to destination - * interface/address. Therefore each value is different from other destination. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] metric Metric - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - * - */ -int wifi_mesh_get_mpath_metric(wifi_mesh_mpath_info_h mpath, guint* metric); - -/** - * @brief Gets a queue length in the Wi-Fi driver. - * @details This column gives MAC layer queue status at path discovery time. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] qlen Queue length - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - */ -int wifi_mesh_get_mpath_qlen(wifi_mesh_mpath_info_h mpath, guint* qlen); - -/** - * @brief Gets a time of next destination available. - * @details The eighth column holds path expiry duration in (TUs) for the given interface - * to destination interface. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] exptime Expiration time - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - */ -int wifi_mesh_get_mpath_exptime(wifi_mesh_mpath_info_h mpath, guint* exptime); - -/** - * @brief Gets a time of discovery timeout. - * @details This field tells about the buffered broadcast/multicast data on mesh STA. - * During the mesh DTIM period, the mesh STA transmits broadcast traffic for its neighbors. - * The mesh STA with power saving capability must switch from doze to awaken state for - * every DTIM of their peer mesh STAs. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] discovery_timeout Discovery timeout value - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_retries() - * @see wifi_mesh_get_mpath_flags() - */ -int wifi_mesh_get_mpath_disc_timeout(wifi_mesh_mpath_info_h mpath, - guint* discovery_timeout); - -/** - * @brief Gets a number of discovery re-trial. - * @details The column number tenth shows that how many retries have occurred while path - * from source interface to destination address was being discovered. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] discovery_retries Discovery retial number - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_flags() - */ -int wifi_mesh_get_mpath_disc_retries(wifi_mesh_mpath_info_h mpath, - guchar* discovery_retries); - -/** - * @brief Gets flags. - * @details The last column contains bit masking type values for different stat flags for - * paths. - * - * @since_tizen 5.0 - * - * @param[in] mpath The adjacent mesh path information - * @param[out] flags Different status flags - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * - * @see wifi_mesh_get_mpath_info() - * @see mesh_found_mpath_cb() - * @see wifi_mesh_get_mpath_dest_addr() - * @see wifi_mesh_get_mpath_next_hop() - * @see wifi_mesh_get_mpath_iface() - * @see wifi_mesh_get_mpath_sn() - * @see wifi_mesh_get_mpath_metric() - * @see wifi_mesh_get_mpath_qlen() - * @see wifi_mesh_get_mpath_exptime() - * @see wifi_mesh_get_mpath_disc_timeout() - * @see wifi_mesh_get_mpath_disc_retries() - */ -int wifi_mesh_get_mpath_flags(wifi_mesh_mpath_info_h mpath, guchar* flags); - -/** - * @brief Sets network device interface name. - * @details This function provides the ability to manually select interfaces for advanced users. - * - * @since_tizen 5.0 - * - * @param[in] handle The Wi-Fi mesh handle - * @param[in] mesh An interface name for mesh network - * @param[in] gate An interface name for external network - * @param[in] softap An interface name for internal softap - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - */ -int wifi_mesh_set_interfaces(wifi_mesh_h handle, - const char *mesh, const char* gate, const char *softap); - -/** - * @brief Gets information of mesh configurations. - * @details Get information about mesh configurations present in the currently - * connected mesh network. - * - * @since_tizen 5.0 - * - * @remarks The @meshconf should be released using wifi_mesh_destroy_meshconf_info(). - * - * @param[in] handle The Wi-Fi mesh handle - * @param[out] meshconf The Mesh conf information handle - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_info(wifi_mesh_h handle, - wifi_mesh_meshconf_info_h *meshconf); - -/** - * @brief Destroys the Mesh Configuration Info handle. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Mesh conf information handle - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error - * - * @pre The mesh configuration must be initialized using wifi_mesh_get_meshconf_info() - * - * @see wifi_mesh_get_meshconf_info() - * - */ -int wifi_mesh_destroy_meshconf_info(wifi_mesh_meshconf_info_h meshconf); - -/** - * @brief Gets the retry timeout value of Mesh Configuration. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] retry_timeout Retry timeout value - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_retry_timeout(wifi_mesh_meshconf_info_h meshconf, - gushort *retry_timeout); - -/** - * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) Max PREQ Retries. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] hwmp_max_preq_retries HWMP Max PREQ Retries - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ - -int wifi_mesh_get_meshconf_hwmp_max_preq_retries( - wifi_mesh_meshconf_info_h meshconf, - guchar *hwmp_max_preq_retries); - -/** - * @brief Gets the Confirm Timeout. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] confirm_timeout Confirm Timeout - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_confirm_timeout(wifi_mesh_meshconf_info_h meshconf, - gushort *confirm_timeout); - -/** - * @brief Gets the Path Refresh Time. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] path_refresh_time Path Refresh Time - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_path_refresh_time(wifi_mesh_meshconf_info_h meshconf, - guint *path_refresh_time); - -/** - * @brief Gets the Holding Timeout. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] holding_timeout Holding Timeout - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_holding_timeout(wifi_mesh_meshconf_info_h meshconf, - gushort *holding_timeout); - -/** - * @brief Gets the Minimum Discovery Timeout. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] min_disc_timeout Minimum Discovery Timeout - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_min_disc_timeout(wifi_mesh_meshconf_info_h meshconf, - gushort *min_disc_timeout); - -/** - * @brief Gets the Max Peer Links. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] max_peer_links Max Peer Links - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_max_peer_links(wifi_mesh_meshconf_info_h meshconf, - gushort *max_peer_links); - -/** - * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) PREQ Minimum Interval. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] hwmp_preq_min_interval HWMP PREQ Minimum Interval - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_hwmp_preq_min_interval( - wifi_mesh_meshconf_info_h meshconf, - gushort *hwmp_preq_min_interval); - -/** - * @brief Gets the TTL (Time To Live). - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] ttl TTL - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_ttl( - wifi_mesh_meshconf_info_h meshconf, guchar *ttl); - -/** - * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) Active Path Timeout. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] hwmp_active_path_timeout HWMP Active Path Timeout - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_hwmp_active_path_timeout( - wifi_mesh_meshconf_info_h meshconf, - guint *hwmp_active_path_timeout); - -/** - * @brief Gets the Element TTL (Time To Live). - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] element_ttl Element TTL - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_element_ttl(wifi_mesh_meshconf_info_h meshconf, - guchar *element_ttl); - -/** - * @brief Gets the HWMP RANN (Root Announcement) Interval. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] hwmp_rann_interval HWMP RANN Interval - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_hwmp_rann_interval( - wifi_mesh_meshconf_info_h meshconf, - gushort *hwmp_rann_interval); - -/** - * @brief Gets the Gate Announcement value. - * - * @since_tizen 5.0 - * - * @param[in] meshconf The Wi-Fi mesh conf handle - * @param[out] gate_announcements Gate Announcement - * - * - * @return 0 on success, otherwise a negative error value. - * @retval #WIFI_MESH_ERROR_NONE Successful - * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see wifi_mesh_get_meshconf_info() - * @see wifi_mesh_destroy_meshconf_info() - * - */ -int wifi_mesh_get_meshconf_gate_announcements( - wifi_mesh_meshconf_info_h meshconf, - guchar *gate_announcements); - -#ifdef __cplusplus -} -#endif - -#endif /* __TIZEN_NETWORK_WIFI_MESH_INTERNAL_H__ */ diff --git a/include/wifi-mesh.h b/include/wifi-mesh.h index 1391d3c..e45ca8d 100644 --- a/include/wifi-mesh.h +++ b/include/wifi-mesh.h @@ -71,10 +71,10 @@ typedef enum { */ /** -* @addtogroup CAPI_NETWORK_WIFI_MESH_MONITOR_MODULE -* @since_tizen 5.0 -* @{ -*/ + * @addtogroup CAPI_NETWORK_WIFI_MESH_MONITOR_MODULE + * @since_tizen 5.0 + * @{ + */ /** * @brief The maximum length of mesh id. @@ -127,7 +127,7 @@ typedef enum { /** * @brief Enumeration for address family of the Wi-Fi Mesh network. * @since_tizen 5.0 -*/ + */ typedef enum { WIFI_MESH_ADDRESS_FAMILY_IPV4 = 0, /**< IPV4 Address type */ WIFI_MESH_ADDRESS_FAMILY_IPV6 = 1, /**< IPV6 Address type */ @@ -1185,6 +1185,2663 @@ int wifi_mesh_disconnect_network(wifi_mesh_h handle, wifi_mesh_network_h network */ int wifi_mesh_forget_network(wifi_mesh_h handle, wifi_mesh_network_h network); +/** + * @brief The HWMP (Hybrid Wireless Mesh Protocol) type for mesh_hwmp_root_mode_e. + * + * @since_tizen 5.0 + */ +typedef enum { + MESH_HWMP_ROOT_REACTIVE_MODE = 0, /**< Disable Proative Mode */ + MESH_HWMP_ROOT_SIMPLE_PROACTIVE_MODE = 2, /**< Enable the Proactive PREQ with no PREP */ + MESH_HWMP_ROOT_FORCED_PROACTIVE_MODE = 3, /**< Enable the Proactive PREQ with PREP. + Once you do this, all the nodes in your mesh will proactively create paths to your gate. + Mesh nodes will send to gate(s) all traffic to those destinations that could not be resolved in the mesh. */ + MESH_HWMP_ROOT_PROACTIVE_WITH_RANN_MODE = 4, /**< If we use HWMP_ROOTMODE as 4, every 5 sec, + our DUT sends action_frame with root announce. */ +} mesh_hwmp_root_mode_e; + +/** + * @brief The mesh station information handle. + * @since_tizen 5.0 + */ +typedef void* wifi_mesh_station_info_h; + +/** + * @brief The mesh path information handle. + * @since_tizen 5.0 + */ +typedef void* wifi_mesh_mpath_info_h; + +/** + * @brief The mesh conf information handle. + * @since_tizen 5.0 + */ +typedef void* wifi_mesh_meshconf_info_h; + +/** + * @brief Gets the maximum data rate. + * @details This function is to get the maximum data rate + * + * @since_tizen 5.0 + * + * @param[in] network The Wi-Fi mesh network information handle. + * @param[out] data_rate The maximum data rate. + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_network_set_data_rate() + * + */ +int wifi_mesh_network_get_data_rate(wifi_mesh_network_h network, int *data_rate); + +/** + * @brief Sets the maximum data rate. + * @details This function is to set the maximum data rate + * + * @since_tizen 5.0 + * + * @param[in] network The Wi-Fi mesh network information handle. + * @param[in] data_rate The maximum data rate. + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_network_get_data_rate() + * + */ +int wifi_mesh_network_set_data_rate(wifi_mesh_network_h network, int data_rate); + +/** + * @brief Cancels scanning for the mesh network. + * @details Stops scanning process of mesh network. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see wifi_mesh_scan() + * @see wifi_mesh_specific_scan() + * @see wifi_mesh_scan() + * + */ +int wifi_mesh_cancel_scan(wifi_mesh_h handle); + +/** + * @brief Sets gate options. + * @details This function sets mesh gate options. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * @param[in] gate_announce Enable / Disable Gate Announce to peers + * @param[in] hwmp_root_mode HWMP (Hybrid Wireless Mesh Protocol) Root Mode \n + * #MESH_HWMP_ROOT_REACTIVE_MODE \n + * #MESH_HWMP_ROOT_SIMPLE_PROACTIVE_MODE \n + * #MESH_HWMP_ROOT_FORCED_PROACTIVE_MODE \n + * #MESH_HWMP_ROOT_PROACTIVE_WITH_RANN_MODE \n + * @param[in] stp Enable / Disable Gate Announce to peers + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see wifi_mesh_unset_gate() + * + */ +int wifi_mesh_set_gate(wifi_mesh_h handle, int gate_announce, int hwmp_root_mode, bool stp); + +/** + * @brief Unsets gate options. + * @details This function unsets mesh gate options. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see wifi_mesh_set_gate() + * + */ +int wifi_mesh_unset_gate(wifi_mesh_h handle); + +/** + * @brief This callback function is called after wifi_mesh_get_stations_info(). + * @details This function can receive joined station information from mesh network. + * + * @since_tizen 5.0 + * + * @remarks The @station should not be released. + * @remarks The @station can be used only in the callback. To use outside, make a copy. + * + * @param[out] station mesh station information handle + * @param[out] user_data user data pointer + * + * @pre The callback must be registered with wifi_mesh_foreach_found_network() + * + * @see wifi_mesh_foreach_found_network() + */ +typedef void(*wifi_mesh_found_station_cb)(wifi_mesh_station_info_h station, void* user_data); + +/** + * @brief Gets information of all connected stations. + * @details Gets information about all stations present in the currently connected mesh network. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * @param[in] sta_type Type of Station + * @param[in] cb The callback function to receive station information + * @param[in] user_data User data + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see mesh_get_path_info() + * + */ +int wifi_mesh_get_stations_info(wifi_mesh_h handle, + wifi_mesh_station_type_e sta_type, wifi_mesh_found_station_cb cb, + void *user_data); + +/** + * @brief Gets BSSID of connected stations. + * @details Gets BSSID information of a peer + * + * @since_tizen 5.0 + * + * @remarks The @bssid should be released using free(). + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] bssid A pointer to get BSSID information + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_bssid(wifi_mesh_station_info_h station, char** bssid); + +/** + * @brief Gets inactive time of a connected station. + * @details Gets inactive time information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] inactive_time A time of inactive period + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_inactive_time(wifi_mesh_station_info_h station, unsigned int* inactive_time); + +/** + * @brief Gets rx bytes of a connected station. + * @details Gets rx bytes information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] rx_bytes a number of received bytes + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_rx_bytes(wifi_mesh_station_info_h station, unsigned long* rx_bytes); + +/** + * @brief Gets rx packets of a connected station. + * @details Gets rx packets information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] rx_packets a number of received packets + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_rx_packets(wifi_mesh_station_info_h station, unsigned int* rx_packets); + +/** + * @brief Gets tx packets counts of a connected station. + * @details Gets tx packets information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tx_bytes a number of sent packets + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tx_bytes(wifi_mesh_station_info_h station, unsigned long* tx_bytes); + +/** + * @brief Gets tx packets of a connected station. + * @details Gets rx packets information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tx_packets a number of sent packets + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tx_packets(wifi_mesh_station_info_h station, unsigned int* tx_packets); + +/** + * @brief Gets a re-trial number of transmits at a connected station. + * @details Gets a re-trial number of transmits information at a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tx_retries a re-try number of transmits + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tx_retries(wifi_mesh_station_info_h station, unsigned int* tx_retries); + +/** + * @brief Gets tx-fail counts of a connected station. + * @details Gets a number of transmit failure information of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tx_failed a number of transmits-failures + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tx_failed(wifi_mesh_station_info_h station, unsigned int* tx_failed); + +/** + * @brief Gets a number of beacon loss at a connected station. + * @details Gets a number of beacon loss counts of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] beacon_loss a number of transmits-failures + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_beacon_loss(wifi_mesh_station_info_h station, unsigned int* beacon_loss); + +/** + * @brief Gets a number of received beacons at a connected station. + * @details Gets a number of received beacon counts of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] beacon_rx a number of transmits-failures + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_beacon_rx(wifi_mesh_station_info_h station, unsigned long* beacon_rx); + +/** + * @brief Gets a number of dropped packets number with ambiguous reason at a connected station. + * @details Gets a number of dropped packets number with ambiguous reason of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] rx_drop_misc a number of dropped packets even if a peer received + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_rx_drop_misc(wifi_mesh_station_info_h station, unsigned long* rx_drop_misc); + +/** + * @brief Gets instant received signal strength at a connected station. + * @details Gets instant received signal strength of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] signal Instant received signal strength + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_signal(wifi_mesh_station_info_h station, int* signal); + +/** + * @brief Gets average received signal strength at a connected station. + * @details Gets average received signal strength of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] signal_avg average received signal strength + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_signal_avg(wifi_mesh_station_info_h station, int* signal_avg); + +/** + * @brief Gets transmit bit-rate at a connected station. + * @details Gets transmit bit-rate of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tx_bitrate Tx bit rate + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tx_bitrate(wifi_mesh_station_info_h station, unsigned int* tx_bitrate); + +/** + * @brief Gets received bit-rate at a connected station. + * @details Gets received bit-rate of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] rx_bitrate Tx bit rate + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_rx_bitrate(wifi_mesh_station_info_h station, unsigned int* rx_bitrate); + +/** + * @brief Gets local-link identifier at a connected station. + * @details Get local-link identifier of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] mesh_llid Local-link identifier + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_mesh_llid(wifi_mesh_station_info_h station, unsigned short* mesh_llid); + +/** + * @brief Gets peer-link identifier at a connected station. + * @details Get peer-link identifier of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] mesh_plid Peer-link identifier + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_mesh_plid(wifi_mesh_station_info_h station, unsigned short* mesh_plid); + +/** + * @brief Gets peer-link status at a connected station. + * @details Get peer-link status of a peer + * + * @since_tizen 5.0 + * + * @remarks The @mesh_plink should not be released. + * @remarks The @mesh_plink is available until wifi_mesh_station_info_h is released. + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] mesh_plink Peer-link status such as "ESTAB" + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_mesh_plink(wifi_mesh_station_info_h station, unsigned char* mesh_plink); + +/** + * @brief Gets local-link power save mode at a connected station. + * @details Get local-link power save mode of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] local_ps_mode Local-link power save + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_local_ps_mode(wifi_mesh_station_info_h station, unsigned int* local_ps_mode); + +/** + * @brief Gets peer-link power save mode at a connected station. + * @details Get peer-link power save mode of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] peer_ps_mode Peer-link power save + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_peer_ps_mode(wifi_mesh_station_info_h station, unsigned int* peer_ps_mode); + +/** + * @brief Gets non-peer-link power save mode at a connected station. + * @details Get non-peer-link power save mode of a peer + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] non_peer_ps_mode Non-peer-link power save + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_non_peer_ps_mode(wifi_mesh_station_info_h station, unsigned int* non_peer_ps_mode); + +/** + * @brief Gets to know whether a connected station authorized or not. + * @details Get to know whether a peer authorized or not. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] authorized Authorized or not + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_authorized(wifi_mesh_station_info_h station, bool* authorized); + +/** + * @brief Gets to know whether a connected station athenticated or not. + * @details Get to know whether a peer athenticated or not. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] authenticated Athenticated or not + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_authenticated(wifi_mesh_station_info_h station, bool* authenticated); + +/** + * @brief Gets to know whether a connected station associated or not. + * @details Get to know whether a peer associated or not. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] associated Associated or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_associated(wifi_mesh_station_info_h station, bool* associated); + +/** + * @brief Gets preamble type long or short. + * @details Get preamble type of a peer. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] preamble Long or short + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_preamble(wifi_mesh_station_info_h station, bool* preamble); + +/** + * @brief Gets to know a station can support Wireless Multimedia Extension. + * @details Get to know a station can support Wireless Multimedia Extension (in other word, Wi-Fi Multimedia). + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] wmm_wme WMM supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_wmm_wme(wifi_mesh_station_info_h station, bool* wmm_wme); + +/** + * @brief Gets to know a station can support management frame protection. + * @details Get to know a peer can support management frame protection such as WPA1 or WPA2. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] mfp MFP (Management Frame Protection) supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_mfp(wifi_mesh_station_info_h station, bool* mfp); + +/** + * @brief Gets to know a station can support tunneled direct link setup. + * @details Get to know a peer can support management TDLS (Tunneled Direct Link Setup). + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] tdls_peer TDLS supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_tdls_peer(wifi_mesh_station_info_h station, bool* tdls_peer); + +/** + * @brief Gets DTIM period of a connected station. + * @details Get DTIM (Delivery Traffic Indication Message) period of a peer. + * For example 1024 means that this station sends beacon at every beacon interval. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] dtim_period DTIM period + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_dtim_period(wifi_mesh_station_info_h station, unsigned char* dtim_period); + +/** + * @brief Gets beacon interval of a connected station. + * @details Get beacon intervl of a peer. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] beacon_interval DTIM period + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_beacon_interval(wifi_mesh_station_info_h station, unsigned short* beacon_interval); + +/** + * @brief Gets to know a station can support RTS (Request-to-Send) / CTS (Clear-to-Send). + * @details Get to know a peer can support CTS protection mode. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] cts_protection CTS/RTS supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_cts_protection(wifi_mesh_station_info_h station, bool* cts_protection); + +/** + * @brief Gets to know a station can support short preamble. + * @details Get to know a peer can support short preamble. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] short_preamble Short preamble supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_slot_time() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_short_preamble(wifi_mesh_station_info_h station, bool* short_preamble); + +/** + * @brief Gets to know a station can support short slot. + * @details Get to know a peer can support short slot. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] short_slot_time Short slot supported or not + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_connected_time() + * + */ +int wifi_mesh_get_sta_short_slot_time(wifi_mesh_station_info_h station, bool* short_slot_time); + +/** + * @brief Gets to know how many time elapsed since a station joined. + * @details GGet to know how many time elapsed since a peer joined. + * + * @since_tizen 5.0 + * + * @param[in] station The Wi-Fi mesh station handle + * @param[out] connected_time Connection time elapsed + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_found_station_cb() + * @see wifi_mesh_get_stations_info() + * @see wifi_mesh_get_sta_bssid() + * @see wifi_mesh_get_sta_inactive_time() + * @see wifi_mesh_get_sta_rx_bytes() + * @see wifi_mesh_get_sta_rx_packets() + * @see wifi_mesh_get_sta_tx_bytes() + * @see wifi_mesh_get_sta_tx_packets() + * @see wifi_mesh_get_sta_tx_retries() + * @see wifi_mesh_get_sta_tx_failed() + * @see wifi_mesh_get_sta_beacon_loss() + * @see wifi_mesh_get_sta_beacon_rx() + * @see wifi_mesh_get_sta_rx_drop_misc() + * @see wifi_mesh_get_sta_signal() + * @see wifi_mesh_get_sta_signal_avg() + * @see wifi_mesh_get_sta_tx_bitrate() + * @see wifi_mesh_get_sta_rx_bitrate() + * @see wifi_mesh_get_sta_mesh_llid() + * @see wifi_mesh_get_sta_mesh_plid() + * @see wifi_mesh_get_sta_mesh_plink() + * @see wifi_mesh_get_sta_local_ps_mode() + * @see wifi_mesh_get_sta_peer_ps_mode() + * @see wifi_mesh_get_sta_non_peer_ps_mode() + * @see wifi_mesh_get_sta_authorized() + * @see wifi_mesh_get_sta_authenticated() + * @see wifi_mesh_get_sta_associated() + * @see wifi_mesh_get_sta_preamble() + * @see wifi_mesh_get_sta_wmm_wme() + * @see wifi_mesh_get_sta_mfp() + * @see wifi_mesh_get_sta_tdls_peer() + * @see wifi_mesh_get_sta_dtim_period() + * @see wifi_mesh_get_sta_beacon_interval() + * @see wifi_mesh_get_sta_cts_protection() + * @see wifi_mesh_get_sta_short_preamble() + * @see wifi_mesh_get_sta_short_slot_time() + * + */ +int wifi_mesh_get_sta_connected_time(wifi_mesh_station_info_h station, unsigned int* connected_time); + +/** + * @brief Called after wifi_mesh_get_stations_info(). + * @details This function can receive joined station information from mesh network. + * + * @since_tizen 5.0 + * + * @remarks The @path should not be released. + * @remarks The @path can be used only in the callback. To use outside, make a copy. + * + * @param[out] path mesh path information handle + * @param[out] user_data user data pointer + * + * @pre The callback must be registered with wifi_mesh_foreach_found_network() + * + * @see wifi_mesh_foreach_found_network() + */ +typedef void(*mesh_found_mpath_cb)(wifi_mesh_mpath_info_h path, void* user_data); + +/** + * @brief Gets information of all mesh paths. + * @details Get information about all mesh paths present in the currently connected mesh network. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * @param[in] cb The callback function to receive mesh path information + * @param[in] user_data User data + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see wifi_mesh_get_stations_info() + * + */ +int wifi_mesh_get_mpath_info(wifi_mesh_h handle, mesh_found_mpath_cb cb, void *user_data); + +/** + * @brief Gets a destination address. + * @details The first column represents the MAC address of destination node that can be + * 1 or more than 1 hop away in the network. + * + * @since_tizen 5.0 + * + * @remarks The @dest_addr should not be released. + * @remarks The @dest_addr is available until wifi_mesh_mpath_info_h is released. + * + * @param[in] mpath The adjacent mesh path information + * @param[out] dest_addr Destination MAC address + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + * + */ +int wifi_mesh_get_mpath_dest_addr(wifi_mesh_mpath_info_h mpath, char** dest_addr); + +/** + * @brief Gets a next hop address. + * @details Second column indicates the MAC address of next hop for the destination + * node/address. The first and second columns can be same if destination node is just one + * hop away or it is peer/neighbor node. + * + * @since_tizen 5.0 + * + * @remarks The @next_hop should not be released. + * @remarks The @next_hop is available until wifi_mesh_mpath_info_h is released. + * + * @param[in] mpath The adjacent mesh path information + * @param[out] next_hop Destination MAC address + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + * + */ +int wifi_mesh_get_mpath_next_hop(wifi_mesh_mpath_info_h mpath, char** next_hop); + +/** + * @brief Gets a control interface. + * @details The third column tells about the interface who contains this information or + * where packet is forwarded. + * + * @since_tizen 5.0 + * + * @remarks The @iface should not be released. + * @remarks The @iface is available until wifi_mesh_mpath_info_h is released. + * + * + * @param[in] mpath The adjacent mesh path information + * @param[out] iface Network interface name + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + * + */ +int wifi_mesh_get_mpath_iface(wifi_mesh_mpath_info_h mpath, char** iface); + +/** + * @brief Gets a serial number of the current control packet. + * @details The fourth column is about the PREQ sequence number. It is used to detect and + * break the loop while path is being investigated. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] sn Sequence number + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + * + */ +int wifi_mesh_get_mpath_sn(wifi_mesh_mpath_info_h mpath, unsigned int* sn); + +/** + * @brief Gets a metric number. + * @details The fifth column contains value for ALM and telling how the path healthy is. + * This information depends on the number of hops from asked interface to destination + * interface/address. Therefore each value is different from other destination. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] metric Metric + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + * + */ +int wifi_mesh_get_mpath_metric(wifi_mesh_mpath_info_h mpath, unsigned int* metric); + +/** + * @brief Gets a queue length in the Wi-Fi driver. + * @details This column gives MAC layer queue status at path discovery time. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] qlen Queue length + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + */ +int wifi_mesh_get_mpath_qlen(wifi_mesh_mpath_info_h mpath, unsigned int* qlen); + +/** + * @brief Gets a time of next destination available. + * @details The eighth column holds path expiry duration in (TUs) for the given interface + * to destination interface. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] exptime Expiration time + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + */ +int wifi_mesh_get_mpath_exptime(wifi_mesh_mpath_info_h mpath, unsigned int* exptime); + +/** + * @brief Gets a time of discovery timeout. + * @details This field tells about the buffered broadcast/multicast data on mesh STA. + * During the mesh DTIM period, the mesh STA transmits broadcast traffic for its neighbors. + * The mesh STA with power saving capability must switch from doze to awaken state for + * every DTIM of their peer mesh STAs. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] discovery_timeout Discovery timeout value + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_retries() + * @see wifi_mesh_get_mpath_flags() + */ +int wifi_mesh_get_mpath_disc_timeout(wifi_mesh_mpath_info_h mpath, + unsigned int* discovery_timeout); + +/** + * @brief Gets a number of discovery re-trial. + * @details The column number tenth shows that how many retries have occurred while path + * from source interface to destination address was being discovered. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] discovery_retries Discovery retial number + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_flags() + */ +int wifi_mesh_get_mpath_disc_retries(wifi_mesh_mpath_info_h mpath, + unsigned char* discovery_retries); + +/** + * @brief Gets flags. + * @details The last column contains bit masking type values for different stat flags for + * paths. + * + * @since_tizen 5.0 + * + * @param[in] mpath The adjacent mesh path information + * @param[out] flags Different status flags + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * + * @see wifi_mesh_get_mpath_info() + * @see mesh_found_mpath_cb() + * @see wifi_mesh_get_mpath_dest_addr() + * @see wifi_mesh_get_mpath_next_hop() + * @see wifi_mesh_get_mpath_iface() + * @see wifi_mesh_get_mpath_sn() + * @see wifi_mesh_get_mpath_metric() + * @see wifi_mesh_get_mpath_qlen() + * @see wifi_mesh_get_mpath_exptime() + * @see wifi_mesh_get_mpath_disc_timeout() + * @see wifi_mesh_get_mpath_disc_retries() + */ +int wifi_mesh_get_mpath_flags(wifi_mesh_mpath_info_h mpath, unsigned char* flags); + +/** + * @brief Sets network device interface name. + * @details This function provides the ability to manually select interfaces for advanced users. + * + * @since_tizen 5.0 + * + * @param[in] handle The Wi-Fi mesh handle + * @param[in] mesh An interface name for mesh network + * @param[in] gate An interface name for external network + * @param[in] softap An interface name for internal softap + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + */ +int wifi_mesh_set_interfaces(wifi_mesh_h handle, + const char *mesh, const char* gate, const char *softap); + +/** + * @brief Gets information of mesh configurations. + * @details Get information about mesh configurations present in the currently + * connected mesh network. + * + * @since_tizen 5.0 + * + * @remarks The @meshconf should be released using wifi_mesh_destroy_meshconf_info(). + * + * @param[in] handle The Wi-Fi mesh handle + * @param[out] meshconf The Mesh conf information handle + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_info(wifi_mesh_h handle, + wifi_mesh_meshconf_info_h *meshconf); + +/** + * @brief Destroys the Mesh Configuration Info handle. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Mesh conf information handle + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WIFI_MESH_ERROR_IO_ERROR Unexpected d-bus error + * + * @pre The mesh configuration must be initialized using wifi_mesh_get_meshconf_info() + * + * @see wifi_mesh_get_meshconf_info() + * + */ +int wifi_mesh_destroy_meshconf_info(wifi_mesh_meshconf_info_h meshconf); + +/** + * @brief Gets the retry timeout value of Mesh Configuration. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] retry_timeout Retry timeout value + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_retry_timeout(wifi_mesh_meshconf_info_h meshconf, + unsigned short *retry_timeout); + +/** + * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) Max PREQ Retries. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] hwmp_max_preq_retries HWMP Max PREQ Retries + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ + +int wifi_mesh_get_meshconf_hwmp_max_preq_retries(wifi_mesh_meshconf_info_h meshconf, + unsigned char *hwmp_max_preq_retries); + +/** + * @brief Gets the Confirm Timeout. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] confirm_timeout Confirm Timeout + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_confirm_timeout(wifi_mesh_meshconf_info_h meshconf, + unsigned short *confirm_timeout); + +/** + * @brief Gets the Path Refresh Time. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] path_refresh_time Path Refresh Time + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_path_refresh_time(wifi_mesh_meshconf_info_h meshconf, + unsigned int *path_refresh_time); + +/** + * @brief Gets the Holding Timeout. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] holding_timeout Holding Timeout + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_holding_timeout(wifi_mesh_meshconf_info_h meshconf, + unsigned short *holding_timeout); + +/** + * @brief Gets the Minimum Discovery Timeout. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] min_disc_timeout Minimum Discovery Timeout + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_min_disc_timeout(wifi_mesh_meshconf_info_h meshconf, + unsigned short *min_disc_timeout); + +/** + * @brief Gets the Max Peer Links. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] max_peer_links Max Peer Links + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_max_peer_links(wifi_mesh_meshconf_info_h meshconf, + unsigned short *max_peer_links); + +/** + * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) PREQ Minimum Interval. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] hwmp_preq_min_interval HWMP PREQ Minimum Interval + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_hwmp_preq_min_interval(wifi_mesh_meshconf_info_h meshconf, + unsigned short *hwmp_preq_min_interval); + +/** + * @brief Gets the TTL (Time To Live). + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] ttl TTL + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_ttl(wifi_mesh_meshconf_info_h meshconf, unsigned char *ttl); + +/** + * @brief Gets the HWMP (Hybrid Wireless Mesh Protocol) Active Path Timeout. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] hwmp_active_path_timeout HWMP Active Path Timeout + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_hwmp_active_path_timeout(wifi_mesh_meshconf_info_h meshconf, + unsigned int *hwmp_active_path_timeout); + +/** + * @brief Gets the Element TTL (Time To Live). + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] element_ttl Element TTL + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_element_ttl(wifi_mesh_meshconf_info_h meshconf, + unsigned char *element_ttl); + +/** + * @brief Gets the HWMP RANN (Root Announcement) Interval. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] hwmp_rann_interval HWMP RANN Interval + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_hwmp_rann_interval(wifi_mesh_meshconf_info_h meshconf, + unsigned short *hwmp_rann_interval); + +/** + * @brief Gets the Gate Announcement value. + * + * @since_tizen 5.0 + * + * @param[in] meshconf The Wi-Fi mesh conf handle + * @param[out] gate_announcements Gate Announcement + * + * + * @return 0 on success, otherwise a negative error value. + * @retval #WIFI_MESH_ERROR_NONE Successful + * @retval #WIFI_MESH_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see wifi_mesh_get_meshconf_info() + * @see wifi_mesh_destroy_meshconf_info() + * + */ +int wifi_mesh_get_meshconf_gate_announcements(wifi_mesh_meshconf_info_h meshconf, + unsigned char *gate_announcements); /** * @} diff --git a/include/wifi-mesh_dbus.h b/include/wifi-mesh_dbus.h index 348a9b7..580d19b 100644 --- a/include/wifi-mesh_dbus.h +++ b/include/wifi-mesh_dbus.h @@ -18,7 +18,6 @@ #define __WIFI_MESH_DBUS_H__ #include "wifi-mesh.h" -#include "wifi-mesh-internal.h" #ifdef __cplusplus extern "C" { diff --git a/include/wifi-mesh_log.h b/include/wifi-mesh_log.h index 2842cd6..6514bc0 100644 --- a/include/wifi-mesh_log.h +++ b/include/wifi-mesh_log.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef __CAPI_WIFI_MESH_LOG_H__ -#define __CAPI_WIFI_MESH_LOG_H__ +#ifndef __TIZEN_NETWORK_WIFI_MESH_LOG_H__ +#define __TIZEN_NETWORK_WIFI_MESH_LOG_H__ #include @@ -70,4 +70,4 @@ } \ } while (0) -#endif /* __CAPI_MESH_LOG_H__ */ +#endif /* __TIZEN_NETWORK_WIFI_MESH_LOG_H__ */ diff --git a/include/wifi-mesh_service_error.h b/include/wifi-mesh_service_error.h index ba51996..3d13eb7 100644 --- a/include/wifi-mesh_service_error.h +++ b/include/wifi-mesh_service_error.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef __WIFI_MESH_SERVICE_ERROR_H__ -#define __WIFI_MESH_SERVICE_ERROR_H__ +#ifndef __TIZEN_NETWORK_WIFI_MESH_SERVICE_ERROR_H__ +#define __TIZEN_NETWORK_WIFI_MESH_SERVICE_ERROR_H__ #ifdef __cplusplus extern "C" { @@ -36,4 +36,4 @@ typedef enum { } #endif -#endif /** __WIFI_MESH_SERVICE_ERROR_H__ */ +#endif /* __TIZEN_NETWORK_WIFI_MESH_SERVICE_ERROR_H__ */ diff --git a/src/wifi-mesh-internal.c b/src/wifi-mesh-internal.c deleted file mode 100644 index c6356af..0000000 --- a/src/wifi-mesh-internal.c +++ /dev/null @@ -1,1346 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "wifi-mesh.h" -#include "wifi-mesh_log.h" -#include "wifi-mesh_private.h" -#include "wifi-mesh_dbus.h" - -/** - * Wi-Fi Mesh network CAPI - */ - -EXPORT_API int wifi_mesh_network_get_data_rate(wifi_mesh_network_h network, - int *data_rate) -{ - struct mesh_network_s *net = (struct mesh_network_s *)network; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == network || NULL == data_rate) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *data_rate = net->data_rate; - - return WIFI_MESH_ERROR_NONE; -} - -EXPORT_API int wifi_mesh_network_set_data_rate(wifi_mesh_network_h network, - int data_rate) -{ - struct mesh_network_s *net = (struct mesh_network_s *)network; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == network) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - net->data_rate = data_rate; - - return WIFI_MESH_ERROR_NONE; -} - -EXPORT_API int wifi_mesh_cancel_scan(wifi_mesh_h handle) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - rv = _wifi_mesh_cancel_scan(handle); - return rv; -} - -EXPORT_API int wifi_mesh_set_gate(wifi_mesh_h handle, int gate_announce, - int hwmp_root_mode, bool stp) -{ - int rv = 0; - int _stp = stp ? 1 : 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - rv = _wifi_mesh_set_gate(handle, gate_announce, hwmp_root_mode, _stp); - return rv; -} - -EXPORT_API int wifi_mesh_unset_gate(wifi_mesh_h handle) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - rv = _wifi_mesh_unset_gate(handle); - return rv; -} - -EXPORT_API int wifi_mesh_get_stations_info(wifi_mesh_h handle, - wifi_mesh_station_type_e sta_type, wifi_mesh_found_station_cb cb, - void *user_data) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle || NULL == cb) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - switch (sta_type) { - case MESH_STATION_TYPE_MESH_POINT: - case MESH_STATION_TYPE_SOFTAP: - rv = _wifi_mesh_get_stations_info(handle, sta_type, cb, user_data); - break; - default: - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - } - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_bssid(wifi_mesh_station_info_h station, - gchar** bssid) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == bssid) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *bssid = psta->bssid; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_inactive_time(wifi_mesh_station_info_h station, - guint* inactive_time) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == inactive_time) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *inactive_time = psta->inactive_time; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_rx_bytes(wifi_mesh_station_info_h station, - guint64* rx_bytes) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == rx_bytes) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *rx_bytes = psta->rx_bytes; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_rx_packets(wifi_mesh_station_info_h station, - guint* rx_packets) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == rx_packets) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *rx_packets = psta->rx_packets; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tx_bytes(wifi_mesh_station_info_h station, - guint64* tx_bytes) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tx_bytes) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tx_bytes = psta->tx_bytes; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tx_packets(wifi_mesh_station_info_h station, - guint* tx_packets) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tx_packets) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tx_packets = psta->tx_packets; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tx_retries(wifi_mesh_station_info_h station, - guint* tx_retries) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tx_retries) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tx_retries = psta->tx_retries; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tx_failed(wifi_mesh_station_info_h station, - guint* tx_failed) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tx_failed) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tx_failed = psta->tx_failed; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_beacon_loss(wifi_mesh_station_info_h station, - guint* beacon_loss) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == beacon_loss) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *beacon_loss = psta->beacon_loss; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_beacon_rx(wifi_mesh_station_info_h station, - guint64* beacon_rx) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == beacon_rx) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *beacon_rx = psta->beacon_rx; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_rx_drop_misc(wifi_mesh_station_info_h station, - guint64* rx_drop_misc) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == rx_drop_misc) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *rx_drop_misc = psta->rx_drop_misc; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_signal(wifi_mesh_station_info_h station, - gint* signal) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == signal) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *signal = psta->signal; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_signal_avg(wifi_mesh_station_info_h station, - gint* signal_avg) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == signal_avg) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *signal_avg = psta->signal_avg; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tx_bitrate(wifi_mesh_station_info_h station, - guint* tx_bitrate) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tx_bitrate) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tx_bitrate = psta->tx_bitrate; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_rx_bitrate(wifi_mesh_station_info_h station, - guint* rx_bitrate) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == rx_bitrate) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *rx_bitrate = psta->rx_bitrate; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_mesh_llid(wifi_mesh_station_info_h station, - gushort* mesh_llid) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == mesh_llid) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *mesh_llid = psta->mesh_llid; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_mesh_plid(wifi_mesh_station_info_h station, - gushort* mesh_plid) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == mesh_plid) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *mesh_plid = psta->mesh_plid; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_mesh_plink(wifi_mesh_station_info_h station, - guchar* mesh_plink) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == mesh_plink) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *mesh_plink = psta->mesh_plink; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_local_ps_mode(wifi_mesh_station_info_h station, - guint* local_ps_mode) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == local_ps_mode) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *local_ps_mode = psta->local_ps_mode; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_peer_ps_mode(wifi_mesh_station_info_h station, - guint* peer_ps_mode) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == peer_ps_mode) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *peer_ps_mode = psta->peer_ps_mode; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_non_peer_ps_mode( - wifi_mesh_station_info_h station, guint* non_peer_ps_mode) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == non_peer_ps_mode) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { - /* LCOV_EXCL_START */ - LOGE("Invalid Station Type"); - return WIFI_MESH_ERROR_INVALID_OPERATION; - /* LCOV_EXCL_STOP */ - } - - *non_peer_ps_mode = psta->non_peer_ps_mode; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_authorized(wifi_mesh_station_info_h station, - gboolean* authorized) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == authorized) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *authorized = psta->authorized; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_authenticated(wifi_mesh_station_info_h station, - gboolean* authenticated) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == authenticated) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *authenticated = psta->authenticated; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_associated(wifi_mesh_station_info_h station, - gboolean* associated) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == associated) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *associated = psta->associated; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_preamble(wifi_mesh_station_info_h station, - gboolean* preamble) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == preamble) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *preamble = psta->preamble; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_wmm_wme(wifi_mesh_station_info_h station, - gboolean* wmm_wme) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == wmm_wme) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *wmm_wme = psta->wmm_wme; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_mfp(wifi_mesh_station_info_h station, - gboolean* mfp) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == mfp) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *mfp = psta->mfp; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_tdls_peer(wifi_mesh_station_info_h station, - gboolean* tdls_peer) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == tdls_peer) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *tdls_peer = psta->tdls_peer; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_dtim_period(wifi_mesh_station_info_h station, - guchar* dtim_period) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == dtim_period) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *dtim_period = psta->dtim_period; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_beacon_interval(wifi_mesh_station_info_h station, - gushort* beacon_interval) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == beacon_interval) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *beacon_interval = psta->beacon_interval; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_cts_protection(wifi_mesh_station_info_h station, - gboolean* cts_protection) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == cts_protection) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *cts_protection = psta->cts_protection; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_short_preamble(wifi_mesh_station_info_h station, - gboolean* short_preamble) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == short_preamble) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *short_preamble = psta->short_preamble; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_short_slot_time(wifi_mesh_station_info_h station, - gboolean* short_slot_time) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == short_slot_time) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *short_slot_time = psta->short_slot_time; - return rv; -} - -EXPORT_API int wifi_mesh_get_sta_connected_time(wifi_mesh_station_info_h station, - guint* connected_time) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_station_info_s *psta = station; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == station || NULL == connected_time) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *connected_time = psta->connected_time; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_info(wifi_mesh_h handle, mesh_found_mpath_cb cb, - void *user_data) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle || NULL == cb) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - rv = _wifi_mesh_get_mpath_info(handle, cb, user_data); - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_dest_addr(wifi_mesh_mpath_info_h mpath, - gchar** dest_addr) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == dest_addr) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *dest_addr = pdump->dest_addr; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_next_hop(wifi_mesh_mpath_info_h mpath, - gchar** next_hop) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == next_hop) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *next_hop = pdump->next_hop; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_iface(wifi_mesh_mpath_info_h mpath, - gchar** iface) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == iface) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *iface = pdump->iface; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_sn(wifi_mesh_mpath_info_h mpath, - guint* sn) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == sn) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *sn = pdump->sn; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_metric(wifi_mesh_mpath_info_h mpath, - guint* metric) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == metric) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *metric = pdump->metric; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_qlen(wifi_mesh_mpath_info_h mpath, - guint* qlen) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == qlen) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *qlen = pdump->qlen; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_exptime(wifi_mesh_mpath_info_h mpath, - guint* exptime) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == exptime) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *exptime = pdump->exptime; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_disc_timeout(wifi_mesh_mpath_info_h mpath, - guint* discovery_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == discovery_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *discovery_timeout = pdump->discovery_timeout; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_disc_retries(wifi_mesh_mpath_info_h mpath, - guchar* discovery_retries) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == discovery_retries) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *discovery_retries = pdump->discovery_retries; - return rv; -} - -EXPORT_API int wifi_mesh_get_mpath_flags(wifi_mesh_mpath_info_h mpath, - guchar* flags) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_mpath_dump_s *pdump = mpath; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == mpath || NULL == flags) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *flags = pdump->flags; - return rv; -} - -EXPORT_API int wifi_mesh_set_interfaces(wifi_mesh_h handle, - const char *mesh, const char* gate, const char *softap) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle || NULL == mesh) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - rv = _wifi_mesh_set_interfaces(handle, mesh, gate, softap); - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_info(wifi_mesh_h handle, - wifi_mesh_meshconf_info_h *meshconf) -{ - int rv = 0; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == handle || NULL == meshconf) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - rv = _wifi_mesh_get_meshconf_info(handle, meshconf); - return rv; -} - -EXPORT_API int wifi_mesh_destroy_meshconf_info( - wifi_mesh_meshconf_info_h meshconf) -{ - struct mesh_meshconf_dump_s *meshparam = meshconf; - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshparam) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - g_free(meshparam); - return WIFI_MESH_ERROR_NONE; -} - -EXPORT_API int wifi_mesh_get_meshconf_retry_timeout( - wifi_mesh_meshconf_info_h meshconf, gushort *retry_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == retry_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *retry_timeout = pdump->retry_timeout; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_hwmp_max_preq_retries( - wifi_mesh_meshconf_info_h meshconf, - guchar *hwmp_max_preq_retries) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == hwmp_max_preq_retries) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *hwmp_max_preq_retries = pdump->hwmp_max_preq_retries; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_confirm_timeout( - wifi_mesh_meshconf_info_h meshconf, gushort *confirm_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == confirm_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *confirm_timeout = pdump->confirm_timeout; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_path_refresh_time( - wifi_mesh_meshconf_info_h meshconf, guint *path_refresh_time) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == path_refresh_time) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *path_refresh_time = pdump->path_refresh_time; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_holding_timeout( - wifi_mesh_meshconf_info_h meshconf, gushort *holding_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == holding_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *holding_timeout = pdump->holding_timeout; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_min_disc_timeout( - wifi_mesh_meshconf_info_h meshconf, gushort *min_disc_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == min_disc_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *min_disc_timeout = pdump->min_disc_timeout; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_max_peer_links( - wifi_mesh_meshconf_info_h meshconf, gushort *max_peer_links) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == max_peer_links) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *max_peer_links = pdump->max_peer_links; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_hwmp_preq_min_interval( - wifi_mesh_meshconf_info_h meshconf, - gushort *hwmp_preq_min_interval) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == hwmp_preq_min_interval) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *hwmp_preq_min_interval = pdump->hwmp_preq_min_interval; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_ttl( - wifi_mesh_meshconf_info_h meshconf, guchar *ttl) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == ttl) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *ttl = pdump->ttl; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_hwmp_active_path_timeout( - wifi_mesh_meshconf_info_h meshconf, - guint *hwmp_active_path_timeout) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == hwmp_active_path_timeout) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *hwmp_active_path_timeout = pdump->hwmp_active_path_timeout; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_element_ttl( - wifi_mesh_meshconf_info_h meshconf, guchar *element_ttl) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == element_ttl) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *element_ttl = pdump->element_ttl; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_hwmp_rann_interval( - wifi_mesh_meshconf_info_h meshconf, gushort *hwmp_rann_interval) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == hwmp_rann_interval) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *hwmp_rann_interval = pdump->hwmp_rann_interval; - - return rv; -} - -EXPORT_API int wifi_mesh_get_meshconf_gate_announcements( - wifi_mesh_meshconf_info_h meshconf, guchar *gate_announcements) -{ - int rv = WIFI_MESH_ERROR_NONE; - struct mesh_meshconf_dump_s *pdump = meshconf; - - CHECK_FEATURE_SUPPORTED(MESH_FEATURE); - - if (NULL == meshconf || NULL == gate_announcements) { - /* LCOV_EXCL_START */ - LOGE("Invalid parameter"); - return WIFI_MESH_ERROR_INVALID_PARAMETER; - /* LCOV_EXCL_STOP */ - } - - *gate_announcements = pdump->gate_announcements; - - return rv; -} diff --git a/src/wifi-mesh.c b/src/wifi-mesh.c index fd9ade0..d59495e 100644 --- a/src/wifi-mesh.c +++ b/src/wifi-mesh.c @@ -711,8 +711,7 @@ EXPORT_API int wifi_mesh_set_softap(wifi_mesh_h handle, const char* ssid, if (channel <= 13) { buf[0] = 'g'; buf[1] = 0; - } - else { + } else { buf[0] = 'a'; buf[1] = 0; } @@ -856,3 +855,1324 @@ EXPORT_API int wifi_mesh_forget_network(wifi_mesh_h handle, wifi_mesh_network_h return rv; } +EXPORT_API int wifi_mesh_network_get_data_rate(wifi_mesh_network_h network, + int *data_rate) +{ + struct mesh_network_s *net = (struct mesh_network_s *)network; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == network || NULL == data_rate) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *data_rate = net->data_rate; + + return WIFI_MESH_ERROR_NONE; +} + +EXPORT_API int wifi_mesh_network_set_data_rate(wifi_mesh_network_h network, + int data_rate) +{ + struct mesh_network_s *net = (struct mesh_network_s *)network; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == network) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + net->data_rate = data_rate; + + return WIFI_MESH_ERROR_NONE; +} + +EXPORT_API int wifi_mesh_cancel_scan(wifi_mesh_h handle) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + rv = _wifi_mesh_cancel_scan(handle); + return rv; +} + +EXPORT_API int wifi_mesh_set_gate(wifi_mesh_h handle, int gate_announce, + int hwmp_root_mode, bool stp) +{ + int rv = 0; + int _stp = stp ? 1 : 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + rv = _wifi_mesh_set_gate(handle, gate_announce, hwmp_root_mode, _stp); + return rv; +} + +EXPORT_API int wifi_mesh_unset_gate(wifi_mesh_h handle) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + rv = _wifi_mesh_unset_gate(handle); + return rv; +} + +EXPORT_API int wifi_mesh_get_stations_info(wifi_mesh_h handle, + wifi_mesh_station_type_e sta_type, wifi_mesh_found_station_cb cb, + void *user_data) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle || NULL == cb) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + switch (sta_type) { + case MESH_STATION_TYPE_MESH_POINT: + case MESH_STATION_TYPE_SOFTAP: + rv = _wifi_mesh_get_stations_info(handle, sta_type, cb, user_data); + break; + default: + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + } + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_bssid(wifi_mesh_station_info_h station, + char** bssid) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == bssid) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *bssid = psta->bssid; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_inactive_time(wifi_mesh_station_info_h station, + unsigned int* inactive_time) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == inactive_time) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *inactive_time = psta->inactive_time; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_rx_bytes(wifi_mesh_station_info_h station, + unsigned long* rx_bytes) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == rx_bytes) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *rx_bytes = psta->rx_bytes; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_rx_packets(wifi_mesh_station_info_h station, + unsigned int* rx_packets) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == rx_packets) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *rx_packets = psta->rx_packets; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tx_bytes(wifi_mesh_station_info_h station, + unsigned long* tx_bytes) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tx_bytes) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tx_bytes = psta->tx_bytes; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tx_packets(wifi_mesh_station_info_h station, + unsigned int* tx_packets) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tx_packets) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tx_packets = psta->tx_packets; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tx_retries(wifi_mesh_station_info_h station, + unsigned int* tx_retries) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tx_retries) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tx_retries = psta->tx_retries; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tx_failed(wifi_mesh_station_info_h station, + unsigned int* tx_failed) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tx_failed) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tx_failed = psta->tx_failed; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_beacon_loss(wifi_mesh_station_info_h station, + unsigned int* beacon_loss) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == beacon_loss) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *beacon_loss = psta->beacon_loss; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_beacon_rx(wifi_mesh_station_info_h station, + unsigned long* beacon_rx) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == beacon_rx) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *beacon_rx = psta->beacon_rx; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_rx_drop_misc(wifi_mesh_station_info_h station, + unsigned long* rx_drop_misc) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == rx_drop_misc) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *rx_drop_misc = psta->rx_drop_misc; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_signal(wifi_mesh_station_info_h station, + int* signal) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == signal) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *signal = psta->signal; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_signal_avg(wifi_mesh_station_info_h station, + int* signal_avg) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == signal_avg) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *signal_avg = psta->signal_avg; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tx_bitrate(wifi_mesh_station_info_h station, + unsigned int* tx_bitrate) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tx_bitrate) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tx_bitrate = psta->tx_bitrate; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_rx_bitrate(wifi_mesh_station_info_h station, + unsigned int* rx_bitrate) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == rx_bitrate) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *rx_bitrate = psta->rx_bitrate; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_mesh_llid(wifi_mesh_station_info_h station, + unsigned short* mesh_llid) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == mesh_llid) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *mesh_llid = psta->mesh_llid; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_mesh_plid(wifi_mesh_station_info_h station, + unsigned short* mesh_plid) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == mesh_plid) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *mesh_plid = psta->mesh_plid; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_mesh_plink(wifi_mesh_station_info_h station, + unsigned char* mesh_plink) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == mesh_plink) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *mesh_plink = psta->mesh_plink; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_local_ps_mode(wifi_mesh_station_info_h station, + unsigned int* local_ps_mode) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == local_ps_mode) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *local_ps_mode = psta->local_ps_mode; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_peer_ps_mode(wifi_mesh_station_info_h station, + unsigned int* peer_ps_mode) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == peer_ps_mode) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *peer_ps_mode = psta->peer_ps_mode; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_non_peer_ps_mode( + wifi_mesh_station_info_h station, unsigned int* non_peer_ps_mode) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == non_peer_ps_mode) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + if (psta->sta_type == MESH_STATION_TYPE_SOFTAP) { + /* LCOV_EXCL_START */ + LOGE("Invalid Station Type"); + return WIFI_MESH_ERROR_INVALID_OPERATION; + /* LCOV_EXCL_STOP */ + } + + *non_peer_ps_mode = psta->non_peer_ps_mode; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_authorized(wifi_mesh_station_info_h station, + bool* authorized) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == authorized) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *authorized = psta->authorized; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_authenticated(wifi_mesh_station_info_h station, + bool* authenticated) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == authenticated) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *authenticated = psta->authenticated; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_associated(wifi_mesh_station_info_h station, + bool* associated) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == associated) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *associated = psta->associated; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_preamble(wifi_mesh_station_info_h station, + bool* preamble) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == preamble) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *preamble = psta->preamble; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_wmm_wme(wifi_mesh_station_info_h station, + bool* wmm_wme) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == wmm_wme) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *wmm_wme = psta->wmm_wme; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_mfp(wifi_mesh_station_info_h station, + bool* mfp) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == mfp) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *mfp = psta->mfp; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_tdls_peer(wifi_mesh_station_info_h station, + bool* tdls_peer) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == tdls_peer) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *tdls_peer = psta->tdls_peer; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_dtim_period(wifi_mesh_station_info_h station, + unsigned char* dtim_period) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == dtim_period) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *dtim_period = psta->dtim_period; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_beacon_interval(wifi_mesh_station_info_h station, + unsigned short* beacon_interval) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == beacon_interval) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *beacon_interval = psta->beacon_interval; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_cts_protection(wifi_mesh_station_info_h station, + bool* cts_protection) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == cts_protection) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *cts_protection = psta->cts_protection; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_short_preamble(wifi_mesh_station_info_h station, + bool* short_preamble) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == short_preamble) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *short_preamble = psta->short_preamble; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_short_slot_time(wifi_mesh_station_info_h station, + bool* short_slot_time) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == short_slot_time) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *short_slot_time = psta->short_slot_time; + return rv; +} + +EXPORT_API int wifi_mesh_get_sta_connected_time(wifi_mesh_station_info_h station, + unsigned int* connected_time) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_station_info_s *psta = station; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == station || NULL == connected_time) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *connected_time = psta->connected_time; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_info(wifi_mesh_h handle, mesh_found_mpath_cb cb, + void *user_data) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle || NULL == cb) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + rv = _wifi_mesh_get_mpath_info(handle, cb, user_data); + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_dest_addr(wifi_mesh_mpath_info_h mpath, + char** dest_addr) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == dest_addr) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *dest_addr = pdump->dest_addr; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_next_hop(wifi_mesh_mpath_info_h mpath, + char** next_hop) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == next_hop) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *next_hop = pdump->next_hop; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_iface(wifi_mesh_mpath_info_h mpath, + char** iface) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == iface) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *iface = pdump->iface; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_sn(wifi_mesh_mpath_info_h mpath, + unsigned int* sn) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == sn) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *sn = pdump->sn; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_metric(wifi_mesh_mpath_info_h mpath, + unsigned int* metric) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == metric) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *metric = pdump->metric; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_qlen(wifi_mesh_mpath_info_h mpath, + unsigned int* qlen) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == qlen) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *qlen = pdump->qlen; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_exptime(wifi_mesh_mpath_info_h mpath, + unsigned int* exptime) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == exptime) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *exptime = pdump->exptime; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_disc_timeout(wifi_mesh_mpath_info_h mpath, + unsigned int* discovery_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == discovery_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *discovery_timeout = pdump->discovery_timeout; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_disc_retries(wifi_mesh_mpath_info_h mpath, + unsigned char* discovery_retries) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == discovery_retries) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *discovery_retries = pdump->discovery_retries; + return rv; +} + +EXPORT_API int wifi_mesh_get_mpath_flags(wifi_mesh_mpath_info_h mpath, + unsigned char* flags) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_mpath_dump_s *pdump = mpath; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == mpath || NULL == flags) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *flags = pdump->flags; + return rv; +} + +EXPORT_API int wifi_mesh_set_interfaces(wifi_mesh_h handle, + const char *mesh, const char* gate, const char *softap) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle || NULL == mesh) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + rv = _wifi_mesh_set_interfaces(handle, mesh, gate, softap); + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_info(wifi_mesh_h handle, + wifi_mesh_meshconf_info_h *meshconf) +{ + int rv = 0; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == handle || NULL == meshconf) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + rv = _wifi_mesh_get_meshconf_info(handle, meshconf); + return rv; +} + +EXPORT_API int wifi_mesh_destroy_meshconf_info( + wifi_mesh_meshconf_info_h meshconf) +{ + struct mesh_meshconf_dump_s *meshparam = meshconf; + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshparam) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + g_free(meshparam); + return WIFI_MESH_ERROR_NONE; +} + +EXPORT_API int wifi_mesh_get_meshconf_retry_timeout( + wifi_mesh_meshconf_info_h meshconf, unsigned short *retry_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == retry_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *retry_timeout = pdump->retry_timeout; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_hwmp_max_preq_retries( + wifi_mesh_meshconf_info_h meshconf, + unsigned char *hwmp_max_preq_retries) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == hwmp_max_preq_retries) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *hwmp_max_preq_retries = pdump->hwmp_max_preq_retries; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_confirm_timeout( + wifi_mesh_meshconf_info_h meshconf, unsigned short *confirm_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == confirm_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *confirm_timeout = pdump->confirm_timeout; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_path_refresh_time( + wifi_mesh_meshconf_info_h meshconf, unsigned int *path_refresh_time) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == path_refresh_time) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *path_refresh_time = pdump->path_refresh_time; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_holding_timeout( + wifi_mesh_meshconf_info_h meshconf, unsigned short *holding_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == holding_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *holding_timeout = pdump->holding_timeout; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_min_disc_timeout( + wifi_mesh_meshconf_info_h meshconf, unsigned short *min_disc_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == min_disc_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *min_disc_timeout = pdump->min_disc_timeout; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_max_peer_links( + wifi_mesh_meshconf_info_h meshconf, unsigned short *max_peer_links) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == max_peer_links) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *max_peer_links = pdump->max_peer_links; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_hwmp_preq_min_interval( + wifi_mesh_meshconf_info_h meshconf, + unsigned short *hwmp_preq_min_interval) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == hwmp_preq_min_interval) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *hwmp_preq_min_interval = pdump->hwmp_preq_min_interval; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_ttl( + wifi_mesh_meshconf_info_h meshconf, unsigned char *ttl) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == ttl) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *ttl = pdump->ttl; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_hwmp_active_path_timeout( + wifi_mesh_meshconf_info_h meshconf, + unsigned int *hwmp_active_path_timeout) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == hwmp_active_path_timeout) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *hwmp_active_path_timeout = pdump->hwmp_active_path_timeout; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_element_ttl( + wifi_mesh_meshconf_info_h meshconf, unsigned char *element_ttl) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == element_ttl) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *element_ttl = pdump->element_ttl; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_hwmp_rann_interval( + wifi_mesh_meshconf_info_h meshconf, unsigned short *hwmp_rann_interval) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == hwmp_rann_interval) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *hwmp_rann_interval = pdump->hwmp_rann_interval; + + return rv; +} + +EXPORT_API int wifi_mesh_get_meshconf_gate_announcements( + wifi_mesh_meshconf_info_h meshconf, unsigned char *gate_announcements) +{ + int rv = WIFI_MESH_ERROR_NONE; + struct mesh_meshconf_dump_s *pdump = meshconf; + + CHECK_FEATURE_SUPPORTED(MESH_FEATURE); + + if (NULL == meshconf || NULL == gate_announcements) { + /* LCOV_EXCL_START */ + LOGE("Invalid parameter"); + return WIFI_MESH_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + + *gate_announcements = pdump->gate_announcements; + + return rv; +} diff --git a/test/common.h b/test/common.h index d421e09..93c4ce2 100644 --- a/test/common.h +++ b/test/common.h @@ -19,7 +19,6 @@ #define __COMMON_H__ #include -#include __BEGIN_DECLS diff --git a/test/wifi-mesh-network.c b/test/wifi-mesh-network.c index fa162b8..bb7f7eb 100644 --- a/test/wifi-mesh-network.c +++ b/test/wifi-mesh-network.c @@ -139,40 +139,40 @@ static const char *power_mode_to_string(guint pm) static void found_station_cb(wifi_mesh_station_info_h station, void* user_data) { int ret = WIFI_MESH_ERROR_NONE; - gchar *bssid = NULL; /* station bssid ex) 7c:dd:90:62:37:cf (on mesh0) */ - guint inactive_time; /**< inactive time ex) 1685 ms */ - guint64 rx_bytes; /**< rx bytes ex) 34174 */ - guint rx_packets; /**< rx packet ex) 1181 */ - guint64 tx_bytes; /**< tx bytes ex) 6877 */ - guint tx_packets; /**< tx packets ex) 76 */ - guint tx_retries; /**< tx retries ex) 0 */ - guint tx_failed; /**< tx failed ex) 0 */ - guint beacon_loss; /**< beacon loss count ex) 0 */ - guint64 beacon_rx; /**< beacon rx ex) 0 */ - guint64 rx_drop_misc; /**< rx drop misc ex) 0 */ - gint signal; /**< Signal ex) -64 dBm */ - gint signal_avg; /**< Average Signal ex) -63 dBm */ - guint tx_bitrate; /**< tx bitrate ex) 54.0 MBit/s => 540 */ - guint rx_bitrate; /**< rx bitrate ex) 5.5 MBit/s => 55 */ - gushort mesh_llid; /**< mesh_llid ex) 51731 */ - gushort mesh_plid; /**< mesh plid ex) 35432 */ - guchar mesh_plink; /**< mesh plink ex) ESTAB */ - guint local_ps_mode; /**< mesh local power save mode ex) ACTIVE */ - guint peer_ps_mode; /**< mesh peer power save mode ex) ACTIVE */ - guint non_peer_ps_mode; /**< mesh non-peer power save mode ex) ACTIVE */ - gboolean authorized; /**< authorized ex) yes */ - gboolean authenticated; /**< authenticated ex) yes */ - gboolean associated; /**< associated ex) yes */ - gboolean preamble; /**< preamble ex) long */ - gboolean wmm_wme; /**< WMM/WME supported ex) yes */ - gboolean mfp; /**< MFP ex) no */ - gboolean tdls_peer; /**< TDLS peer ex) no */ - guchar dtim_period; /**< DTIM period ex) 0 */ - gushort beacon_interval; /**< beacon interval ex) 1000 */ - gboolean cts_protection; /**< CTS protection */ - gboolean short_preamble; /**< short preamble */ - gboolean short_slot_time; /**< short slot time supported ex) yes */ - guint connected_time; /**< connected time : ex) 256 seconds */ + char *bssid = NULL; /* station bssid ex) 7c:dd:90:62:37:cf (on mesh0) */ + unsigned int inactive_time; /**< inactive time ex) 1685 ms */ + unsigned long rx_bytes; /**< rx bytes ex) 34174 */ + unsigned int rx_packets; /**< rx packet ex) 1181 */ + unsigned long tx_bytes; /**< tx bytes ex) 6877 */ + unsigned int tx_packets; /**< tx packets ex) 76 */ + unsigned int tx_retries; /**< tx retries ex) 0 */ + unsigned int tx_failed; /**< tx failed ex) 0 */ + unsigned int beacon_loss; /**< beacon loss count ex) 0 */ + unsigned long beacon_rx; /**< beacon rx ex) 0 */ + unsigned long rx_drop_misc; /**< rx drop misc ex) 0 */ + int signal; /**< Signal ex) -64 dBm */ + int signal_avg; /**< Average Signal ex) -63 dBm */ + unsigned int tx_bitrate; /**< tx bitrate ex) 54.0 MBit/s => 540 */ + unsigned int rx_bitrate; /**< rx bitrate ex) 5.5 MBit/s => 55 */ + unsigned short mesh_llid; /**< mesh_llid ex) 51731 */ + unsigned short mesh_plid; /**< mesh plid ex) 35432 */ + unsigned char mesh_plink; /**< mesh plink ex) ESTAB */ + unsigned int local_ps_mode; /**< mesh local power save mode ex) ACTIVE */ + unsigned int peer_ps_mode; /**< mesh peer power save mode ex) ACTIVE */ + unsigned int non_peer_ps_mode; /**< mesh non-peer power save mode ex) ACTIVE */ + bool authorized; /**< authorized ex) yes */ + bool authenticated; /**< authenticated ex) yes */ + bool associated; /**< associated ex) yes */ + bool preamble; /**< preamble ex) long */ + bool wmm_wme; /**< WMM/WME supported ex) yes */ + bool mfp; /**< MFP ex) no */ + bool tdls_peer; /**< TDLS peer ex) no */ + unsigned char dtim_period; /**< DTIM period ex) 0 */ + unsigned short beacon_interval; /**< beacon interval ex) 1000 */ + bool cts_protection; /**< CTS protection */ + bool short_preamble; /**< short preamble */ + bool short_slot_time; /**< short slot time supported ex) yes */ + unsigned int connected_time; /**< connected time : ex) 256 seconds */ msgp("[%d] Station Information Received", g_idx++); @@ -187,13 +187,13 @@ static void found_station_cb(wifi_mesh_station_info_h station, void* user_data) msg("inactive_time = %d ms", inactive_time); ret = wifi_mesh_get_sta_rx_bytes(station, &rx_bytes); if (WIFI_MESH_ERROR_NONE == ret) - msg("rx_bytes = %"G_GUINT64_FORMAT, rx_bytes); + msg("rx_bytes = %lu", rx_bytes); ret = wifi_mesh_get_sta_rx_packets(station, &rx_packets); if (WIFI_MESH_ERROR_NONE == ret) msg("rx_packets = %d", rx_packets); ret = wifi_mesh_get_sta_tx_bytes(station, &tx_bytes); if (WIFI_MESH_ERROR_NONE == ret) - msg("tx_bytes = %"G_GUINT64_FORMAT, tx_bytes); + msg("tx_bytes = %lu", tx_bytes); ret = wifi_mesh_get_sta_tx_packets(station, &tx_packets); if (WIFI_MESH_ERROR_NONE == ret) msg("tx_packets = %d", tx_packets); @@ -208,10 +208,10 @@ static void found_station_cb(wifi_mesh_station_info_h station, void* user_data) msg("beacon_loss = %d", beacon_loss); ret = wifi_mesh_get_sta_beacon_rx(station, &beacon_rx); if (WIFI_MESH_ERROR_NONE == ret) - msg("beacon_rx = %"G_GUINT64_FORMAT, beacon_rx); + msg("beacon_rx = %lu", beacon_rx); ret = wifi_mesh_get_sta_rx_drop_misc(station, &rx_drop_misc); if (WIFI_MESH_ERROR_NONE == ret) - msg("rx_drop_misc = %"G_GUINT64_FORMAT, rx_drop_misc); + msg("rx_drop_misc = %lu", rx_drop_misc); ret = wifi_mesh_get_sta_signal(station, &signal); if (WIFI_MESH_ERROR_NONE == ret) msg("signal = %d dBm", signal); -- 2.34.1