qcacld-3.0: Add support to configure MLD ID in scan request
In the MLO-MBSSID test, STA can request information of non-Tx BSS through Tx BSS by configuring non-Tx BSS MLD ID within the ML probe request that is invoked as part of scan request. Add support to configure MLD ID in scan start params to FW. Change-Id: Iec5a144e597a7f6b9b741f279e4424f975c5115c CRs-Fixed: 3561040
This commit is contained in:

committed by
Rahul Choudhary

parent
e9e8c4d57c
commit
73be1b7d8d
@@ -2821,6 +2821,26 @@ QDF_STATUS
|
||||
wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_eht_mld_id() - Get the MLD ID of the requested BSS
|
||||
* @psoc: psoc context
|
||||
*
|
||||
* Return: MLD ID of the requested BSS
|
||||
*/
|
||||
uint8_t
|
||||
wlan_mlme_get_eht_mld_id(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_eht_mld_id() - Set MLD ID of the requested BSS information
|
||||
* within the ML probe request.
|
||||
* @psoc: psoc context
|
||||
* @value: MLD ID
|
||||
*
|
||||
* Return: qdf status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_eht_mld_id(struct wlan_objmgr_psoc *psoc, uint8_t value);
|
||||
|
||||
/*
|
||||
* wlan_mlme_get_mlo_prefer_percentage() - get MLO preference percentage
|
||||
* @psoc: pointer to psoc object
|
||||
@@ -2888,6 +2908,18 @@ wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline uint8_t
|
||||
wlan_mlme_get_eht_mld_id(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
wlan_mlme_set_eht_mld_id(struct wlan_objmgr_psoc *psoc, uint8_t value)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline void
|
||||
wlan_mlme_get_mlo_prefer_percentage(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
|
@@ -1458,6 +1458,7 @@ struct wlan_mlme_aux_dev_caps {
|
||||
* @eht_mode: EHT mode of operation
|
||||
* @t2lm_negotiation_support: T2LM negotiation supported enum value
|
||||
* @enable_emlsr_mode: 11BE eMLSR mode support
|
||||
* @mld_id: MLD ID of requested BSS within ML probe request frame
|
||||
* @safe_mode_enable: safe mode to bypass some strict 6 GHz checks for
|
||||
* connection, bypass strict power levels
|
||||
* @sr_enable_modes: modes for which SR(Spatial Reuse) is enabled
|
||||
@@ -1518,6 +1519,7 @@ struct wlan_mlme_generic {
|
||||
enum wlan_eht_mode eht_mode;
|
||||
bool enable_emlsr_mode;
|
||||
enum t2lm_negotiation_support t2lm_negotiation_support;
|
||||
uint8_t mld_id;
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_MCC_QUOTA
|
||||
struct wlan_user_mcc_quota user_mcc_quota;
|
||||
|
@@ -3905,6 +3905,33 @@ wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
wlan_mlme_get_eht_mld_id(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
if (!mlme_obj)
|
||||
return 0;
|
||||
|
||||
return mlme_obj->cfg.gen.mld_id;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_eht_mld_id(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t 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_obj->cfg.gen.mld_id = value;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS
|
||||
|
@@ -8617,6 +8617,8 @@ wlan_hdd_wifi_test_config_policy[
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_EHT_MLO_STR_TX] = {
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_MLD_ID_ML_PROBE_REQ] = {
|
||||
.type = NLA_U8},
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -14249,7 +14251,7 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
|
||||
mac_handle,
|
||||
vdev_id, cfg_val);
|
||||
if (ret_val)
|
||||
sme_err("Failed to send vdev pause");
|
||||
hdd_err("Failed to send vdev pause");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14266,7 +14268,16 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
|
||||
0x48, 2, arg);
|
||||
|
||||
if (ret_val)
|
||||
sme_err("Failed to send STR TX indication");
|
||||
hdd_err("Failed to send STR TX indication");
|
||||
}
|
||||
|
||||
cmd_id = QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_MLD_ID_ML_PROBE_REQ;
|
||||
if (tb[cmd_id]) {
|
||||
cfg_val = nla_get_u8(tb[cmd_id]);
|
||||
hdd_debug("MLD ID in ML probe request: %d", cfg_val);
|
||||
ret_val = wlan_mlme_set_eht_mld_id(hdd_ctx->psoc, cfg_val);
|
||||
if (ret_val)
|
||||
hdd_err("Failed to set MLD ID");
|
||||
}
|
||||
|
||||
if (update_sme_cfg)
|
||||
|
@@ -15331,6 +15331,7 @@ void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
sme_set_per_link_ba_mode(mac_handle, ba_mode_auto);
|
||||
sme_set_mcs_15_tx_rx_disable(vdev_id);
|
||||
wlan_mlme_set_btm_abridge_flag(mac_ctx->psoc, false);
|
||||
wlan_mlme_set_eht_mld_id(mac_ctx->psoc, 0);
|
||||
}
|
||||
|
||||
void sme_update_eht_cap_nss(mac_handle_t mac_handle, uint8_t vdev_id,
|
||||
|
Reference in New Issue
Block a user