|
@@ -390,7 +390,6 @@ void wlan_hdd_classify_pkt(struct sk_buff *skb)
|
|
|
else if (qdf_nbuf_is_icmp_pkt(skb))
|
|
|
QDF_NBUF_CB_GET_PACKET_TYPE(skb) =
|
|
|
QDF_NBUF_CB_PACKET_TYPE_ICMP;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -533,6 +532,7 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
uint8_t STAId;
|
|
|
struct hdd_station_ctx *pHddStaCtx = &pAdapter->sessionCtx.station;
|
|
|
struct qdf_mac_addr *mac_addr;
|
|
|
+ bool pkt_proto_logged = false;
|
|
|
#ifdef QCA_PKT_PROTO_TRACE
|
|
|
uint8_t proto_type = 0;
|
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(pAdapter);
|
|
@@ -704,24 +704,30 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
++pAdapter->stats.tx_packets;
|
|
|
|
|
|
hdd_event_eapol_log(skb, QDF_TX);
|
|
|
- qdf_dp_trace_log_pkt(pAdapter->sessionId, skb, QDF_TX,
|
|
|
- QDF_TRACE_DEFAULT_PDEV_ID);
|
|
|
+ pkt_proto_logged = qdf_dp_trace_log_pkt(pAdapter->sessionId,
|
|
|
+ skb, QDF_TX,
|
|
|
+ QDF_TRACE_DEFAULT_PDEV_ID);
|
|
|
QDF_NBUF_CB_TX_PACKET_TRACK(skb) = QDF_NBUF_TX_PKT_DATA_TRACK;
|
|
|
QDF_NBUF_UPDATE_TX_PKT_COUNT(skb, QDF_NBUF_TX_PKT_HDD);
|
|
|
|
|
|
qdf_dp_trace_set_track(skb, QDF_TX);
|
|
|
+
|
|
|
DPTRACE(qdf_dp_trace(skb, QDF_DP_TRACE_HDD_TX_PACKET_PTR_RECORD,
|
|
|
QDF_TRACE_DEFAULT_PDEV_ID, qdf_nbuf_data_addr(skb),
|
|
|
sizeof(qdf_nbuf_data(skb)),
|
|
|
QDF_TX));
|
|
|
- DPTRACE(qdf_dp_trace(skb, QDF_DP_TRACE_HDD_TX_PACKET_RECORD,
|
|
|
- QDF_TRACE_DEFAULT_PDEV_ID, (uint8_t *)skb->data,
|
|
|
- qdf_nbuf_len(skb), QDF_TX));
|
|
|
- if (qdf_nbuf_len(skb) > QDF_DP_TRACE_RECORD_SIZE) {
|
|
|
+ if (!pkt_proto_logged) {
|
|
|
DPTRACE(qdf_dp_trace(skb, QDF_DP_TRACE_HDD_TX_PACKET_RECORD,
|
|
|
- QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
- (uint8_t *)&skb->data[QDF_DP_TRACE_RECORD_SIZE],
|
|
|
- (qdf_nbuf_len(skb)-QDF_DP_TRACE_RECORD_SIZE), QDF_TX));
|
|
|
+ QDF_TRACE_DEFAULT_PDEV_ID, (uint8_t *)skb->data,
|
|
|
+ qdf_nbuf_len(skb), QDF_TX));
|
|
|
+ if (qdf_nbuf_len(skb) > QDF_DP_TRACE_RECORD_SIZE) {
|
|
|
+ DPTRACE(qdf_dp_trace(skb,
|
|
|
+ QDF_DP_TRACE_HDD_TX_PACKET_RECORD,
|
|
|
+ QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
+ (uint8_t *)&skb->data[QDF_DP_TRACE_RECORD_SIZE],
|
|
|
+ (qdf_nbuf_len(skb)-QDF_DP_TRACE_RECORD_SIZE),
|
|
|
+ QDF_TX));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (!hdd_is_tx_allowed(skb, STAId)) {
|
|
@@ -1151,6 +1157,7 @@ QDF_STATUS hdd_rx_packet_cbk(void *context, qdf_nbuf_t rxBuf)
|
|
|
unsigned int cpu_index;
|
|
|
struct qdf_mac_addr *mac_addr;
|
|
|
bool wake_lock = false;
|
|
|
+ bool proto_pkt_logged = false;
|
|
|
|
|
|
/* Sanity check on inputs */
|
|
|
if (unlikely((NULL == context) || (NULL == rxBuf))) {
|
|
@@ -1209,22 +1216,32 @@ QDF_STATUS hdd_rx_packet_cbk(void *context, qdf_nbuf_t rxBuf)
|
|
|
}
|
|
|
|
|
|
hdd_event_eapol_log(skb, QDF_RX);
|
|
|
+ proto_pkt_logged = qdf_dp_trace_log_pkt(pAdapter->sessionId,
|
|
|
+ skb, QDF_RX,
|
|
|
+ QDF_TRACE_DEFAULT_PDEV_ID);
|
|
|
+
|
|
|
DPTRACE(qdf_dp_trace(skb,
|
|
|
QDF_DP_TRACE_RX_HDD_PACKET_PTR_RECORD,
|
|
|
QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
qdf_nbuf_data_addr(skb),
|
|
|
sizeof(qdf_nbuf_data(skb)), QDF_RX));
|
|
|
- DPTRACE(qdf_dp_trace(skb, QDF_DP_TRACE_HDD_RX_PACKET_RECORD,
|
|
|
- QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
- (uint8_t *)skb->data, qdf_nbuf_len(skb), QDF_RX));
|
|
|
- if (qdf_nbuf_len(skb) > QDF_DP_TRACE_RECORD_SIZE)
|
|
|
+
|
|
|
+ if (!proto_pkt_logged) {
|
|
|
DPTRACE(qdf_dp_trace(skb,
|
|
|
QDF_DP_TRACE_HDD_RX_PACKET_RECORD,
|
|
|
QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
- (uint8_t *)&skb->data[QDF_DP_TRACE_RECORD_SIZE],
|
|
|
- (qdf_nbuf_len(skb)-QDF_DP_TRACE_RECORD_SIZE),
|
|
|
+ (uint8_t *)skb->data, qdf_nbuf_len(skb),
|
|
|
QDF_RX));
|
|
|
-
|
|
|
+ if (qdf_nbuf_len(skb) > QDF_DP_TRACE_RECORD_SIZE)
|
|
|
+ DPTRACE(qdf_dp_trace(skb,
|
|
|
+ QDF_DP_TRACE_HDD_RX_PACKET_RECORD,
|
|
|
+ QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
+ (uint8_t *)
|
|
|
+ &skb->data[QDF_DP_TRACE_RECORD_SIZE],
|
|
|
+ (qdf_nbuf_len(skb) -
|
|
|
+ QDF_DP_TRACE_RECORD_SIZE),
|
|
|
+ QDF_RX));
|
|
|
+ }
|
|
|
mac_addr = (struct qdf_mac_addr *)(skb->data+QDF_MAC_ADDR_SIZE);
|
|
|
|
|
|
ucfg_tdls_update_rx_pkt_cnt(pAdapter->hdd_vdev, mac_addr);
|