diff options
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 7 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_wmm.c | 12 | ||||
| -rw-r--r-- | core/sme/inc/sme_api.h | 23 | ||||
| -rw-r--r-- | core/sme/src/common/sme_api.c | 14 |
4 files changed, 51 insertions, 5 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 0ae82a0caaf6..4833b12a33f6 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -2099,8 +2099,6 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter, bool fConnected = false; QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE; hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); - tHalHandle hal_ctx = WLAN_HDD_GET_HAL_CTX(pAdapter); - tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx); ENTER(); @@ -2158,8 +2156,9 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter, * only if ptk_installed is true. So, make * ptk_installed to true in case of 11R roaming. */ - if (csr_neighbor_roam_is11r_assoc(mac_ctx, - pAdapter->sessionId)) + if (sme_neighbor_roam_is11r_assoc( + WLAN_HDD_GET_HAL_CTX(pAdapter), + pAdapter->sessionId)) pHddStaCtx->conn_info.ptk_installed = true; } else { diff --git a/core/hdd/src/wlan_hdd_wmm.c b/core/hdd/src/wlan_hdd_wmm.c index f9256a7ad064..dc26b9d62fe5 100644 --- a/core/hdd/src/wlan_hdd_wmm.c +++ b/core/hdd/src/wlan_hdd_wmm.c @@ -61,6 +61,7 @@ #include <wlan_hdd_hostapd.h> #include <wlan_hdd_softap_tx_rx.h> #include <cds_sched.h> +#include "sme_api.h" #define WLAN_HDD_MAX_DSCP 0x3f @@ -1970,6 +1971,17 @@ QDF_STATUS hdd_wmm_connect(hdd_adapter_t *pAdapter, pAdapter->hddWmmStatus.wmmAcStatus[ac]. wmmAcAccessAllowed = true; } + if (!pRoamInfo->fReassocReq && + !sme_neighbor_roam_is11r_assoc( + WLAN_HDD_GET_HAL_CTX(pAdapter), + pAdapter->sessionId) && + !sme_roam_is_ese_assoc(pRoamInfo) + ) { + pAdapter->hddWmmStatus.wmmAcStatus[ac]. + wmmAcTspecValid = false; + pAdapter->hddWmmStatus.wmmAcStatus[ac]. + wmmAcAccessAllowed = false; + } } else { hdd_info("ac %d off", ac); /* admission is not required so access is allowed */ diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index 1b8bdf4367f0..e1a06be45c99 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -1333,7 +1333,28 @@ QDF_STATUS sme_update_short_retry_limit_threshold(tHalHandle hal_handle, struct sme_short_retry_limit *short_retry_limit_th); QDF_STATUS sme_update_long_retry_limit_threshold(tHalHandle hal_handle, struct sme_long_retry_limit *long_retry_limit_th); - +/** + * sme_roam_is_ese_assoc() - Check if association type is ESE + * @roam_info: Pointer to roam info + * + * Return: true if ESE Association, false otherwise. + */ +#ifdef FEATURE_WLAN_ESE +bool sme_roam_is_ese_assoc(tCsrRoamInfo *roam_info); +#else +static inline bool sme_roam_is_ese_assoc(tCsrRoamInfo *roam_info) +{ + return false; +} +#endif +/** + * sme_neighbor_roam_is11r_assoc() - Check if association type is 11R + * @hal_ctx: HAL handle + * @session_id: session id + * + * Return: true if 11r Association, false otherwise. + */ +bool sme_neighbor_roam_is11r_assoc(tHalHandle hal_ctx, uint8_t session_id); /** * sme_update_sta_inactivity_timeout(): Update sta_inactivity_timeout to FW * @hal: Handle returned by mac_open diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index c4d8bf465751..8c5568e13feb 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -17089,6 +17089,20 @@ QDF_STATUS sme_set_lost_link_info_cb(tHalHandle hal, } return status; } +#ifdef FEATURE_WLAN_ESE +bool sme_roam_is_ese_assoc(tCsrRoamInfo *roam_info) +{ + return roam_info->isESEAssoc; +} +#endif + +bool sme_neighbor_roam_is11r_assoc(tHalHandle hal_ctx, + uint8_t session_id) +{ + tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx); + return csr_neighbor_roam_is11r_assoc(mac_ctx, session_id); + +} #ifdef WLAN_FEATURE_WOW_PULSE /** |
