qcacmn: ML peer authorize changes
Changes to set authorize bit on ML peer only after all link peers are authorized by hostapd. Change-Id: I4b103538533dd459e83ae688408703c4122f025e
This commit is contained in:

committed by
Madan Koyyalamudi

parent
ef490e7713
commit
0fb9dcb7eb
@@ -6800,6 +6800,49 @@ QDF_STATUS dp_peer_mlo_setup(
|
|||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* dp_mlo_peer_authorize() - authorize MLO peer
|
||||||
|
* @soc: soc handle
|
||||||
|
* @peer: pointer to link peer
|
||||||
|
*
|
||||||
|
* return void
|
||||||
|
*/
|
||||||
|
static void dp_mlo_peer_authorize(struct dp_soc *soc,
|
||||||
|
struct dp_peer *peer)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct dp_peer *link_peer = NULL;
|
||||||
|
struct dp_peer *mld_peer = peer->mld_peer;
|
||||||
|
struct dp_mld_link_peers link_peers_info;
|
||||||
|
|
||||||
|
if (!mld_peer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* get link peers with reference */
|
||||||
|
dp_get_link_peers_ref_from_mld_peer(soc, mld_peer,
|
||||||
|
&link_peers_info,
|
||||||
|
DP_MOD_ID_CDP);
|
||||||
|
|
||||||
|
for (i = 0; i < link_peers_info.num_links; i++) {
|
||||||
|
link_peer = link_peers_info.link_peers[i];
|
||||||
|
|
||||||
|
if (!link_peer->authorize) {
|
||||||
|
dp_release_link_peers_ref(&link_peers_info,
|
||||||
|
DP_MOD_ID_CDP);
|
||||||
|
mld_peer->authorize = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if we are here all link peers are authorized,
|
||||||
|
* authorize ml_peer also
|
||||||
|
*/
|
||||||
|
mld_peer->authorize = true;
|
||||||
|
|
||||||
|
/* release link peers reference */
|
||||||
|
dp_release_link_peers_ref(&link_peers_info, DP_MOD_ID_CDP);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -7402,6 +7445,7 @@ dp_peer_authorize(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
if (!peer->authorize)
|
if (!peer->authorize)
|
||||||
dp_peer_flush_frags(soc_hdl, vdev_id, peer_mac);
|
dp_peer_flush_frags(soc_hdl, vdev_id, peer_mac);
|
||||||
|
|
||||||
|
dp_mlo_peer_authorize(soc, peer);
|
||||||
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
|
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1412,6 +1413,12 @@ void dp_peer_mlo_delete(struct dp_soc *soc,
|
|||||||
struct dp_peer *peer)
|
struct dp_peer *peer)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void dp_mlo_peer_authorize(struct dp_soc *soc,
|
||||||
|
struct dp_peer *link_peer)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif /* WLAN_FEATURE_11BE_MLO */
|
#endif /* WLAN_FEATURE_11BE_MLO */
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
|
Reference in New Issue
Block a user