From aaa0c4fbd79d0931c35cb15eb46c7b460beda8d5 Mon Sep 17 00:00:00 2001 From: Himanshu Agarwal Date: Wed, 4 Jan 2017 15:20:50 +0530 Subject: qcacld-2.0: Enable logging of all DPTRACE logs for protocol packets Enable logging of DPTRACE logs at each layer of driver and at tx completion for all tx as well as rx protocol packets. Change-Id: Id568c19196702034989a0f55490bc62667b3b20e CRs-Fixed: 1083002 --- CORE/SERVICES/COMMON/adf/adf_trace.c | 18 +++++++++++++----- CORE/SERVICES/COMMON/adf/linux/adf_nbuf_pvt.h | 20 ++++++++++++-------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/CORE/SERVICES/COMMON/adf/adf_trace.c b/CORE/SERVICES/COMMON/adf/adf_trace.c index 612cbbbff1e6..f5d6e8c263b7 100644 --- a/CORE/SERVICES/COMMON/adf/adf_trace.c +++ b/CORE/SERVICES/COMMON/adf/adf_trace.c @@ -75,10 +75,12 @@ void adf_dp_trace_init(void) g_adf_dp_trace_data.head = INVALID_ADF_DP_TRACE_ADDR; g_adf_dp_trace_data.tail = INVALID_ADF_DP_TRACE_ADDR; g_adf_dp_trace_data.num = 0; - g_adf_dp_trace_data.proto_bitmap = NBUF_PKT_TRAC_TYPE_DHCP | - NBUF_PKT_TRAC_TYPE_EAPOL | NBUF_PKT_TRAC_TYPE_MGMT_ACTION; + g_adf_dp_trace_data.proto_bitmap = NBUF_PKT_TRAC_TYPE_EAPOL | + NBUF_PKT_TRAC_TYPE_DHCP | + NBUF_PKT_TRAC_TYPE_MGMT_ACTION | + NBUF_PKT_TRAC_TYPE_ARP; g_adf_dp_trace_data.no_of_record = 0; - g_adf_dp_trace_data.verbosity = ADF_DP_TRACE_VERBOSITY_LOW; + g_adf_dp_trace_data.verbosity = ADF_DP_TRACE_VERBOSITY_HIGH; g_adf_dp_trace_data.enable = true; for (i = 0; i < ADF_DP_TRACE_MAX; i++) @@ -461,6 +463,8 @@ bool adf_log_eapol_pkt(uint8_t session_id, struct sk_buff *skb, ADF_NBUF_CB_TX_DP_TRACE(skb) = 1; else if (ADF_RX == dir) ADF_NBUF_CB_RX_DP_TRACE(skb) = 1; + + ADF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -494,6 +498,7 @@ bool adf_log_dhcp_pkt(uint8_t session_id, struct sk_buff *skb, else if (ADF_RX == dir) ADF_NBUF_CB_RX_DP_TRACE(skb) = 1; + ADF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -528,6 +533,7 @@ bool adf_log_arp_pkt(uint8_t session_id, struct sk_buff *skb, else if (ADF_RX == dir) ADF_NBUF_CB_RX_DP_TRACE(skb) = 1; + ADF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -696,7 +702,8 @@ void adf_dp_trace_ptr(adf_nbuf_t nbuf, enum ADF_DP_TRACE_ID code, adf_os_mem_copy(&buf.cookie, data, size); buf.msdu_id = msdu_id; buf.status = status; - adf_dp_add_record(code, (uint8_t *)&buf, buf_size, false); + adf_dp_add_record(code, (uint8_t *)&buf, buf_size, + ADF_NBUF_CB_DP_TRACE_PRINT(nbuf)); } /** @@ -749,7 +756,8 @@ void adf_dp_trace(adf_nbuf_t nbuf, enum ADF_DP_TRACE_ID code, if (adf_dp_enable_check(nbuf, code, dir) == false) return; - adf_dp_add_record(code, data, size, false); + adf_dp_add_record(code, data, size, + ADF_NBUF_CB_DP_TRACE_PRINT(nbuf)); } /** diff --git a/CORE/SERVICES/COMMON/adf/linux/adf_nbuf_pvt.h b/CORE/SERVICES/COMMON/adf/linux/adf_nbuf_pvt.h index b6f99dadfa77..5f9565eaecac 100644 --- a/CORE/SERVICES/COMMON/adf/linux/adf_nbuf_pvt.h +++ b/CORE/SERVICES/COMMON/adf/linux/adf_nbuf_pvt.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2014, 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -146,13 +146,14 @@ struct cvg_nbuf_cb { unsigned char tx_htt2_frm: 1; #endif /* QCA_TX_HTT2_SUPPORT */ struct { - uint8_t is_eapol: 1; - uint8_t is_arp: 1; - uint8_t is_dhcp: 1; - uint8_t is_wapi: 1; - uint8_t is_mcast: 1; - uint8_t is_bcast: 1; - uint8_t reserved: 2; + uint8_t is_eapol:1; + uint8_t is_arp:1; + uint8_t is_dhcp:1; + uint8_t is_wapi:1; + uint8_t is_mcast:1; + uint8_t is_bcast:1; + uint8_t reserved:1; + uint8_t print:1; } packet_type; } __packed; #pragma pack(pop) @@ -264,6 +265,9 @@ struct cvg_nbuf_cb { #define ADF_NBUF_CB_TX_DP_TRACE(skb) \ (((struct cvg_nbuf_cb *)((skb)->cb))->trace.dp_trace_tx) +#define ADF_NBUF_CB_DP_TRACE_PRINT(skb) \ + (((struct cvg_nbuf_cb *)((skb)->cb))->packet_type.print) + #define ADF_NBUF_CB_RX_DP_TRACE(skb) \ (((struct cvg_nbuf_cb *)((skb)->cb))->trace.dp_trace_rx) -- cgit v1.2.3