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));
|
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,
|
static void mlme_init_sta_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_mlme_sta_cfg *sta)
|
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->allow_tpc_from_ap = cfg_get(psoc, CFG_TX_POWER_CTRL);
|
||||||
sta->sta_keepalive_method =
|
sta->sta_keepalive_method =
|
||||||
cfg_get(psoc, CFG_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,
|
static void mlme_init_stats_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
|
@@ -512,6 +512,34 @@
|
|||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Max modulated dtim")
|
"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 \
|
#define CFG_STA_ALL \
|
||||||
CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \
|
CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \
|
||||||
CFG(CFG_STA_BSS_MAX_IDLE_PERIOD) \
|
CFG(CFG_STA_BSS_MAX_IDLE_PERIOD) \
|
||||||
@@ -531,6 +559,7 @@
|
|||||||
CFG(CFG_STA_KEEPALIVE_METHOD) \
|
CFG(CFG_STA_KEEPALIVE_METHOD) \
|
||||||
CFG(CFG_WT_CNF_TIMEOUT) \
|
CFG(CFG_WT_CNF_TIMEOUT) \
|
||||||
CFG(CFG_CURRENT_RSSI) \
|
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__ */
|
#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,
|
QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
|
||||||
tDot11fIEeht_cap *eht_cap);
|
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
|
* wlan_mlme_set_ba_2k_jump_iot_ap() - Set a flag if ba 2k jump IOT AP is found
|
||||||
* @vdev: vdev pointer
|
* @vdev: vdev pointer
|
||||||
|
@@ -1639,6 +1639,7 @@ enum station_prefer_bw {
|
|||||||
* @allow_tpc_from_ap: Support for AP power constraint
|
* @allow_tpc_from_ap: Support for AP power constraint
|
||||||
* @usr_disabled_roaming: User config for roaming disable
|
* @usr_disabled_roaming: User config for roaming disable
|
||||||
* @usr_scan_probe_unicast_ra: User config unicast probe req in scan
|
* @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 {
|
struct wlan_mlme_sta_cfg {
|
||||||
uint32_t sta_keep_alive_period;
|
uint32_t sta_keep_alive_period;
|
||||||
@@ -1665,6 +1666,9 @@ struct wlan_mlme_sta_cfg {
|
|||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
|
||||||
host_event_wlan_status_payload_type event_payload;
|
host_event_wlan_status_payload_type event_payload;
|
||||||
#endif
|
#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
|
#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,
|
QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc,
|
||||||
uint16_t *value)
|
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 */
|
/* find out number of links from bcn or prb rsp */
|
||||||
total_sta_prof = 1;
|
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;
|
partner_info = &pe_session->lim_join_req->partner_info;
|
||||||
|
|
||||||
mlo_dev_ctx = pe_session->vdev->mlo_dev_ctx;
|
mlo_dev_ctx = pe_session->vdev->mlo_dev_ctx;
|
||||||
|
Reference in New Issue
Block a user