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
此提交包含在:
@@ -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",
|
||||||
|
新增問題並參考
封鎖使用者