From e7c97184467f2817bf357d7e0e7302f4283c9345 Mon Sep 17 00:00:00 2001 From: Jianmin Zhu Date: Thu, 3 Sep 2020 00:20:12 +0800 Subject: [PATCH] qcacld-3.0: Add 3 ini for data rssi check when roaming 3 ini: roam_data_rssi_threshold_triggers roam_data_rssi_threshold rx_data_inactivity_time If there's rx activity during latest rx_data_inactivity_time and avg of data_rssi is better than roam_data_rssi_threshold, then suppress roaming triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan. Change-Id: I5b41c4119e61392b50e52ab8ccb8650e5758f3b3 CRs-Fixed: 2768053 --- components/mlme/core/src/wlan_mlme_main.c | 6 ++ components/mlme/dispatcher/inc/cfg_mlme_lfr.h | 90 +++++++++++++++++++ .../dispatcher/inc/wlan_mlme_public_struct.h | 7 ++ .../src/target_if_cm_roam_offload.c | 5 ++ .../inc/wlan_cm_roam_public_struct.h | 7 ++ components/wmi/inc/wmi_unified_roam_param.h | 7 ++ components/wmi/src/wmi_unified_roam_tlv.c | 40 +++++++++ core/mac/inc/sir_api.h | 6 ++ core/sme/inc/csr_api.h | 3 + core/sme/src/csr/csr_api_roam.c | 19 +++- core/wma/src/wma_scan_roam.c | 20 +++-- 11 files changed, 204 insertions(+), 6 deletions(-) diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index e4b7be0b9dfe0..f6d1390b81666 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -1639,6 +1639,12 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP); lfr->roam_bg_scan_bad_rssi_offset_2g = cfg_get(psoc, CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G); + lfr->roam_data_rssi_threshold_triggers = + cfg_get(psoc, CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS); + lfr->roam_data_rssi_threshold = + cfg_get(psoc, CFG_ROAM_DATA_RSSI_THRESHOLD); + lfr->rx_data_inactivity_time = + cfg_get(psoc, CFG_RX_DATA_INACTIVITY_TIME); lfr->adaptive_roamscan_dwell_mode = cfg_get(psoc, CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE); lfr->per_roam_enable = diff --git a/components/mlme/dispatcher/inc/cfg_mlme_lfr.h b/components/mlme/dispatcher/inc/cfg_mlme_lfr.h index f661c88cbc2e5..b7e868130e45e 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_lfr.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_lfr.h @@ -500,6 +500,93 @@ CFG_VALUE_OR_DEFAULT, \ "RSSI threshold offset for 2G to 5G roam") +/* + * + * roam_data_rssi_threshold_triggers - triggers of data rssi threshold for roam + * @Min: 0 + * @Max: 0xffff + * @Default: 0 + * + * If the DUT is connected to an AP with weak signal, during latest + * rx_data_inactivity_time, if there is no activity or avg of data_rssi is + * better than roam_data_rssi_threshold(-70dbM), then suppress roaming + * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan. + * Triggers bitmap definition: + * ROAM_DATA_RSSI_FLAG_LOW_RSSI 1<<0 + * ROAM_DATA_RSSI_FLAG_BACKGROUND 1<<1 + * + * Related: None + * + * Supported Feature: Roaming + * + * Usage: External + * + * + */ +#define CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS CFG_INI_UINT( \ + "roam_data_rssi_threshold_triggers", \ + 0, \ + 0xffff, \ + 0x3, \ + CFG_VALUE_OR_DEFAULT, \ + "Triggers of DATA RSSI threshold for roam") + +/* + * + * roam_data_rssi_threshold - Data RSSI threshold for background roam + * @Min: -96 + * @Max: 0 + * @Default: -70 + * + * If the DUT is connected to an AP with weak signal, during latest + * rx_data_inactivity_time, if there is no activity or avg of data_rssi is + * better than roam_data_rssi_threshold(-70dbM), then suppress roaming + * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan. + * + * Related: None + * + * Supported Feature: Roaming + * + * Usage: External + * + * + */ +#define CFG_ROAM_DATA_RSSI_THRESHOLD CFG_INI_INT( \ + "roam_data_rssi_threshold", \ + -96, \ + 0, \ + -70, \ + CFG_VALUE_OR_DEFAULT, \ + "DATA RSSI threshold for roam") + +/* + * + * rx_data_inactivity_time - Duration to check data rssi + * @Min: 0 + * @Max: 100000 ms + * @Default: 2000 + * + * If the DUT is connected to an AP with weak signal, during latest + * rx_data_inactivity_time, if there is no activity or avg of data_rssi is + * better than roam_data_rssi_threshold(-70dbM), then suppress roaming + * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan. + * + * Related: None + * + * Supported Feature: Roaming + * + * Usage: External + * + * + */ +#define CFG_RX_DATA_INACTIVITY_TIME CFG_INI_UINT( \ + "rx_data_inactivity_time", \ + 0, \ + 100000, \ + 2000, \ + CFG_VALUE_OR_DEFAULT, \ + "Rx inactivity time to check data rssi") + /* * * roamscan_adaptive_dwell_mode - Sets dwell time adaptive mode @@ -2778,6 +2865,9 @@ CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD) \ CFG(CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP) \ CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G) \ + CFG(CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS) \ + CFG(CFG_ROAM_DATA_RSSI_THRESHOLD) \ + CFG(CFG_RX_DATA_INACTIVITY_TIME) \ CFG(CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE) \ CFG(CFG_LFR_PER_ROAM_ENABLE) \ CFG(CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH) \ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 51903f51d31d4..59cd3f8fbd5eb 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1585,6 +1585,10 @@ struct fw_scan_channels { * @roam_bg_scan_bad_rssi_threshold:RSSI threshold for background roam * @roam_bg_scan_client_bitmap: Bitmap used to identify the scan clients * @roam_bg_scan_bad_rssi_offset_2g:RSSI threshold offset for 2G to 5G roam + * @roam_data_rssi_threshold_triggers: triggers of bad data RSSI threshold to + * roam + * @roam_data_rssi_threshold: Bad data RSSI threshold to roam + * @rx_data_inactivity_time: Rx duration to check data RSSI * @adaptive_roamscan_dwell_mode: Sets dwell time adaptive mode * @per_roam_enable: To enabled/disable PER based roaming in FW * @per_roam_config_high_rate_th: Rate at which PER based roam will stop @@ -1696,6 +1700,9 @@ struct wlan_mlme_lfr_cfg { uint32_t roam_bg_scan_bad_rssi_threshold; uint32_t roam_bg_scan_client_bitmap; uint32_t roam_bg_scan_bad_rssi_offset_2g; + uint32_t roam_data_rssi_threshold_triggers; + int32_t roam_data_rssi_threshold; + uint32_t rx_data_inactivity_time; uint32_t adaptive_roamscan_dwell_mode; uint32_t per_roam_enable; uint32_t per_roam_config_high_rate_th; diff --git a/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c b/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c index b9d3b56f69923..fa2bf43202642 100644 --- a/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c +++ b/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c @@ -388,6 +388,7 @@ target_if_cm_roam_scan_offload_rssi_thresh( req->rssi_thresh &= 0x000000ff; req->hi_rssi_scan_rssi_ub -= NOISE_FLOOR_DBM_DEFAULT; req->bg_scan_bad_rssi_thresh -= NOISE_FLOOR_DBM_DEFAULT; + req->roam_data_rssi_threshold -= NOISE_FLOOR_DBM_DEFAULT; req->good_rssi_threshold -= NOISE_FLOOR_DBM_DEFAULT; req->good_rssi_threshold &= 0x000000ff; } @@ -466,6 +467,10 @@ target_if_cm_roam_scan_offload_rssi_thresh( req->bg_scan_bad_rssi_thresh, req->bg_scan_client_bitmap, req->roam_bad_rssi_thresh_offset_2g); + target_if_debug("Roam data rssi triggers:0x%x, threshold:%d, rx time:%d", + req->roam_data_rssi_threshold_triggers, + req->roam_data_rssi_threshold, + req->rx_data_inactivity_time); status = wmi_unified_roam_scan_offload_rssi_thresh_cmd(wmi_handle, req); if (QDF_IS_STATUS_ERROR(status)) { diff --git a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h index a66d1f97aa77b..cc15f03ce617b 100644 --- a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h +++ b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h @@ -927,6 +927,10 @@ struct wlan_roam_scan_offload_params { * @roam_bad_rssi_thresh_offset_2g: Offset from Bad RSSI threshold for 2G * to 5G Roam * @bg_scan_client_bitmap: Bitmap used to identify the client scans to snoop + * @roam_data_rssi_threshold_triggers: triggers of bad data RSSI threshold to + * roam + * @roam_data_rssi_threshold: Bad data RSSI threshold to roam + * @rx_data_inactivity_time: Rx duration to check data RSSI */ struct wlan_roam_offload_scan_rssi_params { int8_t rssi_thresh; @@ -955,6 +959,9 @@ struct wlan_roam_offload_scan_rssi_params { int8_t bg_scan_bad_rssi_thresh; uint8_t roam_bad_rssi_thresh_offset_2g; uint32_t bg_scan_client_bitmap; + uint32_t roam_data_rssi_threshold_triggers; + int32_t roam_data_rssi_threshold; + uint32_t rx_data_inactivity_time; }; /** diff --git a/components/wmi/inc/wmi_unified_roam_param.h b/components/wmi/inc/wmi_unified_roam_param.h index 4eac21fae8d8f..aea978c3864f3 100644 --- a/components/wmi/inc/wmi_unified_roam_param.h +++ b/components/wmi/inc/wmi_unified_roam_param.h @@ -95,6 +95,10 @@ struct rssi_monitor_param { * @roam_bad_rssi_thresh_offset_2g: Offset from Bad RSSI threshold for 2G * to 5G Roam * @bg_scan_client_bitmap: Bitmap used to identify the client scans to snoop + * @roam_data_rssi_threshold_triggers: triggers of bad data RSSI threshold to + * roam + * @roam_data_rssi_threshold: Bad data RSSI threshold to roam + * @rx_data_inactivity_time: Rx duration to check data RSSI * @flags: Flags for Background Roaming * Bit 0 : BG roaming enabled when we connect to 2G AP only and roaming * to 5G AP only. @@ -125,6 +129,9 @@ struct roam_offload_scan_rssi_params { int8_t bg_scan_bad_rssi_thresh; uint8_t roam_bad_rssi_thresh_offset_2g; uint32_t bg_scan_client_bitmap; + uint32_t roam_data_rssi_threshold_triggers; + int32_t roam_data_rssi_threshold; + uint32_t rx_data_inactivity_time; uint32_t flags; }; diff --git a/components/wmi/src/wmi_unified_roam_tlv.c b/components/wmi/src/wmi_unified_roam_tlv.c index e9b7ac7cb955b..1a8c6e137cb04 100644 --- a/components/wmi/src/wmi_unified_roam_tlv.c +++ b/components/wmi/src/wmi_unified_roam_tlv.c @@ -179,6 +179,7 @@ static QDF_STATUS send_roam_scan_offload_rssi_thresh_cmd_tlv( wmi_roam_earlystop_rssi_thres_param *early_stop_thresholds = NULL; wmi_roam_dense_thres_param *dense_thresholds = NULL; wmi_roam_bg_scan_roaming_param *bg_scan_params = NULL; + wmi_roam_data_rssi_roaming_param *data_rssi_param = NULL; len = sizeof(wmi_roam_scan_rssi_threshold_fixed_param); len += WMI_TLV_HDR_SIZE; /* TLV for ext_thresholds*/ @@ -189,6 +190,8 @@ static QDF_STATUS send_roam_scan_offload_rssi_thresh_cmd_tlv( len += sizeof(wmi_roam_dense_thres_param); len += WMI_TLV_HDR_SIZE; /* TLV for BG Scan*/ len += sizeof(wmi_roam_bg_scan_roaming_param); + len += WMI_TLV_HDR_SIZE; /* TLV for data RSSI*/ + len += sizeof(wmi_roam_data_rssi_roaming_param); buf = wmi_buf_alloc(wmi_handle, len); if (!buf) return QDF_STATUS_E_NOMEM; @@ -289,6 +292,26 @@ static QDF_STATUS send_roam_scan_offload_rssi_thresh_cmd_tlv( WMITLV_GET_STRUCT_TLVLEN (wmi_roam_bg_scan_roaming_param)); + buf_ptr += sizeof(wmi_roam_bg_scan_roaming_param); + WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC, + sizeof(wmi_roam_data_rssi_roaming_param)); + buf_ptr += WMI_TLV_HDR_SIZE; + data_rssi_param = (wmi_roam_data_rssi_roaming_param *)buf_ptr; + data_rssi_param->flags = + roam_req->roam_data_rssi_threshold_triggers; + data_rssi_param->roam_data_rssi_thres = + roam_req->roam_data_rssi_threshold; + data_rssi_param->rx_inactivity_ms = + roam_req->rx_data_inactivity_time; + WMITLV_SET_HDR(&data_rssi_param->tlv_header, + WMITLV_TAG_STRUC_wmi_roam_data_rssi_roaming_param, + WMITLV_GET_STRUCT_TLVLEN + (wmi_roam_data_rssi_roaming_param)); + WMI_LOGD("Data rssi threshold: %d, triggers: 0x%x, rx time: %d", + data_rssi_param->roam_data_rssi_thres, + data_rssi_param->flags, + data_rssi_param->rx_inactivity_ms); + wmi_mtrace(WMI_ROAM_SCAN_RSSI_THRESHOLD, NO_SESSION, 0); status = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_ROAM_SCAN_RSSI_THRESHOLD); @@ -383,6 +406,7 @@ static QDF_STATUS send_roam_scan_offload_rssi_thresh_cmd_tlv( wmi_roam_earlystop_rssi_thres_param *early_stop_thresholds = NULL; wmi_roam_dense_thres_param *dense_thresholds = NULL; wmi_roam_bg_scan_roaming_param *bg_scan_params = NULL; + wmi_roam_data_rssi_roaming_param *data_rssi_param = NULL; len = sizeof(wmi_roam_scan_rssi_threshold_fixed_param); len += WMI_TLV_HDR_SIZE; /* TLV for ext_thresholds*/ @@ -489,6 +513,22 @@ static QDF_STATUS send_roam_scan_offload_rssi_thresh_cmd_tlv( WMITLV_GET_STRUCT_TLVLEN (wmi_roam_bg_scan_roaming_param)); + buf_ptr += sizeof(wmi_roam_bg_scan_roaming_param); + WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC, + sizeof(wmi_roam_data_rssi_roaming_param)); + buf_ptr += WMI_TLV_HDR_SIZE; + data_rssi_param = (wmi_roam_data_rssi_roaming_param *)buf_ptr; + data_rssi_param->flags = + roam_req->roam_data_rssi_threshold_triggers; + data_rssi_param->roam_data_rssi_thres = + roam_req->roam_data_rssi_threshold; + data_rssi_param->rx_inactivity_ms = + roam_req->rx_data_inactivity_time; + WMITLV_SET_HDR(&data_rssi_param->tlv_header, + WMITLV_TAG_STRUC_wmi_roam_data_rssi_roaming_param, + WMITLV_GET_STRUCT_TLVLEN + (wmi_roam_data_rssi_roaming_param)); + wmi_mtrace(WMI_ROAM_SCAN_RSSI_THRESHOLD, NO_SESSION, 0); status = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_ROAM_SCAN_RSSI_THRESHOLD); diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index ba1da59472ba4..11e1474e3fba0 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -2148,6 +2148,9 @@ typedef enum { * @bg_scan_bad_rssi_thresh: Bad RSSI threshold to perform bg scan. * @bad_rssi_thresh_offset_2g: Offset from Bad RSSI threshold for 2G to 5G Roam * @bg_scan_client_bitmap: Bitmap to identify the client scans to snoop. + * @roam_data_rssi_threshold_triggers: Bad data RSSI threshold to roam + * @roam_data_rssi_threshold: Bad data RSSI threshold to roam + * @rx_data_inactivity_time: rx duration to check data RSSI * * This structure holds all the key parameters related to * initial connection and also roaming connections. @@ -2181,6 +2184,9 @@ struct roam_ext_params { int8_t bg_scan_bad_rssi_thresh; uint8_t roam_bad_rssi_thresh_offset_2g; uint32_t bg_scan_client_bitmap; + uint32_t roam_data_rssi_threshold_triggers; + int32_t roam_data_rssi_threshold; + uint32_t rx_data_inactivity_time; }; /** diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 42c8a2fcc06bd..77c5c126ba53e 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -901,6 +901,9 @@ struct csr_config_params { uint32_t roam_dense_min_aps; int8_t roam_bg_scan_bad_rssi_thresh; uint8_t roam_bad_rssi_thresh_offset_2g; + uint32_t roam_data_rssi_threshold_triggers; + int32_t roam_data_rssi_threshold; + uint32_t rx_data_inactivity_time; struct csr_sta_roam_policy_params sta_roam_policy_params; enum force_1x1_type is_force_1x1; uint32_t offload_11k_enable_bitmask; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index dec33bed464f9..6574f17cb7ae9 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -2775,6 +2775,12 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac, cfg_params->roam_params.bg_scan_bad_rssi_thresh; pParam->roam_bad_rssi_thresh_offset_2g = cfg_params->roam_params.roam_bad_rssi_thresh_offset_2g; + pParam->roam_data_rssi_threshold_triggers = + cfg_params->roam_params.roam_data_rssi_threshold_triggers; + pParam->roam_data_rssi_threshold = + cfg_params->roam_params.roam_data_rssi_threshold; + pParam->rx_data_inactivity_time = + cfg_params->roam_params.rx_data_inactivity_time; pParam->conc_custom_rule1 = cfg_params->conc_custom_rule1; pParam->conc_custom_rule2 = cfg_params->conc_custom_rule2; @@ -19429,6 +19435,12 @@ csr_roam_offload_scan(struct mac_context *mac_ctx, uint8_t session_id, mac_ctx->mlme_cfg->lfr.roam_bg_scan_client_bitmap; roam_params_dst->roam_bad_rssi_thresh_offset_2g = mac_ctx->mlme_cfg->lfr.roam_bg_scan_bad_rssi_offset_2g; + roam_params_dst->roam_data_rssi_threshold_triggers = + mac_ctx->mlme_cfg->lfr.roam_data_rssi_threshold_triggers; + roam_params_dst->roam_data_rssi_threshold = + mac_ctx->mlme_cfg->lfr.roam_data_rssi_threshold; + roam_params_dst->rx_data_inactivity_time = + mac_ctx->mlme_cfg->lfr.rx_data_inactivity_time; roam_params_dst->raise_rssi_thresh_5g = mac_ctx->mlme_cfg->lfr.rssi_boost_threshold_5g; roam_params_dst->drop_rssi_thresh_5g = @@ -19748,11 +19760,16 @@ csr_cm_roam_scan_offload_rssi_thresh(struct mac_context *mac_ctx, params->bg_scan_bad_rssi_thresh = mac_ctx->mlme_cfg->lfr.roam_bg_scan_bad_rssi_threshold; - params->bg_scan_client_bitmap = mac_ctx->mlme_cfg->lfr.roam_bg_scan_client_bitmap; params->roam_bad_rssi_thresh_offset_2g = mac_ctx->mlme_cfg->lfr.roam_bg_scan_bad_rssi_offset_2g; + params->roam_data_rssi_threshold_triggers = + mac_ctx->mlme_cfg->lfr.roam_data_rssi_threshold_triggers; + params->roam_data_rssi_threshold = + mac_ctx->mlme_cfg->lfr.roam_data_rssi_threshold; + params->rx_data_inactivity_time = + mac_ctx->mlme_cfg->lfr.rx_data_inactivity_time; params->drop_rssi_thresh_5g = mac_ctx->mlme_cfg->lfr.rssi_penalize_threshold_5g; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index dbf626f1d0210..92b849b24edfe 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -586,13 +586,19 @@ wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle, params.traffic_threshold = roam_params->traffic_threshold; params.initial_dense_status = roam_params->initial_dense_status; - if (db2dbm_enabled) + if (db2dbm_enabled) { params.bg_scan_bad_rssi_thresh = roam_params->bg_scan_bad_rssi_thresh; - else - params.bg_scan_bad_rssi_thresh = - roam_params->bg_scan_bad_rssi_thresh - - WMA_NOISE_FLOOR_DBM_DEFAULT; + params.roam_data_rssi_threshold = + roam_params->roam_data_rssi_threshold; + } else { + params.roam_data_rssi_threshold = + roam_params->roam_data_rssi_threshold - + WMA_NOISE_FLOOR_DBM_DEFAULT; + params.roam_data_rssi_threshold = + roam_params->roam_data_rssi_threshold - + WMA_NOISE_FLOOR_DBM_DEFAULT; + } params.bg_scan_client_bitmap = roam_params->bg_scan_client_bitmap; params.roam_bad_rssi_thresh_offset_2g = @@ -706,6 +712,10 @@ wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle, roam_params->bg_scan_bad_rssi_thresh, roam_params->bg_scan_client_bitmap, roam_params->roam_bad_rssi_thresh_offset_2g); + wma_debug("Roam data rssi triggers:0x%x, threshold:%d, rx time:%d", + roam_params->roam_data_rssi_threshold_triggers, + roam_params->roam_data_rssi_threshold, + roam_params->rx_data_inactivity_time); return status; }