qcacld-3.0: 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: Ie0b7620428e1bfbd51e7430b6b7ad23ebede9e67 CRs-Fixed: 3021525
This commit is contained in:

committed by
Madan Koyyalamudi

parent
25778389e8
commit
cde70adc46
@@ -2250,6 +2250,35 @@ wlan_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value);
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_sta_miracast_mcc_rest_time(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_scan_probe_unicast_ra() - Get scan probe unicast RA cfg
|
||||
*
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: value which needs to filled by API
|
||||
*
|
||||
* This API gives scan probe request with unicast RA user config
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_scan_probe_unicast_ra() - Set scan probe unicast RA cfg
|
||||
*
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: set value
|
||||
*
|
||||
* This API sets scan probe request with unicast RA user config
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_sap_mcc_chnl_avoid() - Check if SAP MCC needs to be avoided
|
||||
*
|
||||
|
@@ -1576,6 +1576,7 @@ enum station_keepalive_method {
|
||||
* @single_tid: Set replay counter for all TID
|
||||
* @allow_tpc_from_ap: Support for AP power constraint
|
||||
* @usr_disabled_roaming: User config for roaming disable
|
||||
* @usr_scan_probe_unicast_ra: User config unicast probe req in scan
|
||||
*/
|
||||
struct wlan_mlme_sta_cfg {
|
||||
uint32_t sta_keep_alive_period;
|
||||
@@ -1598,6 +1599,7 @@ struct wlan_mlme_sta_cfg {
|
||||
bool allow_tpc_from_ap;
|
||||
enum station_keepalive_method sta_keepalive_method;
|
||||
bool usr_disabled_roaming;
|
||||
bool usr_scan_probe_unicast_ra;
|
||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
|
||||
host_event_wlan_status_payload_type event_payload;
|
||||
#endif
|
||||
|
@@ -4143,6 +4143,40 @@ QDF_STATUS
|
||||
ucfg_mlme_set_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t value);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_scan_probe_unicast_ra() - Get scan probe unicast RA cfg
|
||||
*
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: value which needs to filled by API
|
||||
*
|
||||
* This API gives scan probe request with unicast RA user config
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value)
|
||||
{
|
||||
return wlan_mlme_get_scan_probe_unicast_ra(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_set_scan_probe_unicast_ra() - Set scan probe unicast RA cfg
|
||||
*
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: set value
|
||||
*
|
||||
* This API sets scan probe request with unicast RA user config
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_set_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool value)
|
||||
{
|
||||
return wlan_mlme_set_scan_probe_unicast_ra(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_peer_phymode() - get phymode of peer
|
||||
* @psoc: pointer to psoc object
|
||||
|
@@ -2609,6 +2609,39 @@ wlan_mlme_get_sta_miracast_mcc_rest_time(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
if (!mlme_obj)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
*value = mlme_obj->cfg.sta.usr_scan_probe_unicast_ra;
|
||||
|
||||
mlme_legacy_debug("scan_probe_unicast_ra %d", *value);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
|
||||
bool value)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
if (!mlme_obj)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
mlme_legacy_debug("scan_probe_unicast_ra %d", value);
|
||||
mlme_obj->cfg.sta.usr_scan_probe_unicast_ra = value;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_sap_mcc_chnl_avoid(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *value)
|
||||
|
@@ -6976,6 +6976,8 @@ wlan_hdd_wifi_test_config_policy[
|
||||
.type = NLA_FLAG},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_TX_SUPPDU] = {
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_USE_BSSID_IN_PROBE_REQ_RA] = {
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_HTC_HE_SUPP] = {
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OMI_TX] = {
|
||||
@@ -10238,6 +10240,20 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
|
||||
cfg_val);
|
||||
}
|
||||
|
||||
cmd_id =
|
||||
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_USE_BSSID_IN_PROBE_REQ_RA;
|
||||
if (tb[cmd_id]) {
|
||||
cfg_val = nla_get_u8(tb[cmd_id]);
|
||||
if (cfg_val)
|
||||
status = ucfg_mlme_set_scan_probe_unicast_ra(
|
||||
hdd_ctx->psoc, true);
|
||||
else
|
||||
status = ucfg_mlme_set_scan_probe_unicast_ra(
|
||||
hdd_ctx->psoc, false);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status))
|
||||
hdd_err("unable to set unicat probe ra cfg");
|
||||
}
|
||||
|
||||
cmd_id = QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OMI_TX;
|
||||
if (tb[cmd_id]) {
|
||||
struct nlattr *tb2[QCA_WLAN_VENDOR_ATTR_HE_OMI_MAX + 1];
|
||||
|
@@ -665,6 +665,12 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
|
||||
/* Use default scan priority */
|
||||
params.priority = SCAN_PRIORITY_COUNT;
|
||||
|
||||
status = ucfg_mlme_get_scan_probe_unicast_ra(
|
||||
hdd_ctx->psoc,
|
||||
¶ms.scan_probe_unicast_ra);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
hdd_err("Failed to get unicast probe req ra cfg");
|
||||
|
||||
status = wlan_cfg80211_scan(vdev, request, ¶ms);
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_SCAN_ID);
|
||||
error:
|
||||
|
Reference in New Issue
Block a user