diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 29053e3b15..08b7ecd81a 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -30,6 +30,7 @@ #include "wlan_mlme_api.h" #include #include +#include "wlan_mlme_ucfg_api.h" #define NUM_OF_SOUNDING_DIMENSIONS 1 /*Nss - 1, (Nss = 2 for 2x2)*/ @@ -1681,6 +1682,8 @@ mlme_init_sae_single_pmk_cfg(struct wlan_objmgr_psoc *psoc, static void mlme_init_roam_offload_cfg(struct wlan_objmgr_psoc *psoc, struct wlan_mlme_lfr_cfg *lfr) { + bool val = false; + lfr->lfr3_roaming_offload = cfg_get(psoc, CFG_LFR3_ROAMING_OFFLOAD); lfr->lfr3_dual_sta_roaming_enabled = @@ -1694,8 +1697,16 @@ static void mlme_init_roam_offload_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_LFR_ENABLE_IDLE_ROAM); lfr->idle_roam_rssi_delta = cfg_get(psoc, CFG_LFR_IDLE_ROAM_RSSI_DELTA); - lfr->idle_roam_inactive_time = - cfg_get(psoc, CFG_LFR_IDLE_ROAM_INACTIVE_TIME); + + ucfg_mlme_get_connection_roaming_ini_present(psoc, &val); + if (val) { + lfr->idle_roam_inactive_time = + cfg_get(psoc, CFG_ROAM_IDLE_INACTIVE_TIME) * 1000; + } else { + lfr->idle_roam_inactive_time = + cfg_get(psoc, CFG_LFR_IDLE_ROAM_INACTIVE_TIME); + } + lfr->idle_data_packet_count = cfg_get(psoc, CFG_LFR_IDLE_ROAM_PACKET_COUNT); lfr->idle_roam_min_rssi = cfg_get(psoc, CFG_LFR_IDLE_ROAM_MIN_RSSI); diff --git a/components/mlme/dispatcher/inc/cfg_mlme_lfr.h b/components/mlme/dispatcher/inc/cfg_mlme_lfr.h index 675dd26c93..d71b6b4d78 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_lfr.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_lfr.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -2351,6 +2352,34 @@ CFG_VALUE_OR_DEFAULT, \ "Configure RSSI delta to start idle roam") +/* + * + * RoamIdle_InactiveTime - Time duration in seconds for which the + * connection is idle. + * @Min: 0 + * @Max: 20 + * @Default: 10 + * + * This ini is used to configure the time in seconds for which the connection + * candidate is idle and after which idle roam scan can be triggered if + * other criteria of ini "enable_idle_roam" is met. + * + * Related: enable_idle_roam + * + * Supported Feature: Roaming + * + * Usage: Internal/External + * + * + */ +#define CFG_ROAM_IDLE_INACTIVE_TIME CFG_INI_UINT( \ + "RoamIdle_InactiveTime", \ + 0, \ + 20, \ + 10, \ + CFG_VALUE_OR_DEFAULT, \ + "Configure RSSI delta to start idle roam") + /* * * idle_data_packet_count/RoamIdle_InactivePacketCount - No of tx/rx packets @@ -2550,6 +2579,7 @@ CFG(CFG_LFR_ENABLE_IDLE_ROAM) \ CFG(CFG_LFR_IDLE_ROAM_RSSI_DELTA) \ CFG(CFG_LFR_IDLE_ROAM_INACTIVE_TIME) \ + CFG(CFG_ROAM_IDLE_INACTIVE_TIME) \ CFG(CFG_LFR_IDLE_ROAM_PACKET_COUNT) \ CFG(CFG_LFR_IDLE_ROAM_MIN_RSSI) \ CFG(CFG_LFR_IDLE_ROAM_BAND) \