diff options
| -rw-r--r-- | core/hdd/inc/wlan_hdd_cfg.h | 23 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg.c | 12 | ||||
| -rw-r--r-- | core/mac/inc/sir_api.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_api.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_internal.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_support.h | 7 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 9 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_neighbor_roam.c | 2 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_util.c | 13 | ||||
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 1 |
10 files changed, 57 insertions, 13 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 3e6f3b24913b..64a5443bd6c9 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -2102,6 +2102,28 @@ enum hdd_dot11_mode { /* * <ini> + * enable_ftopen - enable/disable FT open feature + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This INI is used to enable/disable FT open feature + * + * Related: None + * + * Supported Feature: Roaming + * + * Usage: External + * + * </ini> + */ +#define CFG_ROAM_FT_OPEN_ENABLE_NAME "enable_ftopen" +#define CFG_ROAM_FT_OPEN_ENABLE_MIN (0) +#define CFG_ROAM_FT_OPEN_ENABLE_MAX (1) +#define CFG_ROAM_FT_OPEN_ENABLE_DEFAULT (1) + +/* + * <ini> * groam_dense_min_aps - Sets minimum number of AP for dense roam * @Min: 1 * @Max: 5 @@ -15250,6 +15272,7 @@ struct hdd_config { bool is_sae_enabled; #endif bool enable_rtt_mac_randomization; + bool enable_ftopen; }; #define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var)) diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 30c2d8588019..0fefec720ea5 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -4074,6 +4074,13 @@ struct reg_table_entry g_registry_table[] = { CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN, CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX), + REG_VARIABLE(CFG_ROAM_FT_OPEN_ENABLE_NAME, WLAN_PARAM_Integer, + struct hdd_config, enable_ftopen, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_ROAM_FT_OPEN_ENABLE_DEFAULT, + CFG_ROAM_FT_OPEN_ENABLE_MIN, + CFG_ROAM_FT_OPEN_ENABLE_MAX), + REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer, struct hdd_config, ignore_peer_ht_opmode, VAR_FLAGS_OPTIONAL | @@ -7097,6 +7104,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx) CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME, pHddCtx->config->roam_bad_rssi_thresh_offset_2g); hdd_debug("Name = [%s] Value = [%u]", + CFG_ROAM_FT_OPEN_ENABLE_NAME, + pHddCtx->config->enable_ftopen); + hdd_debug("Name = [%s] Value = [%u]", CFG_MIN_REST_TIME_NAME, pHddCtx->config->min_rest_time_conc); hdd_debug("Name = [%s] Value = [%u]", @@ -9953,6 +9963,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx) pHddCtx->config->roam_bg_scan_client_bitmap; smeConfig->csrConfig.roam_bad_rssi_thresh_offset_2g = pHddCtx->config->roam_bad_rssi_thresh_offset_2g; + smeConfig->csrConfig.enable_ftopen = + pHddCtx->config->enable_ftopen; smeConfig->csrConfig.obss_width_interval = pHddCtx->config->obss_width_trigger_interval; smeConfig->csrConfig.obss_active_dwelltime = diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index c43a179c4be5..2c6eebcc754f 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -3608,6 +3608,7 @@ typedef struct sSirRoamOffloadScanReq { uint8_t ValidChannelCount; uint8_t ValidChannelList[SIR_ROAM_MAX_CHANNELS]; bool IsESEAssoc; + bool is_11r_assoc; uint8_t nProbes; uint16_t HomeAwayTime; tSirRoamNetworkType ConnectedNetwork; diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 682ca6e4ef40..729f20a0caa9 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1405,6 +1405,7 @@ typedef struct tagCsrConfigParam { uint8_t oce_feature_bitmap; uint32_t offload_11k_enable_bitmask; struct csr_neighbor_report_offload_params neighbor_report_offload; + bool enable_ftopen; } tCsrConfigParam; /* Tush */ diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 6ce321ae7b79..416d8969047d 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -683,6 +683,7 @@ typedef struct tagCsrConfig { uint8_t oce_feature_bitmap; uint32_t offload_11k_enable_bitmask; struct csr_neighbor_report_offload_params neighbor_report_offload; + bool enable_ftopen; } tCsrConfig; typedef struct tagCsrChannelPowerInfo { diff --git a/core/sme/inc/csr_support.h b/core/sme/inc/csr_support.h index 532fe5aa227b..db47ec47c13f 100644 --- a/core/sme/inc/csr_support.h +++ b/core/sme/inc/csr_support.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -366,8 +366,9 @@ QDF_STATUS csr_reassoc(tpAniSirGlobal pMac, uint32_t sessionId, QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId, uint16_t *beaconInterval, uint32_t cursessionId, enum tQDF_ADAPTER_MODE currBssPersona); -bool csr_is_profile11r(tCsrRoamProfile *pProfile); -bool csr_is_auth_type11r(eCsrAuthType AuthType, uint8_t mdiePresent); +bool csr_is_profile11r(tpAniSirGlobal mac, tCsrRoamProfile *pProfile); +bool csr_is_auth_type11r(tpAniSirGlobal mac, eCsrAuthType AuthType, + uint8_t mdiePresent); #ifdef FEATURE_WLAN_ESE bool csr_is_profile_ese(tCsrRoamProfile *pProfile); #endif diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 4170293555de..61e254b4b7d9 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -1998,7 +1998,6 @@ bool csr_roam_is_ese_assoc(tpAniSirGlobal mac_ctx, uint32_t session_id) return mac_ctx->roam.neighborRoamInfo[session_id].isESEAssoc; } - /** * csr_roam_is_ese_ini_feature_enabled() - is ese feature enabled * @mac_ctx: Global MAC context @@ -2875,7 +2874,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac, pMac->roam.configParam.roam_params. roam_bad_rssi_thresh_offset_2g = pParam->roam_bad_rssi_thresh_offset_2g; - + pMac->roam.configParam.enable_ftopen = + pParam->enable_ftopen; pMac->roam.configParam.scan_adaptive_dwell_mode = pParam->scan_adaptive_dwell_mode; pMac->roam.configParam.scan_adaptive_dwell_mode_nc = @@ -3189,7 +3189,7 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam) cfg_params->roam_params.bg_scan_client_bitmap; pParam->roam_bad_rssi_thresh_offset_2g = cfg_params->roam_params.roam_bad_rssi_thresh_offset_2g; - + pParam->enable_ftopen = cfg_params->enable_ftopen; pParam->scan_adaptive_dwell_mode = cfg_params->scan_adaptive_dwell_mode; pParam->scan_adaptive_dwell_mode_nc = @@ -15498,7 +15498,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId, ese_config = pMac->roam.configParam.isEseIniFeatureEnabled; #endif pProfile->MDID.mdiePresent = pBssDescription->mdiePresent; - if (csr_is_profile11r(pProfile) + if (csr_is_profile11r(pMac, pProfile) #ifdef FEATURE_WLAN_ESE && !((pProfile->negotiatedAuthType == @@ -18805,6 +18805,7 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx, eCSR_AUTH_TYPE_OPEN_SYSTEM) || (csr_is_auth_type_ese(req_buf-> ConnectedNetwork.authentication))); + req_buf->is_11r_assoc = roam_info->is11rAssoc; QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, "IsEseAssoc: %d middle of roaming: %d ese_neighbor_list_recvd: %d cur no of chan: %d", req_buf->IsESEAssoc, diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 8dd6bda7ef6c..0e6d736d18ab 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -989,7 +989,7 @@ static void csr_neighbor_roam_info_ctx_init( /* Based on the auth scheme tell if we are 11r */ if (csr_is_auth_type11r - (session->connectedProfile.AuthType, + (pMac, session->connectedProfile.AuthType, session->connectedProfile.MDID.mdiePresent)) { if (pMac->roam.configParam.isFastTransitionEnabled) init_ft_flag = true; diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index fafb217e30df..300443049801 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -2405,17 +2405,20 @@ QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal mac_ctx, /** * csr_is_auth_type11r() - Check if Authentication type is 11R + * @mac: pointer to mac context * @auth_type: The authentication type that is used to make the connection * @mdie_present: Is MDIE IE present * * Return: true if is 11R auth type, false otherwise */ -bool csr_is_auth_type11r(eCsrAuthType auth_type, uint8_t mdie_present) +bool csr_is_auth_type11r(tpAniSirGlobal mac, eCsrAuthType auth_type, + uint8_t mdie_present) { switch (auth_type) { case eCSR_AUTH_TYPE_OPEN_SYSTEM: - if (mdie_present) - return true; + if (mdie_present && + mac->roam.configParam.enable_ftopen) + return true; break; case eCSR_AUTH_TYPE_FT_RSN_PSK: case eCSR_AUTH_TYPE_FT_RSN: @@ -2427,9 +2430,9 @@ bool csr_is_auth_type11r(eCsrAuthType auth_type, uint8_t mdie_present) } /* Function to return true if the profile is 11r */ -bool csr_is_profile11r(tCsrRoamProfile *pProfile) +bool csr_is_profile11r(tpAniSirGlobal mac, tCsrRoamProfile *pProfile) { - return csr_is_auth_type11r(pProfile->negotiatedAuthType, + return csr_is_auth_type11r(mac, pProfile->negotiatedAuthType, pProfile->MDID.mdiePresent); } diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index a1d4e7350b02..a29696fc225b 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -969,6 +969,7 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle, params->fw_pmksa_cache = roam_req->pmkid_modes.fw_pmksa_cache; #endif params->is_ese_assoc = roam_req->IsESEAssoc; + params->is_11r_assoc = roam_req->is_11r_assoc; params->mdid.mdie_present = roam_req->MDID.mdiePresent; params->mdid.mobility_domain = roam_req->MDID.mobilityDomain; params->assoc_ie_length = roam_req->assoc_ie.length; |
