qcacld-3.0: Reconnect to same BSS once again ifdd assoc timeout

Add INI - gActionOUIReconnAssocTimeout to configure driver
to do:
1. Driver will not send deauth to the AP after association timeout.
2. Reconnect to same BSS again if the last association failure
is association response timeout.
Default="00E04C 00 01"

The change fixes IOT issue with certain AP which doesn't
response first association request frame sometime. But the AP
would response second association request.

Change-Id: I9f7b8d14aaaaa97f08856c8b62e49b145db3ac91
CRs-Fixed: 2653877
This commit is contained in:
Liangwei Dong
2020-04-13 10:43:58 +08:00
committed by nshrivas
parent 83b3d290ea
commit eb4d039e1f
8 changed files with 169 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2020 The Linux Foundation. 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
@@ -90,6 +90,10 @@
* @ACTION_OUI_DISABLE_AGGRESSIVE_TX: disable aggressive TX in firmware
* @ACTION_OUI_FORCE_MAX_NSS: Force Max NSS connection with few IOT APs
* @ACTION_OUI_DISABLE_AGGRESSIVE_EDCA: disable aggressive EDCA with the ap
* @ACTION_OUI_HOST_ONLY: host only action id start - placeholder.
* New Firmware related "ACTION" needs to be added before this placeholder.
* @ACTION_OUI_HOST_RECONN: reconnect to the same BSSID when wait for
* association response timeout from AP
* @ACTION_OUI_MAXIMUM_ID: maximum number of action oui types
*/
enum action_oui_id {
@@ -102,6 +106,8 @@ enum action_oui_id {
ACTION_OUI_DISABLE_AGGRESSIVE_TX = 6,
ACTION_OUI_FORCE_MAX_NSS = 7,
ACTION_OUI_DISABLE_AGGRESSIVE_EDCA = 8,
ACTION_OUI_HOST_ONLY,
ACTION_OUI_HOST_RECONN = ACTION_OUI_HOST_ONLY,
ACTION_OUI_MAXIMUM_ID
};

View File

@@ -153,6 +153,8 @@ QDF_STATUS ucfg_action_oui_send(struct wlan_objmgr_psoc *psoc)
}
for (id = 0; id < ACTION_OUI_MAXIMUM_ID; id++) {
if (id >= ACTION_OUI_HOST_ONLY)
continue;
status = action_oui_send(psoc_priv, id);
if (!QDF_IS_STATUS_SUCCESS(status))
action_oui_err("Failed to send: %u", id);