summaryrefslogtreecommitdiff
path: root/uapi
diff options
context:
space:
mode:
authorHimanshu Agarwal <himanaga@codeaurora.org>2016-12-05 17:21:12 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-12-09 13:22:33 -0800
commit3ed01151ef6ca83ea5745baffeb214e21f2f46c3 (patch)
tree553e24ff07f89c170bca0d6d11efe5793cbb670f /uapi
parent73bc5c2c99d8f33c4fd1520eb80e6c92b9d9f7ab (diff)
Revert "Revert "qcacld-3.0: Dump Tx/Rx packets during connection""
This reverts Change-Id I2aec7253511d2ca7b08ca77d858a46f9c01d4e9d Adding support for dumping 32 tx/rx packets during connection by reverting above change as "exceeding skb buffer size and leading to crash" issue is resolved with this change. Change-Id: I951355776461706bb52eeee0527819377e7b7857 CRs-Fixed: 1097280
Diffstat (limited to 'uapi')
-rw-r--r--uapi/linux/pktlog_ac_fmt.h114
1 files changed, 106 insertions, 8 deletions
diff --git a/uapi/linux/pktlog_ac_fmt.h b/uapi/linux/pktlog_ac_fmt.h
index cb476f681b2e..d76ebad1ee36 100644
--- a/uapi/linux/pktlog_ac_fmt.h
+++ b/uapi/linux/pktlog_ac_fmt.h
@@ -74,6 +74,26 @@ struct ath_pktlog_hdr {
#endif
} __ATTRIB_PACK;
+/**
+ * enum pkt_type - packet type
+ * @START_MONITOR: indicates parser to start packetdump parsing
+ * @STOP_MONITOR: indicates parser to stop packetdump parsing
+ * @TX_MGMT_PKT: TX management Packet
+ * @TX_DATA_PKT: TX data Packet
+ * @RX_MGMT_PKT: RX management Packet
+ * @RX_DATA_PKT: RX data Packet
+ *
+ * This enum has packet types
+ */
+enum pkt_type {
+ START_MONITOR = 1,
+ STOP_MONITOR,
+ TX_MGMT_PKT,
+ TX_DATA_PKT,
+ RX_MGMT_PKT,
+ RX_DATA_PKT,
+};
+
#define ATH_PKTLOG_HDR_FLAGS_MASK 0xffff
#define ATH_PKTLOG_HDR_FLAGS_SHIFT 0
#define ATH_PKTLOG_HDR_FLAGS_OFFSET 0
@@ -131,17 +151,18 @@ enum {
/* Types of packet log events */
-#define PKTLOG_TYPE_TX_CTRL 1
-#define PKTLOG_TYPE_TX_STAT 2
-#define PKTLOG_TYPE_TX_MSDU_ID 3
-#define PKTLOG_TYPE_TX_FRM_HDR 4
-#define PKTLOG_TYPE_RX_STAT 5
-#define PKTLOG_TYPE_RC_FIND 6
-#define PKTLOG_TYPE_RC_UPDATE 7
+#define PKTLOG_TYPE_TX_CTRL 1
+#define PKTLOG_TYPE_TX_STAT 2
+#define PKTLOG_TYPE_TX_MSDU_ID 3
+#define PKTLOG_TYPE_TX_FRM_HDR 4
+#define PKTLOG_TYPE_RX_STAT 5
+#define PKTLOG_TYPE_RC_FIND 6
+#define PKTLOG_TYPE_RC_UPDATE 7
#define PKTLOG_TYPE_TX_VIRT_ADDR 8
#define PKTLOG_TYPE_SMART_ANTENNA 9
#define PKTLOG_TYPE_SW_EVENT 10
-#define PKTLOG_TYPE_MAX 11
+#define PKTLOG_TYPE_PKT_DUMP 11
+#define PKTLOG_TYPE_MAX 12
#define PKTLOG_MAX_TXCTL_WORDS 57 /* +2 words for bitmap */
#define PKTLOG_MAX_TXSTATUS_WORDS 32
@@ -291,5 +312,82 @@ struct ath_pktlog_buf {
sizeof(struct ath_pktlog_hdr)) ? _rd_offset : 0; \
} while(0)
+/**
+ * enum tx_pkt_fate - tx packet fate
+ * @TX_PKT_FATE_ACKED: Sent over air and ACKed
+ * @TX_PKT_FATE_SENT: Sent over air but not ACKed.
+ * @TX_PKT_FATE_FW_QUEUED: Queued within firmware,
+ * but not yet sent over air
+ * @TX_PKT_FATE_FW_DROP_INVALID: Dropped by firmware as invalid.
+ * E.g. bad source address, bad checksum, or invalid for current state.
+ * @TX_PKT_FATE_FW_DROP_NOBUFS: Dropped by firmware due
+ * to lack of buffer space
+ * @TX_PKT_FATE_FW_DROP_OTHER: Dropped by firmware for any other
+ * reason. Includes frames that were sent by driver to firmware, but
+ * unaccounted for by firmware.
+ * @TX_PKT_FATE_DRV_QUEUED: Queued within driver, not yet sent to firmware.
+ * @TX_PKT_FATE_DRV_DROP_INVALID: Dropped by driver as invalid.
+ * E.g. bad source address, or invalid for current state.
+ * @TX_PKT_FATE_DRV_DROP_NOBUFS: Dropped by driver due to lack of buffer space
+ * @TX_PKT_FATE_DRV_DROP_OTHER: Dropped by driver for any other reason.
+ * E.g. out of buffers.
+ *
+ * This enum has packet fate types
+ */
+
+enum tx_pkt_fate {
+ TX_PKT_FATE_ACKED,
+ TX_PKT_FATE_SENT,
+ TX_PKT_FATE_FW_QUEUED,
+ TX_PKT_FATE_FW_DROP_INVALID,
+ TX_PKT_FATE_FW_DROP_NOBUFS,
+ TX_PKT_FATE_FW_DROP_OTHER,
+ TX_PKT_FATE_DRV_QUEUED,
+ TX_PKT_FATE_DRV_DROP_INVALID,
+ TX_PKT_FATE_DRV_DROP_NOBUFS,
+ TX_PKT_FATE_DRV_DROP_OTHER,
+};
+
+/**
+ * enum rx_pkt_fate - rx packet fate
+ * @RX_PKT_FATE_SUCCESS: Valid and delivered to
+ * network stack (e.g., netif_rx()).
+ * @RX_PKT_FATE_FW_QUEUED: Queued within firmware,
+ * but not yet sent to driver.
+ * @RX_PKT_FATE_FW_DROP_FILTER: Dropped by firmware
+ * due to host-programmable filters.
+ * @RX_PKT_FATE_FW_DROP_INVALID: Dropped by firmware
+ * as invalid. E.g. bad checksum, decrypt failed, or invalid for current state.
+ * @RX_PKT_FATE_FW_DROP_NOBUFS: Dropped by firmware
+ * due to lack of buffer space.
+ * @RX_PKT_FATE_FW_DROP_OTHER: Dropped by firmware
+ * for any other reason.
+ * @RX_PKT_FATE_DRV_QUEUED: Queued within driver,
+ * not yet delivered to network stack.
+ * @RX_PKT_FATE_DRV_DROP_FILTER: Dropped by driver
+ * due to filter rules.
+ * @RX_PKT_FATE_DRV_DROP_INVALID: Dropped by driver as invalid.
+ * E.g. not permitted in current state.
+ * @RX_PKT_FATE_DRV_DROP_NOBUFS: Dropped by driver
+ * due to lack of buffer space.
+ * @RX_PKT_FATE_DRV_DROP_OTHER: Dropped by driver for any other reason.
+ *
+ * This enum has packet fate types
+ */
+
+enum rx_pkt_fate {
+ RX_PKT_FATE_SUCCESS,
+ RX_PKT_FATE_FW_QUEUED,
+ RX_PKT_FATE_FW_DROP_FILTER,
+ RX_PKT_FATE_FW_DROP_INVALID,
+ RX_PKT_FATE_FW_DROP_NOBUFS,
+ RX_PKT_FATE_FW_DROP_OTHER,
+ RX_PKT_FATE_DRV_QUEUED,
+ RX_PKT_FATE_DRV_DROP_FILTER,
+ RX_PKT_FATE_DRV_DROP_INVALID,
+ RX_PKT_FATE_DRV_DROP_NOBUFS,
+ RX_PKT_FATE_DRV_DROP_OTHER,
+};
+
#endif /* _PKTLOG_FMT_H_ */
#endif /* REMOVE_PKT_LOG */