qcacmn: handle MLO scenario for candidate validating
Add flag to indicate whether MLO is supported by the candidate or not, which is helpful when checking concurrency. Change-Id: I166ad2963163ae4dc7989516b654dce4cb635cec CRs-Fixed: 3013418
This commit is contained in:

committed by
Madan Koyyalamudi

parent
045a3225cd
commit
33958ed42f
@@ -74,11 +74,15 @@ enum wlan_if_mgr_evt {
|
|||||||
* @peer_addr: MAC address of the BSS
|
* @peer_addr: MAC address of the BSS
|
||||||
* @chan_freq: Frequency of the potential BSS connection
|
* @chan_freq: Frequency of the potential BSS connection
|
||||||
* @beacon_interval: beacon interval of BSS
|
* @beacon_interval: beacon interval of BSS
|
||||||
|
* @is_mlo: indicate whether MLO is supported by the BSS or not
|
||||||
*/
|
*/
|
||||||
struct validate_bss_data {
|
struct validate_bss_data {
|
||||||
struct qdf_mac_addr peer_addr;
|
struct qdf_mac_addr peer_addr;
|
||||||
qdf_freq_t chan_freq;
|
qdf_freq_t chan_freq;
|
||||||
uint16_t beacon_interval;
|
uint16_t beacon_interval;
|
||||||
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
|
bool is_mlo;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -521,6 +521,20 @@ static bool cm_bss_peer_is_assoc_peer(struct cm_connect_req *req)
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cm_candidate_mlo_update() - handle mlo scenario for candidate validating
|
||||||
|
* @scan_entry: scan result of the candidate
|
||||||
|
* @validate_bss_info: candidate info to be updated
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
cm_candidate_mlo_update(struct scan_cache_entry *scan_entry,
|
||||||
|
struct validate_bss_data *validate_bss_info)
|
||||||
|
{
|
||||||
|
validate_bss_info->is_mlo = !!scan_entry->ie_list.multi_link;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
void cm_set_vdev_link_id(struct cnx_mgr *cm_ctx,
|
void cm_set_vdev_link_id(struct cnx_mgr *cm_ctx,
|
||||||
@@ -541,6 +555,12 @@ static bool cm_bss_peer_is_assoc_peer(struct cm_connect_req *req)
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
cm_candidate_mlo_update(struct scan_cache_entry *scan_entry,
|
||||||
|
struct validate_bss_data *validate_bss_info)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void cm_create_bss_peer(struct cnx_mgr *cm_ctx,
|
static void cm_create_bss_peer(struct cnx_mgr *cm_ctx,
|
||||||
@@ -596,6 +616,7 @@ QDF_STATUS cm_if_mgr_validate_candidate(struct cnx_mgr *cm_ctx,
|
|||||||
event_data.validate_bss_info.beacon_interval = scan_entry->bcn_int;
|
event_data.validate_bss_info.beacon_interval = scan_entry->bcn_int;
|
||||||
qdf_copy_macaddr(&event_data.validate_bss_info.peer_addr,
|
qdf_copy_macaddr(&event_data.validate_bss_info.peer_addr,
|
||||||
&scan_entry->bssid);
|
&scan_entry->bssid);
|
||||||
|
cm_candidate_mlo_update(scan_entry, &event_data.validate_bss_info);
|
||||||
|
|
||||||
return if_mgr_deliver_event(cm_ctx->vdev,
|
return if_mgr_deliver_event(cm_ctx->vdev,
|
||||||
WLAN_IF_MGR_EV_VALIDATE_CANDIDATE,
|
WLAN_IF_MGR_EV_VALIDATE_CANDIDATE,
|
||||||
|
Reference in New Issue
Block a user