Sfoglia il codice sorgente

qcacmn: Avoid sending fils_enable cmd to fw in case of non-tx vdev

In case of MBSSID, fils or 20tu unsolicited probe response frame
is required to be sent only by the tx-vdev. 20tu frames (fils or
probe response) sent by the tx-vdev carries the specified information
about the non-tx vdevs.

Currently, fils_enable wmi cmd is being sent by default to fw at
vdev_up of each vdev. Avoid sending this cmd in case of non-tx
vdev in MBSSID mode.

Change-Id: I6d6f85489baf34b282f012227f211388647fdb4e
CRs-fixed: 2727143
Gyanranjan Hazarika 5 anni fa
parent
commit
3c585e695a
1 ha cambiato i file con 12 aggiunte e 1 eliminazioni
  1. 12 1
      umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

+ 12 - 1
umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

@@ -376,6 +376,7 @@ QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj)
 	struct wlan_objmgr_vdev *vdev;
 	struct config_fils_params fils_param = {0};
 	uint8_t is_6g_sap_fd_enabled;
+	bool is_non_tx_vdev;
 
 	if (!mlme_obj) {
 		mlme_err("VDEV_MLME is NULL");
@@ -409,9 +410,19 @@ QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj)
 	is_6g_sap_fd_enabled = wlan_vdev_mlme_feat_ext_cap_get(vdev,
 					WLAN_VDEV_FEXT_FILS_DISC_6G_SAP);
 	mlme_debug("SAP FD enabled %d", is_6g_sap_fd_enabled);
+
+	/*
+	 * In case of a non-tx vdev, 'profile_num' must be greater
+	 * than 0 indicating one or more non-tx vdev and 'profile_idx'
+	 * must be in the range [1, 2^n] where n is the max bssid
+	 * indicator
+	 */
+	is_non_tx_vdev = param.profile_num && param.profile_idx;
+
 	if (opmode == QDF_SAP_MODE && mlme_obj->vdev->vdev_mlme.des_chan &&
 	    WLAN_REG_IS_6GHZ_CHAN_FREQ(
-			mlme_obj->vdev->vdev_mlme.des_chan->ch_freq)) {
+			mlme_obj->vdev->vdev_mlme.des_chan->ch_freq) &&
+		!is_non_tx_vdev) {
 		fils_param.vdev_id = wlan_vdev_get_id(mlme_obj->vdev);
 		if (is_6g_sap_fd_enabled) {
 			fils_param.fd_period = DEFAULT_FILS_DISCOVERY_PERIOD;