Prechádzať zdrojové kódy

qcacmn: SAP is not advertising 20TU probe response

SAP not advertising 20TU probe response when
FILS Discovery is disbaled through ini.

Updated WMI fields to enable 20TU probe response
when 6Ghz SAP is operating.

Change-Id: Idc4b95047d2149f68a68a434afda4d325a5d0547
CRs-Fixed: 2600485
Sandeep Puligilla 5 rokov pred
rodič
commit
a94efa0175

+ 6 - 2
umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

@@ -379,11 +379,15 @@ QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj)
 					WLAN_VDEV_FEXT_FILS_DISC_6G_SAP);
 	mlme_debug("SAP FD enabled %d", is_6g_sap_fd_enabled);
 	if (opmode == QDF_SAP_MODE && mlme_obj->vdev->vdev_mlme.des_chan &&
-	    is_6g_sap_fd_enabled &&
 	    WLAN_REG_IS_6GHZ_CHAN_FREQ(
 			mlme_obj->vdev->vdev_mlme.des_chan->ch_freq)) {
 		fils_param.vdev_id = wlan_vdev_get_id(mlme_obj->vdev);
-		fils_param.fd_period = DEFAULT_FILS_DISCOVERY_PERIOD;
+		if (is_6g_sap_fd_enabled) {
+			fils_param.fd_period = DEFAULT_FILS_DISCOVERY_PERIOD;
+		} else {
+			fils_param.send_prb_rsp_frame = true;
+			fils_param.fd_period = DEFAULT_PROBE_RESP_PERIOD;
+		}
 		status = tgt_vdev_mgr_fils_enable_send(mlme_obj,
 						       &fils_param);
 	}

+ 3 - 2
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-2020 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
@@ -298,8 +298,9 @@ struct peer_flush_params {
 	uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
 };
 
-/* Default FILS DISCOVERY sent in period of 20TU */
+/* Default FILS DISCOVERY/probe response sent in period of 20TU */
 #define DEFAULT_FILS_DISCOVERY_PERIOD 20
+#define DEFAULT_PROBE_RESP_PERIOD 20
 
 /**
  * struct config_fils_params - FILS config params

+ 4 - 2
wmi/src/wmi_unified_tlv.c

@@ -12337,8 +12337,10 @@ send_vdev_fils_enable_cmd_send(struct wmi_unified *wmi_handle,
 		       (wmi_enable_fils_cmd_fixed_param));
 	cmd->vdev_id = param->vdev_id;
 	cmd->fd_period = param->fd_period;
-	WMI_LOGD("%s: vdev id: %d fd_period: %d",
-		 __func__, cmd->vdev_id, cmd->fd_period);
+	if (param->send_prb_rsp_frame)
+		cmd->flags |= WMI_FILS_FLAGS_BITMAP_BCAST_PROBE_RSP;
+	WMI_LOGD("%s: vdev id: %d fd_period: %d cmd->Flags %d",
+		 __func__, cmd->vdev_id, cmd->fd_period, cmd->flags);
 	wmi_mtrace(WMI_ENABLE_FILS_CMDID, cmd->vdev_id, cmd->fd_period);
 	if (wmi_unified_cmd_send(wmi_handle, buf, len,
 				 WMI_ENABLE_FILS_CMDID)) {