qcacld-3.0: Add ini to enable/disable self roaming

Currently the driver allows roaming to the BSSID
which it is already connected, which can lead to
many unexpected behaviour, for eg. if the SAP
to which the DUT is connected turns off, then the
DUT would try to roam to other BSSID of the same
SSID, and in case the SAP turns on back in time,
then the DUT would re-associate to the same BSSID.
Now if the subnet may change, and since the DHCP
does not happen again in roaming, it would then
lead to NUD failure.

Fix is to introduce an ini to allow/disallow
roaming to the same BSSID.

Change-Id: Ibd04fcd7384c0987db5bb6dae1a26ee077456290
CRs-Fixed: 2634860
This commit is contained in:
gaurank kathpalia
2020-03-26 22:14:15 +05:30
committed by nshrivas
부모 4c18d1c3d9
커밋 954abc7aa9
6개의 변경된 파일31개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@@ -1470,6 +1470,7 @@ static void mlme_init_roam_offload_cfg(struct wlan_objmgr_psoc *psoc,
{
lfr->lfr3_roaming_offload =
cfg_get(psoc, CFG_LFR3_ROAMING_OFFLOAD);
lfr->enable_self_bss_roam = cfg_get(psoc, CFG_LFR3_ENABLE_SELF_BSS_ROAM);
lfr->enable_roam_reason_vsie =
cfg_get(psoc, CFG_ENABLE_ROAM_REASON_VSIE);
lfr->enable_disconnect_roam_offload =

파일 보기

@@ -2148,6 +2148,28 @@
1, \
"enable roam offload")
/*
* <ini>
* enable_self_bss_roam - enable/disable roaming to self bss
* @Min: 0
* @Max: 1
* @Default: 1
*
* This INI is used to enable/disable roaming to already connected BSSID
*
* Related: None
*
* Supported Feature: Roaming
*
* Usage: Internal
*
* </ini>
*/
#define CFG_LFR3_ENABLE_SELF_BSS_ROAM CFG_INI_BOOL( \
"enable_self_bss_roam", \
0, \
"enable self bss roam")
/*
* <ini>
* enable_disconnect_roam_offload - Enable/Disable emergency roaming during
@@ -2414,6 +2436,7 @@
#define ROAM_OFFLOAD_ALL \
CFG(CFG_LFR3_ROAMING_OFFLOAD) \
CFG(CFG_LFR3_ENABLE_SELF_BSS_ROAM) \
CFG(CFG_LFR_ENABLE_DISCONNECT_ROAM) \
CFG(CFG_LFR_ENABLE_IDLE_ROAM) \
CFG(CFG_LFR_IDLE_ROAM_RSSI_DELTA) \

파일 보기

@@ -1439,6 +1439,7 @@ struct bss_load_trigger {
* @mawc_roam_enabled: Enable/Disable MAWC during roaming
* @enable_fast_roam_in_concurrency:Enable LFR roaming on STA during concurrency
* @lfr3_roaming_offload: Enable/disable roam offload feature
* @enable_self_bss_roam: enable roaming to connected BSSID
* @enable_disconnect_roam_offload: enable disassoc/deauth roam scan.
* @enable_idle_roam: flag to enable/disable idle roam in fw
* @idle_roam_rssi_delta: rssi delta of connected ap which is used to
@@ -1548,6 +1549,7 @@ struct wlan_mlme_lfr_cfg {
bool enable_fast_roam_in_concurrency;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
bool lfr3_roaming_offload;
bool enable_self_bss_roam;
bool enable_disconnect_roam_offload;
bool enable_idle_roam;
uint32_t idle_roam_rssi_delta;