Browse Source

qcacmn: Add knobs to configure the scan paramters

Add user configuration parameters to configure the number of
probes in scan request and probe repeate time during scan

Change-Id: I65a3734d8080d8adfe3e9ffa26905e6adc196197
CRs-Fixed: 2071697
Kiran Kumar Lokere 7 years ago
parent
commit
c55ea47249

+ 2 - 0
umac/scan/core/src/wlan_scan_main.h

@@ -300,6 +300,8 @@ struct scan_default_params {
 	uint32_t prefer_5ghz;
 	uint32_t select_5ghz_margin;
 	bool is_bssid_hint_priority;
+	uint32_t usr_cfg_probe_rpt_time;
+	uint32_t usr_cfg_num_probes;
 	/* each RSSI category has one value */
 	uint32_t bss_prefer_val[SCM_NUM_RSSI_CAT];
 	int rssi_cat[SCM_NUM_RSSI_CAT];

+ 2 - 0
umac/scan/dispatcher/inc/wlan_scan_public_structs.h

@@ -1110,6 +1110,8 @@ struct scan_user_cfg {
 	enum scan_dwelltime_adaptive_mode scan_dwell_time_mode;
 	struct pno_user_cfg pno_cfg;
 	struct probe_req_whitelist_attr ie_whitelist;
+	uint32_t usr_cfg_probe_rpt_time;
+	uint32_t usr_cfg_num_probes;
 	bool is_bssid_hint_priority;
 };
 

+ 12 - 1
umac/scan/dispatcher/src/wlan_scan_ucfg_api.c

@@ -437,7 +437,17 @@ ucfg_scan_start(struct scan_start_request *req)
 	scm_info("reqid: %d, scanid: %d, vdevid: %d",
 		req->scan_req.scan_req_id, req->scan_req.scan_id,
 		req->scan_req.vdev_id);
+	if (scan_obj->scan_def.usr_cfg_probe_rpt_time) {
+		req->scan_req.repeat_probe_time =
+			scan_obj->scan_def.usr_cfg_probe_rpt_time;
+		scm_debug("usr_cfg_probe_rpt_time %d",
+				req->scan_req.repeat_probe_time);
+	}
 
+	if (scan_obj->scan_def.usr_cfg_num_probes) {
+		req->scan_req.n_probes = scan_obj->scan_def.usr_cfg_num_probes;
+		scm_debug("usr_cfg_num_probes %d", req->scan_req.n_probes);
+	}
 	ucfg_scan_update_dbs_scan_ctrl_ext_flag(req);
 	if (req->scan_req.scan_f_passive)
 		req->scan_req.scan_ctrl_flags_ext |=
@@ -966,7 +976,6 @@ ucfg_scan_init_default_params(struct wlan_objmgr_vdev *vdev,
 		def->adaptive_dwell_time_mode;
 	req->scan_req.scan_flags = def->scan_flags;
 	req->scan_req.scan_events = def->scan_events;
-
 	ucfg_scan_req_update_params(vdev, req);
 
 	return QDF_STATUS_SUCCESS;
@@ -1216,6 +1225,8 @@ QDF_STATUS ucfg_scan_update_user_config(struct wlan_objmgr_psoc *psoc,
 	scan_def->adaptive_dwell_time_mode = scan_cfg->scan_dwell_time_mode;
 	scan_def->scan_f_chan_stat_evnt = scan_cfg->is_snr_monitoring_enabled;
 	scan_obj->ie_whitelist = scan_cfg->ie_whitelist;
+	scan_def->usr_cfg_probe_rpt_time = scan_cfg->usr_cfg_probe_rpt_time;
+	scan_def->usr_cfg_num_probes = scan_cfg->usr_cfg_num_probes;
 	scan_def->is_bssid_hint_priority = scan_cfg->is_bssid_hint_priority;
 
 	ucfg_scan_assign_rssi_category(scan_def,