qcacmn: Support roam start and roam abort request in CM
Add support for roam start and roam abort request in connection manager. CRs-Fixed: 2882233 Change-Id: I5780e7f22363ee6014d39b0df9cb068b4afdd71c
Esse commit está contido em:
@@ -217,6 +217,20 @@ typedef QDF_STATUS
|
||||
enum netif_action_type action,
|
||||
enum netif_reason_type reason);
|
||||
|
||||
/**
|
||||
* typedef os_if_cm_napi_serialize_ctrl_cb: Callback to update
|
||||
* NAPI serialization
|
||||
* @action: bool action to take on napi serialization
|
||||
*
|
||||
* This callback indicates legacy modules to take the actions
|
||||
* related to napi serialization
|
||||
*
|
||||
* Context: Any context.
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
typedef QDF_STATUS
|
||||
(*os_if_cm_napi_serialize_ctrl_cb)(bool action);
|
||||
|
||||
/**
|
||||
* osif_cm_unlink_bss() - function to unlink bss from kernel and scan database
|
||||
* on connect timeouts reasons
|
||||
@@ -251,6 +265,8 @@ void osif_cm_unlink_bss(struct wlan_objmgr_vdev *vdev,
|
||||
* legacy modules
|
||||
* @osif_cm_netif_queue_ctrl_cb: callback to legacy module to take
|
||||
* actions on netif queue
|
||||
* @os_if_cm_napi_serialize_ctrl_cb: callback to legacy module to take
|
||||
* actions on napi serialization
|
||||
* @save_gtk_cb : callback to legacy module to save gtk
|
||||
* @set_hlp_data_cb: callback to legacy module to save hlp data
|
||||
*/
|
||||
@@ -259,6 +275,7 @@ struct osif_cm_ops {
|
||||
osif_cm_disconnect_comp_cb disconnect_complete_cb;
|
||||
#ifdef CONN_MGR_ADV_FEATURE
|
||||
osif_cm_netif_queue_ctrl_cb netif_queue_control_cb;
|
||||
os_if_cm_napi_serialize_ctrl_cb napi_serialize_control_cb;
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_FILS_SK
|
||||
osif_cm_save_gtk_cb save_gtk_cb;
|
||||
@@ -314,6 +331,18 @@ QDF_STATUS osif_cm_disconnect_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS osif_cm_netif_queue_ind(struct wlan_objmgr_vdev *vdev,
|
||||
enum netif_action_type action,
|
||||
enum netif_reason_type reason);
|
||||
|
||||
/**
|
||||
* osif_cm_napi_serialize() - Function to indicate napi serialize
|
||||
* action to legacy module
|
||||
* @action: Action to take on napi serialization
|
||||
*
|
||||
* This function indicates to take the actions related to napi activities
|
||||
*
|
||||
* Context: Any context.
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS osif_cm_napi_serialize(bool action);
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_FILS_SK
|
||||
|
@@ -296,6 +296,7 @@ osif_cm_disable_netif_queue(struct wlan_objmgr_vdev *vdev)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* osif_cm_disconnect_start_cb() - Disconnect start callback
|
||||
* @vdev: vdev pointer
|
||||
@@ -312,12 +313,53 @@ osif_cm_disconnect_start_cb(struct wlan_objmgr_vdev *vdev)
|
||||
return osif_cm_disable_netif_queue(vdev);
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
/**
|
||||
* osif_cm_roam_start_cb() - Roam start callback
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* This callback indicates os_if that roaming has started
|
||||
* so that os_if can stop all the activity on this connection
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS
|
||||
osif_cm_roam_start_cb(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return osif_cm_netif_queue_ind(vdev,
|
||||
WLAN_STOP_ALL_NETIF_QUEUE,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
* osif_cm_roam_abort_cb() - Roam abort callback
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* This callback indicates os_if that roaming has been aborted
|
||||
* so that os_if can stop all the activity on this connection
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS
|
||||
osif_cm_roam_abort_cb(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
osif_cm_napi_serialize(false);
|
||||
return osif_cm_netif_queue_ind(vdev,
|
||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct mlme_cm_ops cm_ops = {
|
||||
.mlme_cm_connect_complete_cb = osif_cm_connect_complete_cb,
|
||||
.mlme_cm_failed_candidate_cb = osif_cm_failed_candidate_cb,
|
||||
.mlme_cm_update_id_and_src_cb = osif_cm_update_id_and_src_cb,
|
||||
.mlme_cm_disconnect_complete_cb = osif_cm_disconnect_complete_cb,
|
||||
.mlme_cm_disconnect_start_cb = osif_cm_disconnect_start_cb,
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
.mlme_cm_roam_start_cb = osif_cm_roam_start_cb,
|
||||
.mlme_cm_roam_abort_cb = osif_cm_roam_abort_cb,
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -417,8 +459,20 @@ QDF_STATUS osif_cm_netif_queue_ind(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS osif_cm_napi_serialize(bool action)
|
||||
{
|
||||
os_if_cm_napi_serialize_ctrl_cb cb = NULL;
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (osif_cm_legacy_ops)
|
||||
cb = osif_cm_legacy_ops->napi_serialize_control_cb;
|
||||
if (cb)
|
||||
ret = cb(action);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_FILS_SK
|
||||
QDF_STATUS osif_cm_save_gtk(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
|
Referência em uma nova issue
Block a user