qcacld-3.0: Add support for peer_delete_all in sap
Currently, only broadcast disassociation is supported and deauth is sent in a unicast manner. With peer delete all support, HDD sends a single call to PE for broadcast deauth request. PE module sends a single broadcast deauth frame and on TX completion, calls vdev_mgr_peer_delete_all_send. This issues the new WMI_VDEV_DELETE_ALL_PEER_CMDID to FW to cleanup peers entries corresponding to VDEV ID and also flush TIDS internally. On receiving the peer delete all response, target_if cleans object manager entries and datapath cleans up. But PEER unmap is done iterating through all peer entries individually. After this a single eSAP_STA_DISASSOC_EVENT is received in HDD signalling the completion of broadcast deauth procedure. Change-Id: I928461606154380eef21a02cc7306921ceb9e16e CRs-Fixed: 2585005
This commit is contained in:

committed by
nshrivas

parent
62a62e6d78
commit
8ccb6a72e2
@@ -1212,6 +1212,18 @@ vdevmgr_vdev_start_rsp_handle(struct vdev_mlme_obj *vdev_mlme,
|
||||
return status;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
vdevmgr_vdev_peer_delete_all_rsp_handle(struct vdev_mlme_obj *vdev_mlme,
|
||||
struct peer_delete_all_response *rsp)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
status = lim_process_mlm_del_all_sta_rsp(vdev_mlme, rsp);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_err("Failed to call lim_process_mlm_del_all_sta_rsp");
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_vdev_self_peer_create(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
@@ -1462,6 +1474,8 @@ static struct vdev_mlme_ops sta_mlme_ops = {
|
||||
* to INIT state
|
||||
* @mlme_vdev_is_newchan_no_cac: callback to check if new channel is DFS
|
||||
* and cac is not required
|
||||
* @mlme_vdev_ext_peer_delete_all_rsp: callback to handle vdev delete all peer
|
||||
* response and send result to upper layer
|
||||
*/
|
||||
static struct vdev_mlme_ops ap_mlme_ops = {
|
||||
.mlme_vdev_start_send = ap_mlme_vdev_start_send,
|
||||
@@ -1481,6 +1495,8 @@ static struct vdev_mlme_ops ap_mlme_ops = {
|
||||
.mlme_vdev_is_newchan_no_cac = ap_mlme_vdev_is_newchan_no_cac,
|
||||
.mlme_vdev_ext_stop_rsp = vdevmgr_vdev_stop_rsp_handle,
|
||||
.mlme_vdev_ext_start_rsp = vdevmgr_vdev_start_rsp_handle,
|
||||
.mlme_vdev_ext_peer_delete_all_rsp =
|
||||
vdevmgr_vdev_peer_delete_all_rsp_handle,
|
||||
};
|
||||
|
||||
static struct vdev_mlme_ops mon_mlme_ops = {
|
||||
|
Reference in New Issue
Block a user