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
此提交包含在:
Jianmin Zhu
2023-02-24 15:38:08 +08:00
提交者 Madan Koyyalamudi
父節點 453ab92362
當前提交 4dc1a27cf5
共有 4 個檔案被更改,包括 34 行新增5 行删除

查看文件

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

查看文件

@@ -1885,4 +1885,11 @@ wlan_cm_set_assoc_btm_cap(struct wlan_objmgr_vdev *vdev, bool val);
bool bool
wlan_cm_get_assoc_btm_cap(struct wlan_objmgr_vdev *vdev); 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__ */ #endif /* WLAN_CM_ROAM_API_H__ */

查看文件

@@ -4516,3 +4516,17 @@ wlan_cm_get_assoc_btm_cap(struct wlan_objmgr_vdev *vdev)
return mlme_priv->connect_info.assoc_btm_cap; 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);
}

查看文件

@@ -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);
hi_rssi_scan_rssi_delta = temp.uint_value; 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) > (abs(bss_desc->rssi) >
(neighbor_lookup_threshold - hi_rssi_scan_rssi_delta))) { (neighbor_lookup_threshold - hi_rssi_scan_rssi_delta))) {
pe_debug("Enabling HI_RSSI, rssi: %d lookup_th: %d, delta:%d", pe_debug("Enabling HI_RSSI, rssi: %d lookup_th: %d, delta:%d",