qcacld-3.0: Add link id to roam connect req

Add link id to connect request for partner link roaming to
match with scan entry's self link id to avoid selecting
a candidate with same BSSID and MLD but different link id.

Change-Id: I4b903f2e64a9eb4cc9f197577b2b11ea657aa2b2
CRs-Fixed: 3843561
This commit is contained in:
Vinod Kumar Pirla 2024-06-17 10:01:58 -07:00 committed by Ravindra Konda
parent 5d7cdb69a8
commit 020883b561

View File

@ -1232,8 +1232,7 @@ static QDF_STATUS
mlo_roam_prepare_and_send_link_connect_req(struct wlan_objmgr_vdev *assoc_vdev,
struct wlan_objmgr_vdev *link_vdev,
struct wlan_cm_connect_resp *rsp,
struct qdf_mac_addr *link_addr,
uint16_t chan_freq)
struct mlo_link_info *link_info)
{
struct wlan_mlo_sta *sta_ctx;
struct wlan_cm_connect_req req = {0};
@ -1251,8 +1250,9 @@ mlo_roam_prepare_and_send_link_connect_req(struct wlan_objmgr_vdev *assoc_vdev,
req.vdev_id = wlan_vdev_get_id(link_vdev);
req.source = CM_MLO_LINK_VDEV_CONNECT;
req.chan_freq = chan_freq;
qdf_mem_copy(&req.bssid.bytes, link_addr->bytes, QDF_MAC_ADDR_SIZE);
req.chan_freq = link_info->chan_freq;
req.link_id = link_info->link_id;
qdf_copy_macaddr(&req.bssid, &link_info->link_addr);
req.ssid.length = ssid.length;
qdf_mem_copy(&req.ssid.ssid, &ssid.ssid, ssid.length);
@ -1285,7 +1285,7 @@ mlo_roam_prepare_and_send_link_connect_req(struct wlan_objmgr_vdev *assoc_vdev,
mlme_info("vdev:%d Connecting to " QDF_SSID_FMT " link_addr: " QDF_MAC_ADDR_FMT " freq %d rsn_caps:0x%x auth_type:0x%x pairwise:0x%x grp:0x%x mcast:0x%x akms:0x%x assoc_ie_len:%d f_rsne:%d is_wps:%d dot11_filter:%d",
req.vdev_id, QDF_SSID_REF(req.ssid.length, req.ssid.ssid),
QDF_MAC_ADDR_REF(link_addr->bytes),
QDF_MAC_ADDR_REF(link_info->link_addr.bytes),
req.chan_freq, req.crypto.rsn_caps, req.crypto.auth_type,
req.crypto.ciphers_pairwise, req.crypto.group_cipher,
req.crypto.mgmt_ciphers, req.crypto.akm_suites,
@ -1472,10 +1472,8 @@ mlo_roam_link_connect_notify(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
if (mlo_check_connect_req_bmap(link_vdev)) {
status = mlo_roam_prepare_and_send_link_connect_req(assoc_vdev,
link_vdev,
rsp,
&partner_info.partner_link_info[i].link_addr,
partner_info.partner_link_info[i].chan_freq);
link_vdev, rsp,
&partner_info.partner_link_info[i]);
if (QDF_IS_STATUS_ERROR(status))
goto err;
else {