qcacld-3.0: Support mld self roaming with high rssi trigger

Support mld self roam between DBS(2 GHz+5/6 GHz) and HBS(5 GHz+6 GHz).
Change high rssi config.

Change-Id: Icb65f26509848a09fe46bf01154a0f42efa073f2
CRs-Fixed: 3416549
This commit is contained in:
Jianmin Zhu
2023-02-24 15:38:08 +08:00
committed by Madan Koyyalamudi
parent 453ab92362
commit 4dc1a27cf5
4 changed files with 34 additions and 5 deletions

View File

@@ -1996,8 +1996,8 @@
* <ini>
* gRoamScanHiRssiDelta - Sets RSSI Delta for scan trigger
* @Min: 0
* @Max: 16
* @Default: 10
* @Max: 40
* @Default: 23
*
* This INI is used to set change in RSSI at which scan is triggered
* in 5GHz.
@@ -2013,8 +2013,8 @@
#define CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA CFG_INI_UINT( \
"gRoamScanHiRssiDelta", \
0, \
16, \
10, \
40, \
23, \
CFG_VALUE_OR_DEFAULT, \
"RSSI Delta for scan trigger")

View File

@@ -1885,4 +1885,11 @@ wlan_cm_set_assoc_btm_cap(struct wlan_objmgr_vdev *vdev, bool val);
bool
wlan_cm_get_assoc_btm_cap(struct wlan_objmgr_vdev *vdev);
/**
* wlan_cm_is_self_mld_roam_supported() - Is self mld roam supported
* @psoc: pointer to psoc object
*
* Return: bool, true: self mld roam supported
*/
bool wlan_cm_is_self_mld_roam_supported(struct wlan_objmgr_psoc *psoc);
#endif /* WLAN_CM_ROAM_API_H__ */

View File

@@ -4516,3 +4516,17 @@ wlan_cm_get_assoc_btm_cap(struct wlan_objmgr_vdev *vdev)
return mlme_priv->connect_info.assoc_btm_cap;
}
bool wlan_cm_is_self_mld_roam_supported(struct wlan_objmgr_psoc *psoc)
{
struct wmi_unified *wmi_handle;
wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
if (!wmi_handle) {
mlme_debug("Invalid WMI handle");
return false;
}
return wmi_service_enabled(wmi_handle,
wmi_service_self_mld_roam_between_dbs_and_hbs);
}

View File

@@ -3116,7 +3116,15 @@ lim_fill_pe_session(struct mac_context *mac_ctx, struct pe_session *session,
HI_RSSI_SCAN_RSSI_DELTA, &temp);
hi_rssi_scan_rssi_delta = temp.uint_value;
if (WLAN_REG_IS_24GHZ_CH_FREQ(bss_desc->chan_freq) &&
/*
* Firmware will take care of checking hi_scan rssi delta, take care of
* legacy -> legacy hi-rssi roam also if this feature flag is
* advertised.
*/
if (wlan_cm_is_self_mld_roam_supported(mac_ctx->psoc)) {
wlan_cm_set_disable_hi_rssi(mac_ctx->pdev, session->vdev_id,
false);
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(bss_desc->chan_freq) &&
(abs(bss_desc->rssi) >
(neighbor_lookup_threshold - hi_rssi_scan_rssi_delta))) {
pe_debug("Enabling HI_RSSI, rssi: %d lookup_th: %d, delta:%d",