qcacmn: Allow roam if prev_bssid is AP mld address
"prev_bssid" can be AP mld address if current connection is mlo connection. Allow roam if "prev_bssid" is AP mld address. Change-Id: Iebc71acae11fcbfb4fc98ec2199d546d71ef057c CRs-Fixed: 3489879
This commit is contained in:

committato da
Madan Koyyalamudi

parent
84d654cc7c
commit
fa5b39c322
@@ -52,7 +52,7 @@ QDF_STATUS cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct wlan_cm_connect_req *req;
|
||||
struct qdf_mac_addr bssid;
|
||||
struct qdf_mac_addr bssid, bss_mld_addr;
|
||||
struct wlan_ssid ssid;
|
||||
struct cm_req *cm_req, *req_ptr;
|
||||
qdf_freq_t freq = 0;
|
||||
@@ -76,13 +76,20 @@ QDF_STATUS cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
wlan_vdev_get_bss_peer_mac(cm_ctx->vdev, &bssid);
|
||||
|
||||
/* Reject re-assoc unless prev_bssid matches the current BSSID. */
|
||||
if (!qdf_is_macaddr_equal(&req->prev_bssid, &bssid)) {
|
||||
mlme_debug("BSSID didn't matched: bssid: "QDF_MAC_ADDR_FMT " prev bssid: " QDF_MAC_ADDR_FMT,
|
||||
QDF_MAC_ADDR_REF(bssid.bytes),
|
||||
QDF_MAC_ADDR_REF(req->prev_bssid.bytes));
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
status = wlan_vdev_get_bss_peer_mld_mac(cm_ctx->vdev,
|
||||
&bss_mld_addr);
|
||||
if (!(QDF_IS_STATUS_SUCCESS(status) &&
|
||||
qdf_is_macaddr_equal(&req->prev_bssid, &bss_mld_addr))) {
|
||||
mlme_debug("BSSID didn't matched: bss mld: "QDF_MAC_ADDR_FMT " prev bssid: " QDF_MAC_ADDR_FMT,
|
||||
QDF_MAC_ADDR_REF(bss_mld_addr.bytes),
|
||||
QDF_MAC_ADDR_REF(req->prev_bssid.bytes));
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
status = wlan_vdev_mlme_get_ssid(cm_ctx->vdev, ssid.ssid, &ssid.length);
|
||||
|
Fai riferimento in un nuovo problema
Block a user