qcacld-3.0: Fill join request from cm vdev connect request
Currently driver fills join request from cm_vdev_connect request and cm_vdev_connect request is filled from connect request. Fill join request directly from cm vdev connect request and update the vdev connect request from scan entry for assoc vdev and for link vdev copy populate the connect request directly from cm_connect request. Change-Id: I408eb8044e96437558666a1948233a0df30bfd22 CRs-Fixed: 3516716
This commit is contained in:

committed by
Rahul Choudhary

parent
c8540b10f6
commit
15bc1d6db6
@@ -750,4 +750,18 @@ cm_send_rso_stop(struct wlan_objmgr_vdev *vdev)
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
/**
|
||||
* cm_get_ml_partner_info() - Fill dst ML partner info
|
||||
* @scan_entry: Scan entry
|
||||
* @src_partner_info: Source partner info
|
||||
* @dst_partner_info: Destination partner info
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
struct mlo_partner_info *partner_info);
|
||||
#endif
|
||||
#endif /* __WLAN_CM_VDEV_API_H__ */
|
||||
|
@@ -1114,7 +1114,7 @@ QDF_STATUS cm_flush_join_req(struct scheduler_msg *msg)
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
static QDF_STATUS
|
||||
QDF_STATUS
|
||||
cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
struct mlo_partner_info *partner_info)
|
||||
{
|
||||
@@ -1135,6 +1135,7 @@ cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
mlme_debug("psoc is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
mlo_support_link_num = wlan_mlme_get_sta_mlo_conn_max_num(psoc);
|
||||
mlme_debug("sta mlo support link num: %d", mlo_support_link_num);
|
||||
|
||||
@@ -1152,8 +1153,9 @@ cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
scan_entry->ml_info.link_info[i].is_valid_link,
|
||||
QDF_MAC_ADDR_REF(
|
||||
scan_entry->ml_info.link_info[i].link_addr.bytes));
|
||||
if (j >= mlo_support_link_num - 1)
|
||||
if (mlo_support_link_num && j >= mlo_support_link_num - 1)
|
||||
break;
|
||||
|
||||
if (scan_entry->ml_info.link_info[i].is_valid_link) {
|
||||
partner_info->partner_link_info[j].link_addr =
|
||||
scan_entry->ml_info.link_info[i].link_addr;
|
||||
@@ -1162,10 +1164,12 @@ cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
partner_info->partner_link_info[j].chan_freq =
|
||||
scan_entry->ml_info.link_info[i].freq;
|
||||
j++;
|
||||
} else {
|
||||
scan_entry->ml_info.link_info[i].is_valid_link = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
scan_entry->ml_info.link_info[i].is_valid_link = false;
|
||||
}
|
||||
|
||||
partner_info->num_partner_links = j;
|
||||
mlme_debug("sta and ap integrate link num: %d", j);
|
||||
|
||||
@@ -1174,17 +1178,6 @@ cm_get_ml_partner_info(struct scan_cache_entry *scan_entry,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static void cm_fill_ml_info(struct cm_vdev_join_req *join_req)
|
||||
{
|
||||
QDF_STATUS ret;
|
||||
|
||||
ret = cm_get_ml_partner_info(join_req->entry, &join_req->partner_info);
|
||||
if (QDF_IS_STATUS_SUCCESS(ret)) {
|
||||
join_req->assoc_link_id = join_req->entry->ml_info.self_link_id;
|
||||
mlme_debug("Assoc link ID:%d", join_req->assoc_link_id);
|
||||
}
|
||||
}
|
||||
|
||||
static void cm_copy_join_req_info_from_cm_connect_req(struct cm_vdev_join_req *join_req,
|
||||
struct wlan_cm_vdev_connect_req *req)
|
||||
{
|
||||
@@ -1193,10 +1186,6 @@ static void cm_copy_join_req_info_from_cm_connect_req(struct cm_vdev_join_req *j
|
||||
}
|
||||
|
||||
#else
|
||||
static void cm_fill_ml_info(struct cm_vdev_join_req *join_req)
|
||||
{
|
||||
}
|
||||
|
||||
static void cm_copy_join_req_info_from_cm_connect_req(struct cm_vdev_join_req *join_req,
|
||||
struct wlan_cm_vdev_connect_req *req)
|
||||
{
|
||||
@@ -1228,11 +1217,7 @@ cm_copy_join_params(struct wlan_objmgr_vdev *vdev,
|
||||
if (!join_req->entry)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
if (wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
|
||||
cm_copy_join_req_info_from_cm_connect_req(join_req, req);
|
||||
} else {
|
||||
cm_fill_ml_info(join_req);
|
||||
}
|
||||
cm_copy_join_req_info_from_cm_connect_req(join_req, req);
|
||||
|
||||
if (req->owe_trans_ssid.length)
|
||||
join_req->owe_trans_ssid = req->owe_trans_ssid;
|
||||
|
Reference in New Issue
Block a user