qcacmn: Enable Fils Discovery frame sending in 6GHz SAP

To enhance visibility of 6GHz AP, 6G only AP shall send
Fils Discovery frame periodically in one beacon interval.

Change-Id: I51487380fca10418d2260dc2612e2adcf6cbb93b
CRs-Fixed: 2562434
Этот коммит содержится в:
Liangwei Dong
2019-11-27 17:03:55 +08:00
коммит произвёл nshrivas
родитель 9a8d2a2825
Коммит 49472056b2
11 изменённых файлов: 191 добавлений и 12 удалений

Просмотреть файл

@@ -343,6 +343,7 @@ QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj)
struct beacon_tmpl_params bcn_tmpl_param = {0};
enum QDF_OPMODE opmode;
struct wlan_objmgr_vdev *vdev;
struct config_fils_params fils_param = {0};
if (!mlme_obj) {
mlme_err("VDEV_MLME is NULL");
@@ -370,6 +371,17 @@ QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj)
return status;
status = tgt_vdev_mgr_up_send(mlme_obj, &param);
if (QDF_IS_STATUS_ERROR(status))
return status;
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)) {
fils_param.vdev_id = wlan_vdev_get_id(mlme_obj->vdev);
fils_param.fd_period = DEFAULT_FILS_DISCOVERY_PERIOD;
status = tgt_vdev_mgr_fils_enable_send(mlme_obj,
&fils_param);
}
return status;
}

Просмотреть файл

@@ -221,6 +221,33 @@ QDF_STATUS tgt_vdev_mgr_beacon_tmpl_send(
struct vdev_mlme_obj *mlme_obj,
struct beacon_tmpl_params *param);
#if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ)
/**
* tgt_vdev_mgr_fils_enable_send()- API to send fils enable command
* @mlme_obj: pointer to vdev_mlme_obj
* @param: pointer to config_fils_params struct
*
* Return: QDF_STATUS - Success or Failure
*/
QDF_STATUS tgt_vdev_mgr_fils_enable_send(
struct vdev_mlme_obj *mlme_obj,
struct config_fils_params *param);
#else
/**
* tgt_vdev_mgr_fils_enable_send()- API to send fils enable command
* @mlme_obj: pointer to vdev_mlme_obj
* @param: pointer to config_fils_params struct
*
* Return: QDF_STATUS - Success or Failure
*/
static inline QDF_STATUS tgt_vdev_mgr_fils_enable_send(
struct vdev_mlme_obj *mlme_obj,
struct config_fils_params *param)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* tgt_vdev_mgr_multiple_vdev_restart_send() – API to send multiple vdev
* restart

Просмотреть файл

@@ -267,6 +267,21 @@ struct peer_flush_params {
uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
};
/* Default FILS DISCOVERY sent in period of 20TU */
#define DEFAULT_FILS_DISCOVERY_PERIOD 20
/**
* struct config_fils_params - FILS config params
* @vdev_id: vdev id
* @fd_period: 0 - Disabled, non-zero - Period in ms (mili seconds)
* @send_prb_rsp_frame: send broadcast prb resp frame
*/
struct config_fils_params {
uint8_t vdev_id;
uint32_t fd_period;
uint32_t send_prb_rsp_frame: 1;
};
/**
* struct config_ratemask_params - ratemask config parameters
* @vdev_id: vdev id

Просмотреть файл

@@ -479,6 +479,33 @@ QDF_STATUS tgt_vdev_mgr_beacon_tmpl_send(
return QDF_STATUS_SUCCESS;
}
#if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ)
QDF_STATUS tgt_vdev_mgr_fils_enable_send(
struct vdev_mlme_obj *mlme_obj,
struct config_fils_params *param)
{
QDF_STATUS status;
struct wlan_lmac_if_mlme_tx_ops *txops;
struct wlan_objmgr_vdev *vdev;
uint8_t vdev_id;
vdev = mlme_obj->vdev;
vdev_id = wlan_vdev_get_id(vdev);
txops = wlan_vdev_mlme_get_lmac_txops(vdev);
if (!txops || !txops->vdev_fils_enable_send) {
mlme_err("VDEV_%d: No Tx Ops fils Enable", vdev_id);
return QDF_STATUS_E_INVAL;
}
status = txops->vdev_fils_enable_send(vdev, param);
if (QDF_IS_STATUS_ERROR(status))
mlme_err("VDEV_%d: Tx Ops fils Enable Error : %d",
vdev_id, status);
return status;
}
#endif
QDF_STATUS tgt_vdev_mgr_multiple_vdev_restart_send(
struct wlan_objmgr_pdev *pdev,
struct multiple_vdev_restart_params *param)