From 3f54962309997012926df4d5728cf472d4b89f9d Mon Sep 17 00:00:00 2001 From: Himanshu Agarwal Date: Thu, 27 Oct 2016 15:16:25 +0530 Subject: [PATCH] qcacmn: 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 --- qdf/linux/src/i_qdf_nbuf.h | 4 +++- qdf/linux/src/qdf_trace.c | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index bb970024e4b1..cdd6111443b9 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -189,7 +189,7 @@ struct qdf_nbuf_cb { packet_type:3, /* used only for hl*/ htt2_frm:1, - reserved:1; + print:1; uint8_t vdev_id; } trace; /* 4 bytes */ struct { @@ -281,6 +281,8 @@ struct qdf_nbuf_cb { (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.mcl.trace.packet_track) #define QDF_NBUF_CB_TX_DP_TRACE(skb) \ (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.mcl.trace.dp_trace) +#define QDF_NBUF_CB_DP_TRACE_PRINT(skb) \ + (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.mcl.trace.print) #define QDF_NBUF_CB_TX_HL_HTT2_FRM(skb) \ (((struct qdf_nbuf_cb *)((skb)->cb))->u.tx.dev.mcl.trace.htt2_frm) #define QDF_NBUF_CB_TX_VDEV_ID(skb) \ diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c index df3b9753e381..6334566403c8 100644 --- a/qdf/linux/src/qdf_trace.c +++ b/qdf/linux/src/qdf_trace.c @@ -803,9 +803,11 @@ void qdf_dp_trace_init(void) g_qdf_dp_trace_data.tail = INVALID_QDF_DP_TRACE_ADDR; g_qdf_dp_trace_data.num = 0; g_qdf_dp_trace_data.proto_bitmap = QDF_NBUF_PKT_TRAC_TYPE_EAPOL | - QDF_NBUF_PKT_TRAC_TYPE_DHCP | QDF_NBUF_PKT_TRAC_TYPE_MGMT_ACTION; + QDF_NBUF_PKT_TRAC_TYPE_DHCP | + QDF_NBUF_PKT_TRAC_TYPE_MGMT_ACTION | + QDF_NBUF_PKT_TRAC_TYPE_ARP; g_qdf_dp_trace_data.no_of_record = 0; - g_qdf_dp_trace_data.verbosity = QDF_DP_TRACE_VERBOSITY_LOW; + g_qdf_dp_trace_data.verbosity = QDF_DP_TRACE_VERBOSITY_HIGH; g_qdf_dp_trace_data.enable = true; for (i = 0; i < ARRAY_SIZE(qdf_dp_trace_cb_table); i++) @@ -1221,6 +1223,8 @@ static bool qdf_log_eapol_pkt(uint8_t session_id, struct sk_buff *skb, QDF_NBUF_CB_TX_DP_TRACE(skb) = 1; else if (QDF_RX == dir) QDF_NBUF_CB_RX_DP_TRACE(skb) = 1; + + QDF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -1253,6 +1257,8 @@ static bool qdf_log_dhcp_pkt(uint8_t session_id, struct sk_buff *skb, QDF_NBUF_CB_TX_DP_TRACE(skb) = 1; else if (QDF_RX == dir) QDF_NBUF_CB_RX_DP_TRACE(skb) = 1; + + QDF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -1285,6 +1291,8 @@ static bool qdf_log_arp_pkt(uint8_t session_id, struct sk_buff *skb, QDF_NBUF_CB_TX_DP_TRACE(skb) = 1; else if (QDF_RX == dir) QDF_NBUF_CB_RX_DP_TRACE(skb) = 1; + + QDF_NBUF_CB_DP_TRACE_PRINT(skb) = true; return true; } return false; @@ -1526,7 +1534,8 @@ void qdf_dp_trace_ptr(qdf_nbuf_t nbuf, enum QDF_DP_TRACE_ID code, qdf_mem_copy(&buf.cookie, data, size); buf.msdu_id = msdu_id; buf.status = status; - qdf_dp_add_record(code, (uint8_t *)&buf, buf_size, false); + qdf_dp_add_record(code, (uint8_t *)&buf, buf_size, + QDF_NBUF_CB_DP_TRACE_PRINT(nbuf)); } EXPORT_SYMBOL(qdf_dp_trace_ptr); @@ -1577,7 +1586,7 @@ void qdf_dp_trace(qdf_nbuf_t nbuf, enum QDF_DP_TRACE_ID code, if (qdf_dp_enable_check(nbuf, code, dir) == false) return; - qdf_dp_add_record(code, data, size, false); + qdf_dp_add_record(code, data, size, QDF_NBUF_CB_DP_TRACE_PRINT(nbuf)); } EXPORT_SYMBOL(qdf_dp_trace);