| /* |
| ************************************************************************** |
| * Copyright (c) 2021, The Linux Foundation. All rights reserved. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for any |
| * purpose with or without fee is hereby granted, provided that the above |
| * copyright notice and this permission notice appear in all copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| ************************************************************************** |
| */ |
| |
| /** |
| * nss_wifi_meshmgr.h |
| * Client WiFi-Mesh manager for NSS |
| */ |
| #ifndef ___NSS_WIFI_MESHMGR_H_ |
| #define ___NSS_WIFI_MESHMGR_H_ |
| |
| #define NSS_WIFI_MESH_TX_TIMEOUT 3000 /**< Unit is in milliseconds. */ |
| #define NSS_WIFI_MESH_HANDLE_INVALID -1 /**< Invalid mesh handle ID. */ |
| |
| /** |
| * Mesh status enums |
| */ |
| typedef enum { |
| /* |
| * nss_tx_status_t enums |
| */ |
| NSS_WIFI_MESHMGR_SUCCESS = NSS_TX_SUCCESS, /**< Wi-Fi mesh transmit success. */ |
| NSS_WIFI_MESHMGR_FAILURE = NSS_TX_FAILURE, /**< Wi-Fi mesh transmit failure. */ |
| NSS_WIFI_MESHMGR_FAILURE_QUEUE = NSS_TX_FAILURE_QUEUE, /**< Wi-Fi mesh transmit enqueue failed. */ |
| NSS_WIFI_MESHMGR_FAILURE_NOT_READY = NSS_TX_FAILURE_NOT_READY, /**< Wi-Fi mesh tranmsit core not ready. */ |
| NSS_WIFI_MESHMGR_FAILURE_TOO_LARGE = NSS_TX_FAILURE_TOO_LARGE, /**< Wi-Fi mesh transmit message too large. */ |
| NSS_WIFI_MESHMGR_FAILURE_TOO_SHORT = NSS_TX_FAILURE_TOO_SHORT, /**< WI-Fi mesh transmit message too short. */ |
| NSS_WIFI_MESHMGR_FAILURE_NOT_SUPPORTED = NSS_TX_FAILURE_NOT_SUPPORTED, /**< WI-Fi mesh transmit message not supported. */ |
| NSS_WIFI_MESHMGR_FAILURE_BAD_PARAM = NSS_TX_FAILURE_BAD_PARAM, /**< Wi-Fi mesh transmit invalid parameter. */ |
| NSS_WIFI_MESHMGR_FAILURE_SYNC_TIMEOUT = NSS_TX_FAILURE_SYNC_TIMEOUT, /**< Wi-Fi mesh transmit transmit timed out. */ |
| |
| /* |
| * Mesh specific ones. |
| */ |
| NSS_WIFI_MESHMGR_FAILURE_NULL_MESH_CTX = 100, /**< Wi-Fi NULL mesh context. */ |
| NSS_WIFI_MESHMGR_FAILURE_UNKNOWN_MSG, /**< Wi-Fi mesh unknown message error. */ |
| NSS_WIFI_MESHMGR_FAILURE_TTL_CONFIG, /**< Wi-Fi mesh invalid ttl error. */ |
| NSS_WIFI_MESHMGR_FAILURE_REFRESH_TIME_CONFIG, /**< Wi-Fi mesh invalid refresh time. */ |
| NSS_WIFI_MESHMGR_FAILURE_MPP_LEARNING_MODE_CONFIG, /**< Wi-Fi mesh invalid mpp learning mode. */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_ADD_MAX_RADIO_CNT, /**< Wi-Fi mesh path add error due to max radio count */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_ADD_INVALID_INTERFACE_NUM, /**< Wi-Fi mesh path invalid interface number */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_ADD_INTERFACE_NUM_NOT_FOUND, /**< Wi-Fi mesh path interface number not found. */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_TABLE_FULL, /**< Wi-Fi mesh path table full error */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_ALLOC_FAIL, /**< Wi-Fi mesh path alloc error */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_INSERT_FAIL, /**< Wi-Fi mesh path insert fail */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_NOT_FOUND, /**< Wi-Fi mesh path not found error */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_UNHASHED, /**< Wi-Fi mesh proxy path unhashed error */ |
| NSS_WIFI_MESHMGR_FAILURE_PATH_DELETE_FAIL, /**< Wi-Fi mesh proxy path delete error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_NOT_FOUND, /**< Wi-Fi mesh proxy path not found error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_UNHASHED, /**< Wi-Fi mesh proxy path unhashed error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_DELETE_FAIL, /**< Wi-Fi mesh proxy path delete error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_EXISTS, /**< Wi-Fi mesh proxy path exists error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_ALLOC_FAIL, /**< Wi-Fi mesh proxy path alloc error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_INSERT_FAIL, /**< Wi-Fi mesh proxy path insert error */ |
| NSS_WIFI_MESHMGR_FAILURE_PROXY_PATH_TABLE_FULL, /**< Wi-Fi mesh proxy path table full error */ |
| NSS_WIFI_MESHMGR_FAILURE_PB_ALLOC_FAIL, /**< Wi-Fi mesh pb allocation failures */ |
| NSS_WIFI_MESHMGR_FAILURE_ENQUEUE_TO_HOST_FAIL, /**< Wi-Fi mesh enqueue to host failure */ |
| NSS_WIFI_MESHMGR_FAILURE_ENABLE_INTERFACE_FAIL, /**< Wi-Fi mesh enabling interface failure */ |
| NSS_WIFI_MESHMGR_FAILURE_DISABLE_INTERFACE_FAIL, /**< Wi-Fi mesh disabling interface failure */ |
| NSS_WIFI_MESHMGR_FAILURE_INVALID_EXCEPTION_NUM, /**< Wi-Fi mesh invalid exception number */ |
| NSS_WIFI_MESHMGR_FAILURE_ONESHOT_ALREADY_ATTACHED, /**< Wi-Fi mesh oneshot already attached error */ |
| } nss_wifi_meshmgr_status_t; |
| |
| /** |
| * nss_wifi_mesh_handle_t |
| * Opaque mesh handler |
| */ |
| typedef int32_t nss_wifi_mesh_handle_t; |
| |
| /** |
| * nss_wifi_meshmgr_tx_buf |
| * Sends a Wi-Fi mesh data packet to the NSS interface. |
| * |
| * Note: This API should is used in testing purpose for sending |
| * packets to NSS mesh I/F directly. It should be avoided by the |
| * user. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] os_buf Pointer to the OS data buffer. |
| * |
| * @return |
| * Status of the Tx operation. |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_tx_buf(nss_wifi_mesh_handle_t mesh_handle, struct sk_buff *os_buf); |
| |
| /** |
| * nss_wifi_meshmgr_if_down() |
| * Make the NSS interface down synchronously. |
| * |
| * Note: This is blocking API and should not be called from |
| * atomic context. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_if_down(nss_wifi_mesh_handle_t mesh_handle); |
| |
| /** |
| * nss_wifi_meshmgr_if_up() |
| * Make the NSS interface up synchronously. |
| * |
| * Note: This is blocking API and should not be called from |
| * atomic context. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_if_up(nss_wifi_mesh_handle_t mesh_handle); |
| |
| /** |
| * nss_wifi_meshmgr_dump_mesh_path() |
| * Send dump mesh path table request. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_dump_mesh_path(nss_wifi_mesh_handle_t mesh_handle, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_dump_mesh_path_sync() |
| * Send dump mesh path table request synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t |
| nss_wifi_meshmgr_dump_mesh_path_sync(nss_wifi_mesh_handle_t mesh_handle); |
| |
| /** |
| * nss_wifi_meshmgr_dump_mesh_proxy_path() |
| * Dump mesh proxy path table request. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_dump_mesh_proxy_path(nss_wifi_mesh_handle_t mesh_handle, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_dump_mesh_proxy_path_sync() |
| * Send dump mesh proxy path table request synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_dump_mesh_proxy_path_sync(nss_wifi_mesh_handle_t mesh_handle); |
| |
| /** |
| * nss_wifi_meshmgr_assoc_link_vap |
| * Associate the link interface to the mesh I/F. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_assoc_link_vap \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmalv WiFi interface link vap association message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_assoc_link_vap(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_assoc_link_vap *wmalv, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_assoc_link_vap_sync |
| * Associate the link interface to the mesh I/F synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_assoc_link_vap \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmalv WiFi interface link vap association message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t |
| nss_wifi_meshmgr_assoc_link_vap_sync(nss_wifi_mesh_handle_t mesh_handle, struct nss_wifi_mesh_assoc_link_vap *wmalv); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_config_update |
| * Update mesh configuration message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_config_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmcum WiFi interface configuration message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_config_update(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_config_msg *wmcum, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| /** |
| * nss_wifi_meshmgr_mesh_config_update_sync |
| * Send mesh configuration update message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_config_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmcum WiFi interface configuration message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_config_update_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_config_msg *wmcum); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_delete |
| * Send mesh proxy path delete. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_del_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppdm WiFi mesh proxy path delete message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_delete(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_del_msg *wmppdm, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_delete_sync |
| * Send mesh proxy path delete synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_del_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppdm WiFi mesh proxy path delete message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_delete_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_del_msg *wmppdm); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_update |
| * Send mesh proxy path update. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_update_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppum WiFi mesh proxy path update message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_update(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_update_msg *wmppum, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_update_sync |
| * Send mesh proxy path update synchronously |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_update_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppum WiFi mesh proxy path update message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_update_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_update_msg *wmppum); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_add |
| * Send mesh proxy path add message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_add_msg\n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppam WiFi mesh proxy path add message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_add(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_add_msg *wmppam, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_proxy_path_add_sync |
| * Send mesh proxy path add message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_proxy_path_add_msg\n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmppam WiFi mesh proxy path add message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_proxy_path_add_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_proxy_path_add_msg *wmppam); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_delete |
| * Send mesh path delete message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_del_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpdm WiFi mesh path delete message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_delete(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_del_msg *wmpdm, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_delete_sync |
| * Send mesh path delete message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_del_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpdm WiFi mesh path delete message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_delete_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_del_msg *wmpdm); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_update |
| * Send mesh path update message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_update_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * msg_cb |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpum WiFi mesh path update message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_update(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_update_msg *wmpum, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_update_sync |
| * Send mesh path update message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_update_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpum WiFi mesh path update message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_update_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_update_msg *wmpum); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_add |
| * Send mesh path add message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_add_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpam WiFi mesh path add message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_add(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_add_msg *wmpam, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_add_sync |
| * Send mesh path add message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_mpath_add_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpam WiFi mesh path add message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_add_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_mpath_add_msg *wmpam); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_exception |
| * Send mesh path exception message. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_exception_flag_msg \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpefm WiFi mesh path exception message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_exception(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_exception_flag_msg *wmpefm, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_path_exception_sync |
| * Send mesh path update message synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_exception_flag_msg \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmpefm WiFi mesh path exception flag message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_mesh_path_exception_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_exception_flag_msg *wmpefm); |
| |
| /** |
| * nss_wifi_meshmgr_config_mesh_exception |
| * Configure mesh exceptions. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_rate_limit_config \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmrlc WiFi mesh exception config message. |
| * @param[in] msg_cb Callback for NACK/ACK messages from NSS. |
| * @param[in] app_data Application data for the message callback. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_config_mesh_exception(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_rate_limit_config *wmrlc, |
| nss_wifi_mesh_msg_callback_t msg_cb, |
| void *app_data); |
| |
| /** |
| * nss_wifi_meshmgr_config_mesh_exception_sync |
| * configure mesh exception synchronously. |
| * |
| * @datatypes |
| * nss_wifi_mesh_handle_t \n |
| * nss_wifi_mesh_rate_limit_config \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * @param[in] wmrlc WiFi mesh config exception message. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_config_mesh_exception_sync(nss_wifi_mesh_handle_t mesh_handle, |
| struct nss_wifi_mesh_rate_limit_config *wmrlc); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_if_destroy_sync |
| * Destroy NSS mesh interfaces synchronously. |
| * |
| * @dataypes |
| * nss_wifi_mesh_handle_t \n |
| * |
| * @param[in] mesh_handle Pointer to the mesh handle. |
| * |
| * @return |
| * Status |
| */ |
| extern nss_wifi_meshmgr_status_t nss_wifi_meshmgr_if_destroy_sync(nss_wifi_mesh_handle_t mesh_handle); |
| |
| /** |
| * nss_wifi_meshmgr_mesh_if_create_sync |
| * Create NSS mesh interface synchronously. |
| * |
| * @datatypes |
| * net_device \n |
| * nss_wifi_mesh_config_msg \n |
| * nss_wifi_mesh_data_callback_t \n |
| * nss_wifi_mesh_ext_data_callback_t \n |
| * nss_wifi_mesh_msg_callback_t \n |
| * |
| * @param[in] dev Pointer to the associated network device. |
| * @param[in] config_msg Pointer to the mesh configuration message. |
| * @param[in] data_cb Callback for the Wi-Fi mesh device data. |
| * @param[in] ext_data_cb Callback for the extended data. |
| * @param[in] event_cb Callback for the NSS to Host notify mesage. |
| * |
| * @return |
| * Mesh handle |
| */ |
| extern nss_wifi_mesh_handle_t nss_wifi_meshmgr_if_create_sync(struct net_device *dev, struct nss_wifi_mesh_config_msg *config_msg, |
| nss_wifi_mesh_data_callback_t data_cb, |
| nss_wifi_mesh_ext_data_callback_t ext_data_cb, |
| nss_wifi_mesh_msg_callback_t event_cb); |
| #endif /* __NSS_WIFI_MESHMGR_H */ |