qcacld-3.0: Introduce new ini for dual sta roaming

Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.

This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.

Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
This commit is contained in:
Pragaspathi Thilagaraj
2020-05-26 11:52:42 +05:30
committad av nshrivas
förälder 1f299f5e53
incheckning 3bbb4610b6
10 ändrade filer med 230 tillägg och 0 borttagningar

Visa fil

@@ -459,6 +459,11 @@ wlan_mlme_update_cfg_with_tgt_caps(struct wlan_objmgr_psoc *psoc,
mlme_obj->cfg.gen.bigtk_support = tgt_caps->bigtk_support;
mlme_obj->cfg.gen.stop_all_host_scan_support =
tgt_caps->stop_all_host_scan_support;
mlme_obj->cfg.gen.peer_create_conf_support =
tgt_caps->peer_create_conf_support;
mlme_obj->cfg.gen.dual_sta_roam_fw_support =
tgt_caps->dual_sta_roam_fw_support;
}
#ifdef WLAN_FEATURE_11AX
@@ -2071,6 +2076,26 @@ bool wlan_mlme_get_host_scan_abort_support(struct wlan_objmgr_psoc *psoc)
return mlme_obj->cfg.gen.stop_all_host_scan_support;
}
bool wlan_mlme_get_peer_create_conf_support(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return false;
return mlme_obj->cfg.gen.peer_create_conf_support;
}
bool wlan_mlme_get_dual_sta_roam_support(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return false;
return mlme_obj->cfg.gen.dual_sta_roam_fw_support;
}
QDF_STATUS wlan_mlme_get_oce_sta_enabled_info(struct wlan_objmgr_psoc *psoc,
bool *value)
{
@@ -3902,3 +3927,25 @@ wlan_mlme_get_dfs_chan_ageout_time(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
bool
wlan_mlme_get_dual_sta_roaming_enabled(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj;
bool dual_sta_roaming_enabled;
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return cfg_default(CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD);
dual_sta_roaming_enabled =
mlme_obj->cfg.lfr.lfr3_roaming_offload &&
mlme_obj->cfg.lfr.lfr3_dual_sta_roaming_enabled &&
wlan_mlme_get_dual_sta_roam_support(psoc) &&
policy_mgr_is_hw_dbs_capable(psoc);
return dual_sta_roaming_enabled;
}
#endif