浏览代码

qcacmn: Config support to use BSSID in probe request RA

User configuration support to use scan request BSSID value
in Probe Request frame RA during the scan.

Change-Id: I40d07e4c3e4814a9c816b3e426dcbb63df7ddf27
CRs-Fixed: 2945679
Kiran Kumar Lokere 4 年之前
父节点
当前提交
e2ada05cee

+ 2 - 0
os_if/linux/scan/inc/wlan_cfg80211_scan.h

@@ -153,6 +153,7 @@ struct scan_req {
  * inapplicable.
  * @dwell_time_passive_6g: 6 GHz specific passive dwell time. Ignored if zero or
  * inapplicable.
+ * @scan_probe_unicast_ra: Use BSSID in probe request frame RA.
  * @scan_f_2ghz: Scan only 2GHz channels
  * @scan_f_5ghz: Scan only 5+6GHz channels
  */
@@ -169,6 +170,7 @@ struct scan_params {
 	uint32_t dwell_time_passive;
 	uint32_t dwell_time_active_6g;
 	uint32_t dwell_time_passive_6g;
+	bool scan_probe_unicast_ra;
 	bool scan_f_2ghz;
 	bool scan_f_5ghz;
 };

+ 7 - 0
os_if/linux/scan/src/wlan_cfg80211_scan.c

@@ -1630,6 +1630,13 @@ int wlan_cfg80211_scan(struct wlan_objmgr_vdev *vdev,
 	if (request->flags & NL80211_SCAN_FLAG_FLUSH)
 		ucfg_scan_flush_results(pdev, NULL);
 
+	if (params->scan_probe_unicast_ra)
+		req->scan_req.scan_ctrl_flags_ext |=
+				SCAN_FLAG_EXT_FORCE_UNICAST_RA;
+
+	osif_debug("scan_ctrl_flags_ext %0x",
+		   req->scan_req.scan_ctrl_flags_ext);
+
 	/*
 	 * Acquire wakelock to handle the case where APP's send scan to connect.
 	 * If suspend is received during scan scan will be aborted and APP will

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

@@ -158,6 +158,9 @@ struct probe_time_dwell_time {
 /* RRM scan type indication */
 #define SCAN_FLAG_EXT_RRM_SCAN_IND 0x400
 
+/* Probe request frame with unicast RA indication */
+#define SCAN_FLAG_EXT_FORCE_UNICAST_RA  0x1000
+
 /* Passive dwell time if bt_a2dp is enabled. Time in msecs*/
 #define PASSIVE_DWELL_TIME_BT_A2DP_ENABLED 28
 

+ 2 - 0
umac/scan/core/src/wlan_scan_manager.c

@@ -1050,6 +1050,8 @@ scm_scan_req_update_params(struct wlan_objmgr_vdev *vdev,
 
 	if (req->scan_req.scan_type == SCAN_TYPE_RRM)
 		req->scan_req.scan_ctrl_flags_ext |= SCAN_FLAG_EXT_RRM_SCAN_IND;
+
+	scm_debug("scan_ctrl_flags_ext %0x", req->scan_req.scan_ctrl_flags_ext);
 	/*
 	 * Set wide band flag if enabled. This will cause
 	 * phymode TLV being sent to FW.