mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
qcacmn: Add public API for connection manager
Add public util API for connection manager to get connection states and set max connection attempts. Change-Id: I66d4318c7465e3926d6bacdc70dbb849827bf2c4 CRs-Fixed: 2787323
This commit is contained in:
parent
54f1e8f100
commit
619e46370d
11 changed files with 370 additions and 71 deletions
|
|
@ -111,10 +111,8 @@ cm_ser_connect_cb(struct wlan_serialization_command *cmd,
|
|||
vdev = cmd->vdev;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm_ctx is NULL, reason: %d", reason);
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
switch (reason) {
|
||||
case WLAN_SER_CB_ACTIVATE_CMD:
|
||||
|
|
@ -308,7 +306,6 @@ void cm_hw_mode_change_resp(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
|
|||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_CM_ID);
|
||||
return;
|
||||
}
|
||||
|
|
@ -629,9 +626,10 @@ static QDF_STATUS cm_get_valid_candidate(struct cnx_mgr *cm_ctx,
|
|||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (cm_req->connect_req.connect_attempts >=
|
||||
CM_MAX_CANDIDATE_TO_BE_TRIED) {
|
||||
mlme_info("Max %d candidates tried for the conenction",
|
||||
cm_req->connect_req.connect_attempts);
|
||||
cm_ctx->max_connect_attempts) {
|
||||
mlme_info("%d attempts tried for the connect req (cm id %d), max %d",
|
||||
cm_req->connect_req.connect_attempts,
|
||||
cm_req->cm_id, cm_ctx->max_connect_attempts);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
|
|
@ -744,10 +742,8 @@ QDF_STATUS cm_try_next_candidate(struct cnx_mgr *cm_ctx,
|
|||
struct cm_req *cm_req;
|
||||
|
||||
cm_req = cm_get_req_by_cm_id(cm_ctx, resp->cm_id);
|
||||
if (!cm_req) {
|
||||
mlme_err("cm req NULL connect fail");
|
||||
if (!cm_req)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
status = cm_get_valid_candidate(cm_ctx, cm_req);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
|
|
@ -786,10 +782,8 @@ QDF_STATUS cm_connect_active(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
|
|||
struct wlan_cm_connect_req *req;
|
||||
|
||||
cm_req = cm_get_req_by_cm_id(cm_ctx, *cm_id);
|
||||
if (!cm_req) {
|
||||
mlme_err("cm req NULL for *cm_id %x", *cm_id);
|
||||
if (!cm_req)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_ctx->active_cm_id = *cm_id;
|
||||
req = &cm_req->connect_req.req;
|
||||
|
|
@ -822,10 +816,8 @@ cm_peer_create_on_bss_select_ind_resp(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
|
|||
struct cm_req *cm_req;
|
||||
|
||||
cm_req = cm_get_req_by_cm_id(cm_ctx, *cm_id);
|
||||
if (!cm_req) {
|
||||
mlme_err("cm req NULL for *cm_id %x", *cm_id);
|
||||
if (!cm_req)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
cm_create_bss_peer(cm_ctx, &cm_req->connect_req);
|
||||
|
||||
|
|
@ -840,10 +832,8 @@ cm_resume_connect_after_peer_create(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
|
|||
QDF_STATUS status;
|
||||
|
||||
cm_req = cm_get_req_by_cm_id(cm_ctx, *cm_id);
|
||||
if (!cm_req) {
|
||||
mlme_err("cm req NULL for *cm_id %x", *cm_id);
|
||||
if (!cm_req)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
/*
|
||||
* fill vdev crypto for the peer.
|
||||
*/
|
||||
|
|
@ -906,14 +896,10 @@ QDF_STATUS cm_connect_complete(struct cnx_mgr *cm_ctx,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
|
||||
sm_state = cm_get_state(cm_ctx);
|
||||
mlme_cm_osif_connect_complete(cm_ctx->vdev, resp);
|
||||
mlme_cm_connect_complete_ind(cm_ctx->vdev, resp);
|
||||
|
||||
if (sm_state == WLAN_CM_S_INIT || sm_state == WLAN_CM_S_CONNECTED) {
|
||||
cm_inform_if_mgr_connect_complete(cm_ctx->vdev,
|
||||
resp->connect_status);
|
||||
cm_inform_blm_connect_complete(cm_ctx->vdev, resp);
|
||||
}
|
||||
mlme_cm_osif_connect_complete(cm_ctx->vdev, resp);
|
||||
cm_inform_if_mgr_connect_complete(cm_ctx->vdev, resp->connect_status);
|
||||
cm_inform_blm_connect_complete(cm_ctx->vdev, resp);
|
||||
|
||||
/* Update scan entry in case connect is success or fails with bssid */
|
||||
if (!qdf_is_macaddr_zero(&resp->bssid)) {
|
||||
|
|
@ -932,8 +918,8 @@ QDF_STATUS cm_connect_complete(struct cnx_mgr *cm_ctx,
|
|||
}
|
||||
|
||||
/*
|
||||
* update fils/wep key and inform legacy, update bcn filter and scan
|
||||
* entry mlme info,, start OBSS scan for open mode.
|
||||
* update fils/wep key and inform legacy, update bcn filter,
|
||||
* start OBSS scan for open mode.
|
||||
*/
|
||||
|
||||
cm_remove_cmd(cm_ctx, resp->cm_id);
|
||||
|
|
@ -965,10 +951,8 @@ QDF_STATUS cm_connect_rsp(struct wlan_objmgr_vdev *vdev,
|
|||
uint32_t prefix;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_id = cm_ctx->active_cm_id;
|
||||
prefix = CM_ID_GET_PREFIX(cm_id);
|
||||
|
|
@ -1024,10 +1008,8 @@ QDF_STATUS cm_bss_select_ind_rsp(struct wlan_objmgr_vdev *vdev,
|
|||
struct wlan_cm_connect_rsp *resp;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_id = cm_ctx->active_cm_id;
|
||||
prefix = CM_ID_GET_PREFIX(cm_id);
|
||||
|
|
@ -1086,10 +1068,8 @@ QDF_STATUS cm_bss_peer_create_rsp(struct wlan_objmgr_vdev *vdev,
|
|||
struct wlan_cm_connect_rsp *resp;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_id = cm_ctx->active_cm_id;
|
||||
prefix = CM_ID_GET_PREFIX(cm_id);
|
||||
|
|
@ -1252,11 +1232,8 @@ QDF_STATUS cm_connect_start_req(struct wlan_objmgr_vdev *vdev,
|
|||
QDF_STATUS status;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_vdev_scan_cancel(wlan_vdev_get_pdev(cm_ctx->vdev), cm_ctx->vdev);
|
||||
|
||||
|
|
|
|||
|
|
@ -137,10 +137,8 @@ QDF_STATUS cm_disconnect_active(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
|
|||
struct cm_req *cm_req;
|
||||
|
||||
cm_req = cm_get_req_by_cm_id(cm_ctx, *cm_id);
|
||||
if (!cm_req) {
|
||||
mlme_err("cm req NULL connect fail");
|
||||
if (!cm_req)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
cm_ctx->active_cm_id = *cm_id;
|
||||
|
||||
|
|
@ -185,11 +183,8 @@ QDF_STATUS cm_disconnect_start_req(struct wlan_objmgr_vdev *vdev,
|
|||
QDF_STATUS status;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm ctx NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* This would be freed as part of removal from cm req list if adding
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ QDF_STATUS wlan_cm_init(struct vdev_mlme_obj *vdev_mlme)
|
|||
vdev_mlme->cnx_mgr_ctx = NULL;
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
vdev_mlme->cnx_mgr_ctx->max_connect_attempts =
|
||||
CM_MAX_CONNECT_ATTEMPTS;
|
||||
qdf_list_create(&vdev_mlme->cnx_mgr_ctx->req_list, CM_MAX_REQ);
|
||||
cm_req_lock_create(vdev_mlme->cnx_mgr_ctx);
|
||||
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@
|
|||
#ifdef FEATURE_CM_ENABLE
|
||||
#include <wlan_cm_public_struct.h>
|
||||
|
||||
/* Max candidate to be tried to connect */
|
||||
#define CM_MAX_CANDIDATE_TO_BE_TRIED 5
|
||||
/* Max candidate/attempts to be tried to connect */
|
||||
#define CM_MAX_CONNECT_ATTEMPTS 5
|
||||
/* Max time to wait for scan for SSID */
|
||||
#define CM_SCAN_MAX_TIME 5000
|
||||
/* Max connect/disconnect/roam req that can be queued at a time */
|
||||
|
|
@ -169,6 +169,7 @@ struct connect_ies {
|
|||
* @req_ie: request ies for connect/disconnect set by osif/user separately from
|
||||
* connect req
|
||||
* @global_cmd_id: global cmd id for getting cm id for connect/disconnect req
|
||||
* @max_connect_attempts: Max attempts to be tried for a connect req
|
||||
*/
|
||||
struct cnx_mgr {
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
|
@ -185,6 +186,7 @@ struct cnx_mgr {
|
|||
bool force_rsne_override;
|
||||
struct connect_ies req_ie;
|
||||
qdf_atomic_t global_cmd_id;
|
||||
uint8_t max_connect_attempts;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -308,13 +308,17 @@ static inline bool cm_ser_get_blocking_cmd(void)
|
|||
*/
|
||||
wlan_cm_id cm_get_cm_id(struct cnx_mgr *cm_ctx, enum wlan_cm_source source);
|
||||
|
||||
struct cnx_mgr *cm_get_cm_ctx_fl(struct wlan_objmgr_vdev *vdev,
|
||||
const char *func, uint32_t line);
|
||||
|
||||
/**
|
||||
* cm_get_cm_ctx() - Get connection manager context from vdev
|
||||
* @vdev: vdev object pointer
|
||||
*
|
||||
* Return: pointer to connection manager context
|
||||
*/
|
||||
struct cnx_mgr *cm_get_cm_ctx(struct wlan_objmgr_vdev *vdev);
|
||||
#define cm_get_cm_ctx(vdev) \
|
||||
cm_get_cm_ctx_fl(vdev, __func__, __LINE__)
|
||||
|
||||
/**
|
||||
* cm_reset_active_cm_id() - Reset active cm_id from cm context, if its same as
|
||||
|
|
@ -417,6 +421,9 @@ QDF_STATUS cm_add_req_to_list_and_indicate_osif(struct cnx_mgr *cm_ctx,
|
|||
struct cm_req *cm_req,
|
||||
enum wlan_cm_source source);
|
||||
|
||||
struct cm_req *cm_get_req_by_cm_id_fl(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id,
|
||||
const char *func, uint32_t line);
|
||||
|
||||
/**
|
||||
* cm_get_req_by_cm_id() - Get cm req matching the cm id
|
||||
* @cm_ctx: connection manager context
|
||||
|
|
@ -428,7 +435,8 @@ QDF_STATUS cm_add_req_to_list_and_indicate_osif(struct cnx_mgr *cm_ctx,
|
|||
*
|
||||
* Return: cm req from the req list whose cm id matches the argument
|
||||
*/
|
||||
struct cm_req *cm_get_req_by_cm_id(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id);
|
||||
#define cm_get_req_by_cm_id(cm_ctx, cm_id) \
|
||||
cm_get_req_by_cm_id_fl(cm_ctx, cm_id, __func__, __LINE__)
|
||||
|
||||
/**
|
||||
* cm_vdev_scan_cancel() - cancel all scans for vdev
|
||||
|
|
@ -440,4 +448,56 @@ struct cm_req *cm_get_req_by_cm_id(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id);
|
|||
void cm_vdev_scan_cancel(struct wlan_objmgr_pdev *pdev,
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* cm_set_max_connect_attempts() - Set max connect attempts
|
||||
* @vdev: vdev pointer
|
||||
* @max_connect_attempts: max connect attempts to be set.
|
||||
*
|
||||
* Set max connect attempts. Max value is limited to CM_MAX_CONNECT_ATTEMPTS.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t max_connect_attempts);
|
||||
|
||||
/**
|
||||
* cm_is_vdev_connecting() - check if vdev is in conneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* cm_is_vdev_connected() - check if vdev is in conneted state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* cm_is_vdev_disconnecting() - check if vdev is in disconneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* cm_is_vdev_disconnected() - check if vdev is disconnected/init state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* cm_is_vdev_roaming() - check if vdev is in roaming state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#endif /* __WLAN_CM_MAIN_API_H__ */
|
||||
|
|
|
|||
|
|
@ -853,10 +853,9 @@ QDF_STATUS cm_sm_deliver_event(struct wlan_objmgr_vdev *vdev,
|
|||
}
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx) {
|
||||
mlme_err("cm_ctx is NULL");
|
||||
if (!cm_ctx)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
cm_lock_acquire(cm_ctx);
|
||||
|
||||
/* store entry state and sub state for prints */
|
||||
|
|
|
|||
|
|
@ -47,15 +47,21 @@ wlan_cm_id cm_get_cm_id(struct cnx_mgr *cm_ctx, enum wlan_cm_source source)
|
|||
return cmd_id;
|
||||
}
|
||||
|
||||
struct cnx_mgr *cm_get_cm_ctx(struct wlan_objmgr_vdev *vdev)
|
||||
struct cnx_mgr *cm_get_cm_ctx_fl(struct wlan_objmgr_vdev *vdev,
|
||||
const char *func, uint32_t line)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct cnx_mgr *cm_ctx = NULL;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme)
|
||||
return NULL;
|
||||
if (vdev_mlme)
|
||||
cm_ctx = vdev_mlme->cnx_mgr_ctx;
|
||||
|
||||
return vdev_mlme->cnx_mgr_ctx;
|
||||
if (!cm_ctx)
|
||||
mlme_nofl_err("%s:%u: cm_ctx NULL vdev %d", func, line,
|
||||
wlan_vdev_get_id(vdev));
|
||||
|
||||
return cm_ctx;
|
||||
}
|
||||
|
||||
void cm_reset_active_cm_id(struct wlan_objmgr_vdev *vdev, wlan_cm_id cm_id)
|
||||
|
|
@ -174,7 +180,8 @@ exit:
|
|||
return match;
|
||||
}
|
||||
|
||||
struct cm_req *cm_get_req_by_cm_id(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id)
|
||||
struct cm_req *cm_get_req_by_cm_id_fl(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id,
|
||||
const char *func, uint32_t line)
|
||||
{
|
||||
qdf_list_node_t *cur_node = NULL, *next_node = NULL;
|
||||
struct cm_req * cm_req;
|
||||
|
|
@ -195,6 +202,9 @@ struct cm_req *cm_get_req_by_cm_id(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id)
|
|||
}
|
||||
cm_req_lock_release(cm_ctx);
|
||||
|
||||
mlme_nofl_info("%s:%u: cm req not found for cm id %d", func,
|
||||
line, cm_id);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -400,3 +410,103 @@ void cm_vdev_scan_cancel(struct wlan_objmgr_pdev *pdev,
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_err("Cancel scan request failed");
|
||||
}
|
||||
|
||||
void cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t max_connect_attempts)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return;
|
||||
|
||||
cm_ctx->max_connect_attempts =
|
||||
QDF_MIN(max_connect_attempts, CM_MAX_CONNECT_ATTEMPTS);
|
||||
mlme_debug("max connect attempts set to %d, requested %d",
|
||||
cm_ctx->max_connect_attempts, max_connect_attempts);
|
||||
}
|
||||
|
||||
bool cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
enum wlan_cm_sm_state state;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return false;
|
||||
|
||||
state = cm_get_state(cm_ctx);
|
||||
|
||||
if (state == WLAN_CM_S_CONNECTING)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
enum wlan_cm_sm_state state;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return false;
|
||||
|
||||
state = cm_get_state(cm_ctx);
|
||||
|
||||
if (state == WLAN_CM_S_CONNECTED)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
enum wlan_cm_sm_state state;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return false;
|
||||
|
||||
state = cm_get_state(cm_ctx);
|
||||
|
||||
if (state == WLAN_CM_S_DISCONNECTING)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
enum wlan_cm_sm_state state;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return false;
|
||||
|
||||
state = cm_get_state(cm_ctx);
|
||||
|
||||
if (state == WLAN_CM_S_INIT)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct cnx_mgr *cm_ctx;
|
||||
enum wlan_cm_sm_state state;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
return false;
|
||||
|
||||
state = cm_get_state(cm_ctx);
|
||||
|
||||
if (state == WLAN_CM_S_ROAMING)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,6 +109,58 @@ QDF_STATUS wlan_cm_bss_peer_delete_rsp(struct wlan_objmgr_vdev *vdev,
|
|||
QDF_STATUS wlan_cm_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp cm_discon_rsp);
|
||||
|
||||
/**
|
||||
* wlan_cm_set_max_connect_attempts() - Set max connect attempts
|
||||
* @vdev: vdev pointer
|
||||
* @max_connect_attempts: max connect attempts to be set.
|
||||
*
|
||||
* Set max connect attempts. Max value is limited to CM_MAX_CONNECT_ATTEMPTS.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void wlan_cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t max_connect_attempts);
|
||||
|
||||
/**
|
||||
* wlan_cm_is_vdev_connecting() - check if vdev is in conneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_cm_is_vdev_connected() - check if vdev is in conneted state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_cm_is_vdev_disconnecting() - check if vdev is in disconneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_cm_is_vdev_disconnected() - check if vdev is disconnected/init state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_cm_is_vdev_roaming() - check if vdev is in roaming state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_cm_reason_code_to_str() - return string conversion of reason code
|
||||
* @reason: reason code.
|
||||
|
|
|
|||
|
|
@ -34,13 +34,8 @@
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline
|
||||
QDF_STATUS ucfg_cm_start_connect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_req *req)
|
||||
{
|
||||
return wlan_cm_start_connect(vdev, req);
|
||||
}
|
||||
|
||||
struct wlan_cm_connect_req *req);
|
||||
|
||||
/**
|
||||
* ucfg_cm_start_disconnect() - disconnect start request
|
||||
|
|
@ -49,12 +44,48 @@ QDF_STATUS ucfg_cm_start_connect(struct wlan_objmgr_vdev *vdev,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline
|
||||
QDF_STATUS ucfg_cm_start_disconnect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *req)
|
||||
{
|
||||
return wlan_cm_start_disconnect(vdev, req);
|
||||
}
|
||||
struct wlan_cm_disconnect_req *req);
|
||||
|
||||
/**
|
||||
* ucfg_cm_is_vdev_connecting() - check if vdev is in conneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool ucfg_cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_cm_is_vdev_connected() - check if vdev is in conneted state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool ucfg_cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_cm_is_vdev_disconnecting() - check if vdev is in disconneting state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool ucfg_cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_cm_is_vdev_disconnected() - check if vdev is disconnected/init state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool ucfg_cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_cm_is_vdev_roaming() - check if vdev is in roaming state
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool ucfg_cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_cm_reason_code_to_str() - return string conversion of reason code
|
||||
|
|
|
|||
|
|
@ -72,6 +72,37 @@ QDF_STATUS wlan_cm_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
void wlan_cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t max_connect_attempts)
|
||||
{
|
||||
cm_set_max_connect_attempts(vdev, max_connect_attempts);
|
||||
}
|
||||
|
||||
bool wlan_cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool wlan_cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool wlan_cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool wlan_cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool wlan_cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
const char *wlan_cm_reason_code_to_str(enum wlan_reason_code reason)
|
||||
{
|
||||
if (reason > REASON_PROP_START)
|
||||
|
|
|
|||
|
|
@ -19,3 +19,43 @@
|
|||
*
|
||||
* This file maintains definitaions public ucfg apis.
|
||||
*/
|
||||
|
||||
#include <wlan_cm_ucfg_api.h>
|
||||
#include "connection_mgr/core/src/wlan_cm_main_api.h"
|
||||
|
||||
QDF_STATUS ucfg_cm_start_connect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_req *req)
|
||||
{
|
||||
return cm_connect_start_req(vdev, req);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_cm_start_disconnect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *req)
|
||||
{
|
||||
return cm_disconnect_start_req(vdev, req);
|
||||
}
|
||||
|
||||
bool ucfg_cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool ucfg_cm_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool ucfg_cm_is_vdev_disconnecting(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool ucfg_cm_is_vdev_disconnected(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
||||
bool ucfg_cm_is_vdev_roaming(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return cm_is_vdev_connecting(vdev);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue