qcacld-3.0: Add disconnect_ies in deauth/disassoc frame

disconnect_ies sent from userspace are cached in vdev mgr object.
Send the same in deauth/disassoc frames initiated from the driver.
Free the IEs once the frame is sent out successfully.

Change-Id: Ib223a9da7f5795bc10d717efe23c6106391070bb
CRs-Fixed: 2481909
This commit is contained in:
Srinivas Dasari
2019-06-29 14:34:50 +05:30
committed by nshrivas
parent 37e3731d4a
commit e2ee09491a
3 changed files with 68 additions and 0 deletions

View File

@@ -300,4 +300,12 @@ void mlme_set_self_disconnect_ies(struct wlan_objmgr_vdev *vdev,
* Return: None
*/
void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev);
/**
* mlme_get_self_disconnect_ies() - Get diconnect IEs from vdev object
* @vdev: vdev pointer
*
* Return: Returns a pointer to the self disconnect IEs present in vdev object
*/
struct wlan_ies *mlme_get_self_disconnect_ies(struct wlan_objmgr_vdev *vdev);
#endif

View File

@@ -2419,3 +2419,19 @@ void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
mlme_priv->self_disconnect_ies.len = 0;
}
}
struct wlan_ies *mlme_get_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
{
struct vdev_mlme_obj *vdev_mlme;
struct mlme_legacy_priv *mlme_priv;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme) {
mlme_legacy_err("vdev component object is NULL");
return NULL;
}
mlme_priv = vdev_mlme->ext_vdev_ptr;
return &mlme_priv->self_disconnect_ies;
}