blob: 709a701ae0e2c49ad06877e1fda08dbf2f83b28c [file] [log] [blame]
/*
**************************************************************************
* 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 */