From b08e7219168523cfea2cfb7748761bb070366849 Mon Sep 17 00:00:00 2001 From: Agrawal Ashish Date: Tue, 4 Jul 2017 18:47:02 +0530 Subject: [PATCH] qcacld-3.0: Trigger pktlog as part of unusual disconnect Trigger packet logs if deauth/Disconnect comes with reason code other than eSIR_MAC_UNSPEC_FAILURE_REASON, eSIR_MAC_DEAUTH_LEAVING_BSS_REASON, eSIR_MAC_DISASSOC_LEAVING_BSS_REASON Change-Id: I906abf4e4b7c7b9fb109fa1ead1afed15a9f5e81 CRs-Fixed: 2071173 --- core/mac/inc/ani_global.h | 4 +++- core/mac/src/pe/lim/lim_process_deauth_frame.c | 11 +++++++++++ core/mac/src/pe/lim/lim_process_disassoc_frame.c | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/core/mac/inc/ani_global.h b/core/mac/inc/ani_global.h index 6d6da1324d..2c81e226e7 100644 --- a/core/mac/inc/ani_global.h +++ b/core/mac/inc/ani_global.h @@ -173,6 +173,7 @@ enum log_event_indicator { * @WLAN_LOG_REASON_SCAN_NOT_ALLOWED: scan not allowed due to connection states * @WLAN_LOG_REASON_HB_FAILURE: station triggered heart beat failure with AP * @WLAN_LOG_REASON_ROAM_HO_FAILURE: Handover failed during LFR3 roaming + * @WLAN_LOG_REASON_DISCONNECT: Disconnect because of some failure */ enum log_event_host_reason_code { WLAN_LOG_REASON_CODE_UNUSED, @@ -188,7 +189,8 @@ enum log_event_host_reason_code { WLAN_LOG_REASON_NO_SCAN_RESULTS, WLAN_LOG_REASON_SCAN_NOT_ALLOWED, WLAN_LOG_REASON_HB_FAILURE, - WLAN_LOG_REASON_ROAM_HO_FAILURE + WLAN_LOG_REASON_ROAM_HO_FAILURE, + WLAN_LOG_REASON_DISCONNECT }; diff --git a/core/mac/src/pe/lim/lim_process_deauth_frame.c b/core/mac/src/pe/lim/lim_process_deauth_frame.c index 25e002a01c..d5e99d0471 100644 --- a/core/mac/src/pe/lim/lim_process_deauth_frame.c +++ b/core/mac/src/pe/lim/lim_process_deauth_frame.c @@ -163,6 +163,17 @@ lim_process_deauth_frame(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo, GET_LIM_SYSTEM_ROLE(psessionEntry), frame_rssi, reasonCode, lim_dot11_reason_str(reasonCode), MAC_ADDR_ARRAY(pHdr->sa)); + + if (pMac->roam.configParam.enable_fatal_event && + (reasonCode != eSIR_MAC_UNSPEC_FAILURE_REASON && + reasonCode != eSIR_MAC_DEAUTH_LEAVING_BSS_REASON && + reasonCode != eSIR_MAC_DISASSOC_LEAVING_BSS_REASON)) { + cds_flush_logs(WLAN_LOG_TYPE_FATAL, + WLAN_LOG_INDICATOR_HOST_DRIVER, + WLAN_LOG_REASON_DISCONNECT, + false, false); + } + lim_diag_event_report(pMac, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT, psessionEntry, 0, reasonCode); diff --git a/core/mac/src/pe/lim/lim_process_disassoc_frame.c b/core/mac/src/pe/lim/lim_process_disassoc_frame.c index f1a8697034..0d487005eb 100644 --- a/core/mac/src/pe/lim/lim_process_disassoc_frame.c +++ b/core/mac/src/pe/lim/lim_process_disassoc_frame.c @@ -162,6 +162,16 @@ lim_process_disassoc_frame(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo, lim_dot11_reason_str(reasonCode), MAC_ADDR_ARRAY(pHdr->sa)); lim_diag_event_report(pMac, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT, psessionEntry, 0, reasonCode); + + if (pMac->roam.configParam.enable_fatal_event && + (reasonCode != eSIR_MAC_UNSPEC_FAILURE_REASON && + reasonCode != eSIR_MAC_DEAUTH_LEAVING_BSS_REASON && + reasonCode != eSIR_MAC_DISASSOC_LEAVING_BSS_REASON)) { + cds_flush_logs(WLAN_LOG_TYPE_FATAL, + WLAN_LOG_INDICATOR_HOST_DRIVER, + WLAN_LOG_REASON_DISCONNECT, + false, false); + } /** * Extract 'associated' context for STA, if any. * This is maintained by DPH and created by LIM.