qcacmn: Add API to get link peer assoc req buffer

Add API to get link peer assoc req buffer

Change-Id: I293a86f8eaaaf5a2e02802388960386848201a2c
This commit is contained in:
Himanshu Batra
2021-09-07 12:07:10 +05:30
committed by Madan Koyyalamudi
parent ff8ee42eac
commit b981e05832
5 changed files with 54 additions and 0 deletions

View File

@@ -208,6 +208,16 @@ void mlo_mlme_peer_delete(struct wlan_objmgr_peer *peer);
*/
void mlo_mlme_peer_assoc_resp(struct wlan_objmgr_peer *peer);
/**
* mlo_mlme_get_link_assoc_req() - API to get link assoc req buffer
* @peer: Object manager peer
* @link_ix: link id of vdev
*
* Return: assoc req buffer
*/
qdf_nbuf_t mlo_mlme_get_link_assoc_req(struct wlan_objmgr_peer *peer,
uint8_t link_ix);
/**
* mlo_get_link_vdev_ix() - Get index of link VDEV in MLD
* @ml_dev: ML device context

View File

@@ -257,6 +257,17 @@ QDF_STATUS wlan_mlo_link_peer_attach(struct wlan_mlo_peer_context *ml_peer,
*/
QDF_STATUS wlan_mlo_link_peer_delete(struct wlan_objmgr_peer *peer);
/**
* mlo_peer_get_link_peer_assoc_req_buf() - API to get link assoc req buffer
* @peer: Object manager peer
* @link_ix: link id of vdev
*
* Return: assoc req buffer
*/
qdf_nbuf_t mlo_peer_get_link_peer_assoc_req_buf(
struct wlan_mlo_peer_context *ml_peer,
uint8_t link_ix);
/**
** APIs to operations on ML peer object
*/

View File

@@ -293,6 +293,7 @@ struct mlo_partner_info {
* @mlo_mlme_ext_peer_assoc_fail: Callback to notify peer assoc failure
* @mlo_mlme_ext_peer_delete: Callback to initiate link peer delete
* @mlo_mlme_ext_assoc_resp: Callback to initiate assoc resp
* @mlo_mlme_get_link_assoc_req: Calback to get link assoc req buffer
*/
struct mlo_mlme_ext_ops {
QDF_STATUS (*mlo_mlme_ext_validate_conn_req)(
@@ -307,5 +308,7 @@ struct mlo_mlme_ext_ops {
void (*mlo_mlme_ext_peer_assoc_fail)(struct wlan_objmgr_peer *peer);
void (*mlo_mlme_ext_peer_delete)(struct wlan_objmgr_peer *peer);
void (*mlo_mlme_ext_assoc_resp)(struct wlan_objmgr_peer *peer);
qdf_nbuf_t (*mlo_mlme_get_link_assoc_req)(struct wlan_objmgr_peer *peer,
uint8_t link_ix);
};
#endif

View File

@@ -195,6 +195,18 @@ void mlo_mlme_peer_assoc_resp(struct wlan_objmgr_peer *peer)
mlo_ctx->mlme_ops->mlo_mlme_ext_assoc_resp(peer);
}
qdf_nbuf_t mlo_mlme_get_link_assoc_req(struct wlan_objmgr_peer *peer,
uint8_t link_ix)
{
struct mlo_mgr_context *mlo_ctx = wlan_objmgr_get_mlo_ctx();
if (!mlo_ctx || !mlo_ctx->mlme_ops ||
!mlo_ctx->mlme_ops->mlo_mlme_get_link_assoc_req)
return NULL;
return mlo_ctx->mlme_ops->mlo_mlme_get_link_assoc_req(peer, link_ix);
}
uint8_t mlo_get_link_vdev_ix(struct wlan_mlo_dev_context *ml_dev,
struct wlan_objmgr_vdev *vdev)
{

View File

@@ -643,3 +643,21 @@ QDF_STATUS wlan_mlo_link_peer_delete(struct wlan_objmgr_peer *peer)
return QDF_STATUS_SUCCESS;
}
qdf_export_symbol(wlan_mlo_link_peer_delete);
qdf_nbuf_t mlo_peer_get_link_peer_assoc_req_buf(
struct wlan_mlo_peer_context *ml_peer,
uint8_t link_ix)
{
struct wlan_objmgr_peer *peer = NULL;
qdf_nbuf_t assocbuf = NULL;
peer = wlan_mlo_peer_get_assoc_peer(ml_peer);
if (!peer)
return NULL;
assocbuf = mlo_mlme_get_link_assoc_req(peer, link_ix);
return assocbuf;
}