qcacld-3.0: Add cfg to configure mlo single link connection for sta
Add API to get mlo single link connection configuration for sta. Change-Id: Ie3b6c270c5c7358321a176c744083175a81d0180 CRs-Fixed: 3171955
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1cebf7f4ac
commit
ff3734010c
@@ -1558,6 +1558,20 @@ mlme_init_product_details_cfg(struct wlan_mlme_product_details_cfg
|
||||
sizeof(product_details->model_number));
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
static void mlme_init_sta_mlo_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_sta_cfg *sta)
|
||||
{
|
||||
sta->single_link_mlo_conn =
|
||||
cfg_default(CFG_SINGLE_LINK_MLO_CONN);
|
||||
}
|
||||
#else
|
||||
static void mlme_init_sta_mlo_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_sta_cfg *sta)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static void mlme_init_sta_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_sta_cfg *sta)
|
||||
{
|
||||
@@ -1597,6 +1611,7 @@ static void mlme_init_sta_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
sta->allow_tpc_from_ap = cfg_get(psoc, CFG_TX_POWER_CTRL);
|
||||
sta->sta_keepalive_method =
|
||||
cfg_get(psoc, CFG_STA_KEEPALIVE_METHOD);
|
||||
mlme_init_sta_mlo_cfg(psoc, sta);
|
||||
}
|
||||
|
||||
static void mlme_init_stats_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
|
@@ -512,6 +512,34 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Max modulated dtim")
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
/*
|
||||
* <cfg>
|
||||
* single_link_mlo_conn - Set single link mlo connection for sta
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This cfg is used to enable single link mlo connection
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </cfg>
|
||||
*/
|
||||
#define CFG_SINGLE_LINK_MLO_CONN CFG_BOOL( \
|
||||
"single_link_mlo_conn", \
|
||||
0, \
|
||||
"Enable single link mlo connection")
|
||||
|
||||
#define CFG_SINGLE_LINK_MLO_CONN_CFG CFG(CFG_SINGLE_LINK_MLO_CONN)
|
||||
#else
|
||||
#define CFG_SINGLE_LINK_MLO_CONN_CFG
|
||||
#endif
|
||||
|
||||
#define CFG_STA_ALL \
|
||||
CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \
|
||||
CFG(CFG_STA_BSS_MAX_IDLE_PERIOD) \
|
||||
@@ -531,6 +559,7 @@
|
||||
CFG(CFG_STA_KEEPALIVE_METHOD) \
|
||||
CFG(CFG_WT_CNF_TIMEOUT) \
|
||||
CFG(CFG_CURRENT_RSSI) \
|
||||
CFG(CFG_TX_POWER_CTRL)
|
||||
CFG(CFG_TX_POWER_CTRL) \
|
||||
CFG_SINGLE_LINK_MLO_CONN_CFG
|
||||
|
||||
#endif /* CFG_MLME_STA_H__ */
|
||||
|
@@ -3339,6 +3339,27 @@ wlan_mlme_is_data_stall_recovery_fw_supported(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
|
||||
tDot11fIEeht_cap *eht_cap);
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
/**
|
||||
* wlan_mlme_is_sta_single_mlo_conn() - Is single mlo connection for sta
|
||||
* set or not
|
||||
* @psoc: pointer to psoc object
|
||||
*
|
||||
* Return: True if single mlo connection for sta is set
|
||||
*/
|
||||
bool wlan_mlme_is_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_sta_single_mlo_conn() - Set single mlo connection for sta
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: value to set
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS wlan_mlme_set_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc,
|
||||
bool value);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_ba_2k_jump_iot_ap() - Set a flag if ba 2k jump IOT AP is found
|
||||
* @vdev: vdev pointer
|
||||
|
@@ -1639,6 +1639,7 @@ enum station_prefer_bw {
|
||||
* @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
|
||||
* @single_link_mlo_conn: Single link mlo connection is configured
|
||||
*/
|
||||
struct wlan_mlme_sta_cfg {
|
||||
uint32_t sta_keep_alive_period;
|
||||
@@ -1665,6 +1666,9 @@ struct wlan_mlme_sta_cfg {
|
||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
|
||||
host_event_wlan_status_payload_type event_payload;
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
bool single_link_mlo_conn;
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -1036,6 +1036,33 @@ QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
bool wlan_mlme_is_sta_single_mlo_conn(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 false;
|
||||
|
||||
return mlme_obj->cfg.sta.single_link_mlo_conn;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_mlme_set_sta_single_mlo_conn(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_obj->cfg.sta.single_link_mlo_conn = value;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc,
|
||||
uint16_t *value)
|
||||
{
|
||||
|
@@ -8660,6 +8660,11 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
|
||||
|
||||
/* find out number of links from bcn or prb rsp */
|
||||
total_sta_prof = 1;
|
||||
if (wlan_mlme_is_sta_single_mlo_conn(
|
||||
wlan_vdev_get_psoc(pe_session->vdev))) {
|
||||
pe_debug("Single link mlo connection is enabled for mlo sta");
|
||||
total_sta_prof = 0;
|
||||
}
|
||||
partner_info = &pe_session->lim_join_req->partner_info;
|
||||
|
||||
mlo_dev_ctx = pe_session->vdev->mlo_dev_ctx;
|
||||
|
Reference in New Issue
Block a user