qcacld-3.0: Add new ini to enable/disable FT open feature
Add new ini item "enable_ftopen" to enable/disable FT open feature. There is no ini currently to disable only FT open. Change-Id: I18280d9de77857b15698eb233ba4ec71089beb06 CRs-Fixed: 2214766
This commit is contained in:

committed by
Sandeep Puligilla

parent
bd9a47e43d
commit
271f063980
@@ -2041,6 +2041,28 @@ enum hdd_dot11_mode {
|
|||||||
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX (20)
|
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX (20)
|
||||||
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT (10)
|
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT (10)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <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>
|
* <ini>
|
||||||
* groam_dense_min_aps - Sets minimum number of AP for dense roam
|
* groam_dense_min_aps - Sets minimum number of AP for dense roam
|
||||||
@@ -14765,6 +14787,7 @@ struct hdd_config {
|
|||||||
uint8_t enable_tx_sch_delay;
|
uint8_t enable_tx_sch_delay;
|
||||||
HDD_GREEN_AP_CFG_FIELDS
|
HDD_GREEN_AP_CFG_FIELDS
|
||||||
bool is_unit_test_framework_enabled;
|
bool is_unit_test_framework_enabled;
|
||||||
|
bool enable_ftopen;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
||||||
|
@@ -5328,6 +5328,13 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_ENABLE_UINT_TEST_FRAMEWORK_DEFAULT,
|
CFG_ENABLE_UINT_TEST_FRAMEWORK_DEFAULT,
|
||||||
CFG_ENABLE_UNIT_TEST_FRAMEWORK_MIN,
|
CFG_ENABLE_UNIT_TEST_FRAMEWORK_MIN,
|
||||||
CFG_ENABLE_UNIT_TEST_FRAMEWORK_MAX),
|
CFG_ENABLE_UNIT_TEST_FRAMEWORK_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),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -7204,6 +7211,9 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
|||||||
hdd_debug("Name = [%s] value = [0x%x]",
|
hdd_debug("Name = [%s] value = [0x%x]",
|
||||||
CFG_ENABLE_UNIT_TEST_FRAMEWORK_NAME,
|
CFG_ENABLE_UNIT_TEST_FRAMEWORK_NAME,
|
||||||
hdd_ctx->config->is_unit_test_framework_enabled);
|
hdd_ctx->config->is_unit_test_framework_enabled);
|
||||||
|
hdd_debug("Name = [%s] Value = [%u]",
|
||||||
|
CFG_ROAM_FT_OPEN_ENABLE_NAME,
|
||||||
|
hdd_ctx->config->enable_ftopen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -8799,6 +8809,8 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
|
|||||||
hdd_ctx->config->scan_adaptive_dwell_mode_nc;
|
hdd_ctx->config->scan_adaptive_dwell_mode_nc;
|
||||||
smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
|
smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
|
||||||
hdd_ctx->config->roamscan_adaptive_dwell_mode;
|
hdd_ctx->config->roamscan_adaptive_dwell_mode;
|
||||||
|
smeConfig->csrConfig.enable_ftopen =
|
||||||
|
hdd_ctx->config->enable_ftopen;
|
||||||
|
|
||||||
hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
|
hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
|
||||||
|
|
||||||
|
@@ -2894,6 +2894,7 @@ typedef struct sSirRoamOffloadScanReq {
|
|||||||
uint8_t ValidChannelCount;
|
uint8_t ValidChannelCount;
|
||||||
uint8_t ValidChannelList[SIR_ROAM_MAX_CHANNELS];
|
uint8_t ValidChannelList[SIR_ROAM_MAX_CHANNELS];
|
||||||
bool IsESEAssoc;
|
bool IsESEAssoc;
|
||||||
|
bool is_11r_assoc;
|
||||||
uint8_t nProbes;
|
uint8_t nProbes;
|
||||||
uint16_t HomeAwayTime;
|
uint16_t HomeAwayTime;
|
||||||
tSirRoamNetworkType ConnectedNetwork;
|
tSirRoamNetworkType ConnectedNetwork;
|
||||||
|
@@ -1306,6 +1306,7 @@ typedef struct tagCsrConfigParam {
|
|||||||
uint32_t offload_11k_enable_bitmask;
|
uint32_t offload_11k_enable_bitmask;
|
||||||
bool wep_tkip_in_he;
|
bool wep_tkip_in_he;
|
||||||
struct csr_neighbor_report_offload_params neighbor_report_offload;
|
struct csr_neighbor_report_offload_params neighbor_report_offload;
|
||||||
|
bool enable_ftopen;
|
||||||
} tCsrConfigParam;
|
} tCsrConfigParam;
|
||||||
|
|
||||||
/* Tush */
|
/* Tush */
|
||||||
|
@@ -610,6 +610,7 @@ struct csr_config {
|
|||||||
uint32_t offload_11k_enable_bitmask;
|
uint32_t offload_11k_enable_bitmask;
|
||||||
bool wep_tkip_in_he;
|
bool wep_tkip_in_he;
|
||||||
struct csr_neighbor_report_offload_params neighbor_report_offload;
|
struct csr_neighbor_report_offload_params neighbor_report_offload;
|
||||||
|
bool enable_ftopen;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct csr_channel_powerinfo {
|
struct csr_channel_powerinfo {
|
||||||
|
@@ -357,8 +357,9 @@ QDF_STATUS csr_reassoc(tpAniSirGlobal pMac, uint32_t sessionId,
|
|||||||
QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId,
|
QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId,
|
||||||
uint16_t *beaconInterval, uint32_t cursessionId,
|
uint16_t *beaconInterval, uint32_t cursessionId,
|
||||||
enum QDF_OPMODE currBssPersona);
|
enum QDF_OPMODE currBssPersona);
|
||||||
bool csr_is_profile11r(struct csr_roam_profile *pProfile);
|
bool csr_is_profile11r(tpAniSirGlobal mac, struct csr_roam_profile *pProfile);
|
||||||
bool csr_is_auth_type11r(eCsrAuthType AuthType, uint8_t mdiePresent);
|
bool csr_is_auth_type11r(tpAniSirGlobal mac, eCsrAuthType AuthType,
|
||||||
|
uint8_t mdiePresent);
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
bool csr_is_profile_ese(struct csr_roam_profile *pProfile);
|
bool csr_is_profile_ese(struct csr_roam_profile *pProfile);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -2988,6 +2988,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||||||
roam_bad_rssi_thresh_offset_2g =
|
roam_bad_rssi_thresh_offset_2g =
|
||||||
pParam->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 =
|
pMac->roam.configParam.scan_adaptive_dwell_mode =
|
||||||
pParam->scan_adaptive_dwell_mode;
|
pParam->scan_adaptive_dwell_mode;
|
||||||
pMac->roam.configParam.scan_adaptive_dwell_mode_nc =
|
pMac->roam.configParam.scan_adaptive_dwell_mode_nc =
|
||||||
@@ -3308,6 +3310,7 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||||||
pParam->roam_bad_rssi_thresh_offset_2g =
|
pParam->roam_bad_rssi_thresh_offset_2g =
|
||||||
cfg_params->roam_params.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 =
|
pParam->scan_adaptive_dwell_mode =
|
||||||
cfg_params->scan_adaptive_dwell_mode;
|
cfg_params->scan_adaptive_dwell_mode;
|
||||||
pParam->scan_adaptive_dwell_mode_nc =
|
pParam->scan_adaptive_dwell_mode_nc =
|
||||||
@@ -15479,7 +15482,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
|
|||||||
ese_config = pMac->roam.configParam.isEseIniFeatureEnabled;
|
ese_config = pMac->roam.configParam.isEseIniFeatureEnabled;
|
||||||
#endif
|
#endif
|
||||||
pProfile->MDID.mdiePresent = pBssDescription->mdiePresent;
|
pProfile->MDID.mdiePresent = pBssDescription->mdiePresent;
|
||||||
if (csr_is_profile11r(pProfile)
|
if (csr_is_profile11r(pMac, pProfile)
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
&&
|
&&
|
||||||
!((pProfile->negotiatedAuthType ==
|
!((pProfile->negotiatedAuthType ==
|
||||||
@@ -18271,9 +18274,10 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
|
|||||||
eCSR_AUTH_TYPE_OPEN_SYSTEM) ||
|
eCSR_AUTH_TYPE_OPEN_SYSTEM) ||
|
||||||
(csr_is_auth_type_ese(req_buf->
|
(csr_is_auth_type_ese(req_buf->
|
||||||
ConnectedNetwork.authentication)));
|
ConnectedNetwork.authentication)));
|
||||||
|
req_buf->is_11r_assoc = roam_info->is11rAssoc;
|
||||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
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",
|
"IsEseAssoc: %d is_11r_assoc: %d middle of roaming: %d ese_neighbor_list_recvd: %d cur no of chan: %d",
|
||||||
req_buf->IsESEAssoc,
|
req_buf->IsESEAssoc, req_buf->is_11r_assoc,
|
||||||
req_buf->middle_of_roaming,
|
req_buf->middle_of_roaming,
|
||||||
ese_neighbor_list_recvd,
|
ese_neighbor_list_recvd,
|
||||||
curr_ch_lst_info->numOfChannels);
|
curr_ch_lst_info->numOfChannels);
|
||||||
|
@@ -1000,7 +1000,7 @@ static void csr_neighbor_roam_info_ctx_init(
|
|||||||
|
|
||||||
/* Based on the auth scheme tell if we are 11r */
|
/* Based on the auth scheme tell if we are 11r */
|
||||||
if (csr_is_auth_type11r
|
if (csr_is_auth_type11r
|
||||||
(session->connectedProfile.AuthType,
|
(pMac, session->connectedProfile.AuthType,
|
||||||
session->connectedProfile.MDID.mdiePresent)) {
|
session->connectedProfile.MDID.mdiePresent)) {
|
||||||
if (pMac->roam.configParam.isFastTransitionEnabled)
|
if (pMac->roam.configParam.isFastTransitionEnabled)
|
||||||
init_ft_flag = true;
|
init_ft_flag = true;
|
||||||
|
@@ -2701,16 +2701,19 @@ QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* csr_is_auth_type11r() - Check if Authentication type is 11R
|
* 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
|
* @auth_type: The authentication type that is used to make the connection
|
||||||
* @mdie_present: Is MDIE IE present
|
* @mdie_present: Is MDIE IE present
|
||||||
*
|
*
|
||||||
* Return: true if is 11R auth type, false otherwise
|
* 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) {
|
switch (auth_type) {
|
||||||
case eCSR_AUTH_TYPE_OPEN_SYSTEM:
|
case eCSR_AUTH_TYPE_OPEN_SYSTEM:
|
||||||
if (mdie_present)
|
if (mdie_present &&
|
||||||
|
mac->roam.configParam.enable_ftopen)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
case eCSR_AUTH_TYPE_FT_RSN_PSK:
|
case eCSR_AUTH_TYPE_FT_RSN_PSK:
|
||||||
@@ -2723,9 +2726,10 @@ bool csr_is_auth_type11r(eCsrAuthType auth_type, uint8_t mdie_present)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Function to return true if the profile is 11r */
|
/* Function to return true if the profile is 11r */
|
||||||
bool csr_is_profile11r(struct csr_roam_profile *pProfile)
|
bool csr_is_profile11r(tpAniSirGlobal mac,
|
||||||
|
struct csr_roam_profile *pProfile)
|
||||||
{
|
{
|
||||||
return csr_is_auth_type11r(pProfile->negotiatedAuthType,
|
return csr_is_auth_type11r(mac, pProfile->negotiatedAuthType,
|
||||||
pProfile->MDID.mdiePresent);
|
pProfile->MDID.mdiePresent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -360,6 +360,7 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
|
|||||||
params->fw_pmksa_cache = roam_req->pmkid_modes.fw_pmksa_cache;
|
params->fw_pmksa_cache = roam_req->pmkid_modes.fw_pmksa_cache;
|
||||||
#endif
|
#endif
|
||||||
params->is_ese_assoc = roam_req->IsESEAssoc;
|
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.mdie_present = roam_req->MDID.mdiePresent;
|
||||||
params->mdid.mobility_domain = roam_req->MDID.mobilityDomain;
|
params->mdid.mobility_domain = roam_req->MDID.mobilityDomain;
|
||||||
params->assoc_ie_length = roam_req->assoc_ie.length;
|
params->assoc_ie_length = roam_req->assoc_ie.length;
|
||||||
|
Reference in New Issue
Block a user