Browse Source

Merge "qcacld-3.0: Refine mlme btm configurations" into wlan-cld3.driver.lnx.2.0

CNSS_WLAN Service 6 years ago
parent
commit
ae5ba120fe

+ 9 - 0
components/mlme/core/src/wlan_mlme_main.c

@@ -1835,6 +1835,14 @@ static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
 	wps_params->wps_version = cfg_default(CFG_WPS_VERSION);
 }
 
+static void mlme_init_btm_cfg(struct wlan_mlme_btm *btm)
+{
+	btm->btm_offload_config = cfg_default(CFG_BTM_ENABLE);
+	btm->btm_solicited_timeout = cfg_default(CFG_BTM_SOLICITED_TIMEOUT);
+	btm->btm_max_attempt_cnt = cfg_default(CFG_BTM_MAX_ATTEMPT_CNT);
+	btm->btm_sticky_time = cfg_default(CFG_BTM_STICKY_TIME);
+}
+
 QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 {
 	struct wlan_mlme_psoc_obj *mlme_obj;
@@ -1877,6 +1885,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	mlme_init_wep_cfg(&mlme_cfg->wep_params);
 	mlme_init_wifi_pos_cfg(psoc, &mlme_cfg->wifi_pos_cfg);
 	mlme_init_wps_params_cfg(psoc, &mlme_cfg->wps_params);
+	mlme_init_btm_cfg(&mlme_cfg->btm);
 
 	return status;
 }

+ 2 - 0
components/mlme/dispatcher/inc/cfg_mlme.h

@@ -51,10 +51,12 @@
 #include "cfg_mlme_feature_flag.h"
 #include "cfg_mlme_wep_params.h"
 #include "cfg_mlme_wifi_pos.h"
+#include "cfg_mlme_btm.h"
 
 /* Please Maintain Alphabetic Order here */
 #define CFG_MLME_ALL \
 	CFG_ACS_ALL \
+	CFG_BTM_ALL \
 	CFG_CHAINMASK_ALL \
 	CFG_DFS_ALL \
 	CFG_EDCA_PARAMS_ALL \

+ 147 - 0
components/mlme/dispatcher/inc/cfg_mlme_btm.h

@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ * DOC: This file contains MLME BTM related CFG/INI Items.
+ */
+
+#ifndef CFG_MLME_BTM_H_
+#define CFG_MLME_BTM_H_
+
+/*
+ * <ini>
+ * btm_offload_config - Configure BTM
+ * @Min: 0x00000000
+ * @Max: 0xFFFFFFFF
+ * @Default: 0x00000001
+ *
+ * This ini is used to configure BTM
+ *
+ * Bit 0: Enable/Disable the BTM offload. Set this to 1 will
+ * enable and 0 will disable BTM offload.
+ *
+ * BIT 2, 1: Action on non matching candidate with cache. If a BTM request
+ * is received from AP then the candidate AP's may/may-not be present in
+ * the firmware scan cache . Based on below config firmware will decide
+ * whether to forward BTM frame to host or consume with firmware and proceed
+ * with Roaming to candidate AP.
+ * 00 scan and consume
+ * 01 no scan and forward to host
+ * 10, 11 reserved
+ *
+ * BIT 5, 4, 3: Roaming handoff decisions on multiple candidates match
+ * 000 match if exact BSSIDs are found
+ * 001 match if at least one top priority BSSID only
+ * 010, 011, 100, 101, 110, 111 reserved
+ *
+ * BIT 6: Set this to 1 will send BTM query frame and 0 not sent.
+ *
+ * BIT 7-31: Reserved
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_BTM_ENABLE CFG_INI_UINT( \
+	"btm_offload_config", \
+	0x00000000, \
+	0xffffffff, \
+	0x00000001, \
+	CFG_VALUE_OR_DEFAULT, \
+	"configure btm offload")
+
+/*
+ * <ini>
+ * btm_solicited_timeout - timeout value for waiting BTM request
+ * @Min: 1
+ * @Max: 10000
+ * @Default: 100
+ *
+ * This ini is used to configure timeout value for waiting BTM request.
+ * Unit: millionsecond
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_BTM_SOLICITED_TIMEOUT CFG_INI_UINT( \
+	"btm_solicited_timeout", \
+	1, \
+	10000, \
+	100, \
+	CFG_VALUE_OR_DEFAULT, \
+	"configure timeout value for waiting BTM request")
+
+/*
+ * <ini>
+ * btm_max_attempt_cnt - Maximum attempt for sending BTM query to ESS
+ * @Min: 1
+ * @Max: 0xFFFFFFFF
+ * @Default: 3
+ *
+ * This ini is used to configure maximum attempt for sending BTM query to ESS.
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_BTM_MAX_ATTEMPT_CNT CFG_INI_UINT( \
+	"btm_max_attempt_cnt", \
+	1, \
+	0xFFFFFFFF, \
+	3, \
+	CFG_VALUE_OR_DEFAULT, \
+	"configure maximum attempt for sending BTM query to ESS")
+
+/*
+ * <ini>
+ * btm_sticky_time - Stick time after roaming to new AP by BTM
+ * @Min: 0
+ * @Max: 0x0000FFFF
+ * @Default: 300
+ *
+ * This ini is used to configure Stick time after roaming to new AP by BTM.
+ * Unit: seconds
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_BTM_STICKY_TIME CFG_INI_UINT( \
+	"btm_sticky_time", \
+	0, \
+	0x0000FFFF, \
+	300, \
+	CFG_VALUE_OR_DEFAULT, \
+	"configure Stick time after roaming to new AP by BTM")
+
+#define CFG_BTM_ALL \
+	CFG(CFG_BTM_ENABLE) \
+	CFG(CFG_BTM_SOLICITED_TIMEOUT) \
+	CFG(CFG_BTM_MAX_ATTEMPT_CNT) \
+	CFG(CFG_BTM_STICKY_TIME)
+
+#endif /* CFG_MLME_BTM_H_ */

+ 16 - 0
components/mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -1662,6 +1662,20 @@ struct wlan_mlme_wifi_pos_cfg {
 	uint32_t fine_time_meas_cap;
 };
 
+/*
+ * struct wlan_mlme_btm - BTM related configs
+ * @btm_offload_config: configure btm offload
+ * @btm_solicited_timeout: configure timeout value for waiting BTM request
+ * @btm_max_attempt_cnt: configure maximum attempt for sending BTM query to ESS
+ * @btm_sticky_time: configure Stick time after roaming to new AP by BTM
+ */
+struct wlan_mlme_btm {
+	uint32_t btm_offload_config;
+	uint32_t btm_solicited_timeout;
+	uint32_t btm_max_attempt_cnt;
+	uint32_t btm_sticky_time;
+};
+
 /**
  * struct wlan_mlme_cfg - MLME config items
  * @chainmask_cfg: VHT chainmask related cfg items
@@ -1693,6 +1707,7 @@ struct wlan_mlme_wifi_pos_cfg {
  * @wifi_pos_cfg: WIFI POS config
  * @wmm_params: WMM related CFG & INI Items
  * @wps_params: WPS related CFG itmes
+ * @btm: BTM related CFG itmes
  */
 struct wlan_mlme_cfg {
 	struct wlan_mlme_chainmask chainmask_cfg;
@@ -1726,6 +1741,7 @@ struct wlan_mlme_cfg {
 	struct wlan_mlme_wifi_pos_cfg wifi_pos_cfg;
 	struct wlan_mlme_wmm_params wmm_params;
 	struct wlan_mlme_wps_params wps_params;
+	struct wlan_mlme_btm btm;
 };
 
 #endif

+ 0 - 107
core/hdd/inc/wlan_hdd_cfg.h

@@ -4046,109 +4046,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_ENABLE_PACKET_FILTERS_MAX      (63)
 #endif /* WLAN_FEATURE_PACKET_FILTERING */
 
-/*
- * <ini>
- * btm_offload_config - Configure BTM
- * @Min: 0x00000000
- * @Max: 0xFFFFFFFF
- * @Default: 0x00000000
- *
- * This ini is used to configure BTM
- *
- * Bit 0: Enable/Disable the BTM offload. Set this to 1 will
- * enable and 0 will disable BTM offload.
- *
- * BIT 2, 1: Action on non matching candidate with cache. If a BTM request
- * is received from AP then the candidate AP's may/may-not be present in
- * the firmware scan cache . Based on below config firmware will decide
- * whether to forward BTM frame to host or consume with firmware and proceed
- * with Roaming to candidate AP.
- * 00 scan and consume
- * 01 no scan and forward to host
- * 10, 11 reserved
- *
- * BIT 5, 4, 3: Roaming handoff decisions on multiple candidates match
- * 000 match if exact BSSIDs are found
- * 001 match if at least one top priority BSSID only
- * 010, 011, 100, 101, 110, 111 reserved
- *
- * BIT 6: Set this to 1 will send BTM query frame and 0 not sent.
- *
- * BIT 7-31: Reserved
- *
- * Supported Feature: STA
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_BTM_ENABLE_NAME      "btm_offload_config"
-#define CFG_BTM_ENABLE_MIN       (0x00000000)
-#define CFG_BTM_ENABLE_MAX       (0xffffffff)
-#define CFG_BTM_ENABLE_DEFAULT   (0x00000001)
-
-/*
- * <ini>
- * btm_solicited_timeout - timeout value for waiting BTM request
- * @Min: 1
- * @Max: 10000
- * @Default: 100
- *
- * This ini is used to configure timeout value for waiting BTM request.
- * Unit: millionsecond
- *
- * Supported Feature: STA
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_BTM_SOLICITED_TIMEOUT           "btm_solicited_timeout"
-#define CFG_BTM_SOLICITED_TIMEOUT_MIN       (1)
-#define CFG_BTM_SOLICITED_TIMEOUT_MAX       (10000)
-#define CFG_BTM_SOLICITED_TIMEOUT_DEFAULT   (100)
-
-/*
- * <ini>
- * btm_max_attempt_cnt - Maximum attempt for sending BTM query to ESS
- * @Min: 1
- * @Max: 0xFFFFFFFF
- * @Default: 3
- *
- * This ini is used to configure maximum attempt for sending BTM query to ESS.
- *
- * Supported Feature: STA
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_BTM_MAX_ATTEMPT_CNT           "btm_max_attempt_cnt"
-#define CFG_BTM_MAX_ATTEMPT_CNT_MIN       (0x00000001)
-#define CFG_BTM_MAX_ATTEMPT_CNT_MAX       (0xFFFFFFFF)
-#define CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT   (0x00000003)
-
-/*
- * <ini>
- * btm_sticky_time - Stick time after roaming to new AP by BTM
- * @Min: 0
- * @Max: 0x0000FFFF
- * @Default: 300
- *
- * This ini is used to configure Stick time after roaming to new AP by BTM.
- * Unit: seconds
- *
- * Supported Feature: STA
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_BTM_STICKY_TIME           "btm_sticky_time"
-#define CFG_BTM_STICKY_TIME_MIN       (0x00000000)
-#define CFG_BTM_STICKY_TIME_MAX       (0x0000FFFF)
-#define CFG_BTM_STICKY_TIME_DEFAULT   (300)
-
 /*
  * <ini>
  * gcmp_enabled - ini to enable/disable GCMP
@@ -5127,16 +5024,12 @@ struct hdd_config {
 #ifdef WLAN_FEATURE_PACKET_FILTERING
 	uint8_t packet_filters_bitmap;
 #endif
-	uint32_t btm_offload_config;
 #ifdef WLAN_FEATURE_SAE
 	bool is_sae_enabled;
 #endif
 	bool enable_dtim_selection_diversity;
 	bool gcmp_enabled;
 	bool is_11k_offload_supported;
-	uint32_t btm_solicited_timeout;
-	uint32_t btm_max_attempt_cnt;
-	uint32_t btm_sticky_time;
 	uint32_t offload_11k_enable_bitmask;
 	uint32_t neighbor_report_offload_params_bitmask;
 	uint32_t neighbor_report_offload_time_offset;

+ 0 - 37
core/hdd/src/wlan_hdd_cfg.c

@@ -1133,13 +1133,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_LATENCY_FLAGS_ULTRALOW_MIN,
 		     CFG_LATENCY_FLAGS_ULTRALOW_MAX),
 
-	REG_VARIABLE(CFG_BTM_ENABLE_NAME, WLAN_PARAM_HexInteger,
-		     struct hdd_config, btm_offload_config,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_BTM_ENABLE_DEFAULT,
-		     CFG_BTM_ENABLE_MIN,
-		     CFG_BTM_ENABLE_MAX),
-
 #ifdef WLAN_FEATURE_SAE
 	REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, is_sae_enabled,
@@ -1149,27 +1142,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_IS_SAE_ENABLED_MAX),
 #endif
 
-	REG_VARIABLE(CFG_BTM_SOLICITED_TIMEOUT, WLAN_PARAM_Integer,
-		     struct hdd_config, btm_solicited_timeout,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_BTM_SOLICITED_TIMEOUT_DEFAULT,
-		     CFG_BTM_SOLICITED_TIMEOUT_MIN,
-		     CFG_BTM_SOLICITED_TIMEOUT_MAX),
-
-	REG_VARIABLE(CFG_BTM_MAX_ATTEMPT_CNT, WLAN_PARAM_Integer,
-		     struct hdd_config, btm_max_attempt_cnt,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT,
-		     CFG_BTM_MAX_ATTEMPT_CNT_MIN,
-		     CFG_BTM_MAX_ATTEMPT_CNT_MAX),
-
-	REG_VARIABLE(CFG_BTM_STICKY_TIME, WLAN_PARAM_Integer,
-		     struct hdd_config, btm_sticky_time,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_BTM_STICKY_TIME_DEFAULT,
-		     CFG_BTM_STICKY_TIME_MIN,
-		     CFG_BTM_STICKY_TIME_MAX),
-
 	REG_VARIABLE(CFG_ENABLE_GCMP_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, gcmp_enabled,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2952,15 +2924,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 
 	smeConfig->csrConfig.is_force_1x1 =
 			hdd_ctx->config->is_force_1x1;
-
-	smeConfig->csrConfig.btm_offload_config =
-			hdd_ctx->config->btm_offload_config;
-	smeConfig->csrConfig.btm_solicited_timeout =
-			hdd_ctx->config->btm_solicited_timeout;
-	smeConfig->csrConfig.btm_max_attempt_cnt =
-			hdd_ctx->config->btm_max_attempt_cnt;
-	smeConfig->csrConfig.btm_sticky_time =
-			hdd_ctx->config->btm_sticky_time;
 	hdd_set_sme_cfgs_related_to_plcy_mgr(hdd_ctx, smeConfig);
 	hdd_update_11k_offload_params(hdd_ctx->config,
 					&smeConfig->csrConfig);

+ 0 - 4
core/sme/inc/csr_api.h

@@ -1139,10 +1139,6 @@ typedef struct tagCsrConfigParam {
 	uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
 	bool is_force_1x1;
 	uint8_t oce_feature_bitmap;
-	uint32_t btm_offload_config;
-	uint32_t btm_solicited_timeout;
-	uint32_t btm_max_attempt_cnt;
-	uint32_t btm_sticky_time;
 	uint32_t offload_11k_enable_bitmask;
 	bool wep_tkip_in_he;
 	struct csr_neighbor_report_offload_params neighbor_report_offload;

+ 0 - 4
core/sme/inc/csr_internal.h

@@ -466,10 +466,6 @@ struct csr_config {
 	uint16_t wlm_latency_level;
 	uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
 	uint8_t oce_feature_bitmap;
-	uint32_t btm_offload_config;
-	uint32_t btm_solicited_timeout;
-	uint32_t btm_max_attempt_cnt;
-	uint32_t btm_sticky_time;
 	uint32_t offload_11k_enable_bitmask;
 	bool wep_tkip_in_he;
 	struct csr_neighbor_report_offload_params neighbor_report_offload;

+ 4 - 19
core/sme/src/csr/csr_api_roam.c

@@ -2739,15 +2739,6 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac,
 		mac->roam.configParam.roam_force_rssi_trigger =
 			pParam->roam_force_rssi_trigger;
 
-		mac->roam.configParam.btm_offload_config =
-						     pParam->btm_offload_config;
-		mac->roam.configParam.btm_solicited_timeout =
-			pParam->btm_solicited_timeout;
-		mac->roam.configParam.btm_max_attempt_cnt =
-			pParam->btm_max_attempt_cnt;
-		mac->roam.configParam.btm_sticky_time =
-			pParam->btm_sticky_time;
-
 		csr_update_he_config_param(mac, pParam);
 		csr_set_11k_offload_config_param(&mac->roam.configParam,
 						 pParam);
@@ -2890,12 +2881,6 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac, tCsrConfigParam *pParam
 	pParam->oce_feature_bitmap =
 		mac->roam.configParam.oce_feature_bitmap;
 	pParam->roam_force_rssi_trigger = cfg_params->roam_force_rssi_trigger;
-	pParam->btm_offload_config = mac->roam.configParam.btm_offload_config;
-	pParam->btm_solicited_timeout =
-		mac->roam.configParam.btm_solicited_timeout;
-	pParam->btm_max_attempt_cnt =
-		mac->roam.configParam.btm_max_attempt_cnt;
-	pParam->btm_sticky_time = mac->roam.configParam.btm_sticky_time;
 
 	csr_get_he_config_param(pParam, mac);
 
@@ -18252,14 +18237,14 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx,
 		req_buf->btm_offload_config = 0;
 	else
 		req_buf->btm_offload_config =
-			mac_ctx->roam.configParam.btm_offload_config;
+			mac_ctx->mlme_cfg->btm.btm_offload_config;
 
 	req_buf->btm_solicited_timeout =
-		mac_ctx->roam.configParam.btm_solicited_timeout;
+		mac_ctx->mlme_cfg->btm.btm_solicited_timeout;
 	req_buf->btm_max_attempt_cnt =
-		mac_ctx->roam.configParam.btm_max_attempt_cnt;
+		mac_ctx->mlme_cfg->btm.btm_max_attempt_cnt;
 	req_buf->btm_sticky_time =
-		mac_ctx->roam.configParam.btm_sticky_time;
+		mac_ctx->mlme_cfg->btm.btm_sticky_time;
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 	QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,