qcacld-3.0: Do not send RSO_START if bssid set in connect request

qcacld-2.0 to qcacld-3.0 propagation

Host should not allow roaming if bssid is set in connect request
and hence RSO_START should not be sent.

Add changes to not send RSO_START if bssid set in connect request.

Change-Id: I1037c60837a90472fee312e8654197ea7f68702e
CRs-Fixed: 1016886
This commit is contained in:
Sreelakshmi Konamki 2016-09-12 18:38:10 +05:30 • committed by Gerrit - the friendly Code Review server
commit bda5bbfcc6
4 changed files with 16 additions and 0 deletions

View file

@ -10591,8 +10591,10 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
qdf_mem_copy((void *)(pRoamProfile->SSIDs.SSIDList->SSID.ssId),
ssid, ssid_len);
pRoamProfile->do_not_roam = false;
if (bssid) {
pRoamProfile->BSSIDs.numOfBSSIDs = 1;
pRoamProfile->do_not_roam = true;
qdf_mem_copy((void *)(pRoamProfile->BSSIDs.bssid),
bssid, QDF_MAC_ADDR_SIZE);
/*

View file

@ -967,6 +967,7 @@ typedef struct tagCsrRoamProfile {
uint8_t beacon_tx_rate;
tSirMacRateSet supp_rate_set;
tSirMacRateSet extended_rate_set;
bool do_not_roam;
} tCsrRoamProfile;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH

View file

@ -8937,6 +8937,7 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id,
const bool is_fast_roam_enabled)
{
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
tCsrRoamSession *session = CSR_GET_SESSION(mac_ctx, session_id);
QDF_STATUS status;
if (!mac_ctx->roam.configParam.isFastRoamIniFeatureEnabled) {
@ -8945,6 +8946,10 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id,
return QDF_STATUS_SUCCESS;
return QDF_STATUS_E_FAILURE;
}
if (is_fast_roam_enabled && session && session->pCurRoamProfile)
session->pCurRoamProfile->do_not_roam = false;
status = csr_neighbor_roam_update_fast_roaming_enabled(mac_ctx,
session_id, is_fast_roam_enabled);
if (!QDF_IS_STATUS_SUCCESS(status)) {

View file

@ -7209,6 +7209,7 @@ QDF_STATUS csr_roam_copy_profile(tpAniSirGlobal pMac,
pDstProfile->wps_state = pSrcProfile->wps_state;
pDstProfile->ieee80211d = pSrcProfile->ieee80211d;
pDstProfile->sap_dot11mc = pSrcProfile->sap_dot11mc;
pDstProfile->do_not_roam = pSrcProfile->do_not_roam;
qdf_mem_copy(&pDstProfile->Keys, &pSrcProfile->Keys,
sizeof(pDstProfile->Keys));
#ifdef WLAN_FEATURE_11W
@ -17406,6 +17407,13 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id,
FL("session is null"));
return QDF_STATUS_E_FAILURE;
}
if ((ROAM_SCAN_OFFLOAD_START == command) && session->pCurRoamProfile &&
session->pCurRoamProfile->do_not_roam) {
sms_log(mac_ctx, LOGE,
FL("Supplicant disabled driver roaming"));
return QDF_STATUS_E_FAILURE;
}
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
if (session->roam_synch_in_progress
&& (ROAM_SCAN_OFFLOAD_STOP == command)) {