|
@@ -173,19 +173,33 @@ typedef struct s_qdf_trace_data {
|
|
|
|
|
|
/**
|
|
|
* enum QDF_DP_TRACE_ID - Generic ID to identify various events in data path
|
|
|
- * @QDF_DP_TRACE_INVALID: Invalid ID
|
|
|
- * @QDF_DP_TRACE_DROP_PACKET_RECORD: Dropped packet stored with this id
|
|
|
- * @QDF_DP_TRACE_HDD_TX_PACKET_PTR_RECORD: nbuf->data ptr of HDD
|
|
|
- * @QDF_DP_TRACE_HDD_TX_PACKET_RECORD: nbuf->data stored with this id
|
|
|
- * @QDF_DP_TRACE_CE_PACKET_PTR_RECORD: nbuf->data ptr of CE
|
|
|
- * @QDF_DP_TRACE_CE_PACKET_RECORD: nbuf->data stored with this id
|
|
|
- * @QDF_DP_TRACE_TXRX_QUEUE_PACKET_PTR_RECORD: nbuf->data ptr of txrx queue
|
|
|
- * @QDF_DP_TRACE_TXRX_PACKET_PTR_RECORD: nbuf->data ptr of txrx
|
|
|
- * @QDF_DP_TRACE_HTT_PACKET_PTR_RECORD: nbuf->data ptr of htt
|
|
|
- * @QDF_DP_TRACE_HTC_PACKET_PTR_RECORD: nbuf->data ptr of htc
|
|
|
- * @QDF_DP_TRACE_HIF_PACKET_PTR_RECORD: nbuf->data ptr of hif
|
|
|
- * @QDF_DP_TRACE_HDD_TX_TIMEOUT: hdd tx timeout event
|
|
|
- * @QDF_DP_TRACE_HDD_SOFTAP_TX_TIMEOUT: hdd tx softap timeout event
|
|
|
+ * @QDF_DP_TRACE_INVALID - invalid
|
|
|
+ * @QDF_DP_TRACE_DROP_PACKET_RECORD - record drop packet
|
|
|
+ * @QDF_DP_TRACE_EAPOL_PACKET_RECORD - record EAPOL packet
|
|
|
+ * @QDF_DP_TRACE_DHCP_PACKET_RECORD - record DHCP packet
|
|
|
+ * @QDF_DP_TRACE_ARP_PACKET_RECORD - record ARP packet
|
|
|
+ * @QDF_DP_TRACE_MGMT_PACKET_RECORD - record MGMT pacekt
|
|
|
+ * @QDF_DP_TRACE_DEFAULT_VERBOSITY - below this are part of default verbosity
|
|
|
+ * @QDF_DP_TRACE_HDD_TX_TIMEOUT - HDD tx timeout
|
|
|
+ * @QDF_DP_TRACE_HDD_SOFTAP_TX_TIMEOUT- SOFTAP HDD tx timeout
|
|
|
+ * @QDF_DP_TRACE_HDD_TX_PACKET_PTR_RECORD - HDD layer ptr record
|
|
|
+ * @QDF_DP_TRACE_CE_PACKET_PTR_RECORD - CE layer ptr record
|
|
|
+ * @QDF_DP_TRACE_CE_FAST_PACKET_PTR_RECORD- CE fastpath ptr record
|
|
|
+ * @QDF_DP_TRACE_FREE_PACKET_PTR_RECORD - tx completion ptr record
|
|
|
+ * @QDF_DP_TRACE_RX_HTT_PACKET_PTR_RECORD - HTT RX record
|
|
|
+ * @QDF_DP_TRACE_RX_OFFLOAD_HTT_PACKET_PTR_RECORD- HTT RX offload record
|
|
|
+ * @QDF_DP_TRACE_RX_HDD_PACKET_PTR_RECORD - HDD RX record
|
|
|
+ * @QDF_DP_TRACE_LOW_VERBOSITY - below this are part of low verbosity
|
|
|
+ * @QDF_DP_TRACE_TXRX_QUEUE_PACKET_PTR_RECORD -tx queue ptr record
|
|
|
+ * @QDF_DP_TRACE_TXRX_PACKET_PTR_RECORD - txrx packet ptr record
|
|
|
+ * @QDF_DP_TRACE_TXRX_FAST_PACKET_PTR_RECORD - txrx fast path record
|
|
|
+ * @QDF_DP_TRACE_HTT_PACKET_PTR_RECORD - htt packet ptr record
|
|
|
+ * @QDF_DP_TRACE_HTC_PACKET_PTR_RECORD - htc packet ptr record
|
|
|
+ * @QDF_DP_TRACE_HIF_PACKET_PTR_RECORD - hif packet ptr record
|
|
|
+ * @QDF_DP_TRACE_RX_TXRX_PACKET_PTR_RECORD - txrx packet ptr record
|
|
|
+ * @QDF_DP_TRACE_MED_VERBOSITY - below this are part of med verbosity
|
|
|
+ * @QDF_DP_TRACE_HDD_TX_PACKET_RECORD - record 32 bytes at HDD
|
|
|
+ * @QDF_DP_TRACE_HIGH_VERBOSITY - below this are part of high verbosity
|
|
|
*/
|
|
|
enum QDF_DP_TRACE_ID {
|
|
|
QDF_DP_TRACE_INVALID,
|
|
@@ -193,6 +207,7 @@ enum QDF_DP_TRACE_ID {
|
|
|
QDF_DP_TRACE_EAPOL_PACKET_RECORD,
|
|
|
QDF_DP_TRACE_DHCP_PACKET_RECORD,
|
|
|
QDF_DP_TRACE_ARP_PACKET_RECORD,
|
|
|
+ QDF_DP_TRACE_MGMT_PACKET_RECORD,
|
|
|
QDF_DP_TRACE_DEFAULT_VERBOSITY,
|
|
|
QDF_DP_TRACE_HDD_TX_TIMEOUT,
|
|
|
QDF_DP_TRACE_HDD_SOFTAP_TX_TIMEOUT,
|
|
@@ -217,13 +232,41 @@ enum QDF_DP_TRACE_ID {
|
|
|
QDF_DP_TRACE_MAX
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * qdf_proto_type - protocol type
|
|
|
+ * @QDF_PROTO_TYPE_DHCP - DHCP
|
|
|
+ * @QDF_PROTO_TYPE_EAPOL - EAPOL
|
|
|
+ * @QDF_PROTO_TYPE_ARP - ARP
|
|
|
+ * @QDF_PROTO_TYPE_MGMT - MGMT
|
|
|
+ */
|
|
|
enum qdf_proto_type {
|
|
|
QDF_PROTO_TYPE_DHCP,
|
|
|
QDF_PROTO_TYPE_EAPOL,
|
|
|
QDF_PROTO_TYPE_ARP,
|
|
|
+ QDF_PROTO_TYPE_MGMT,
|
|
|
QDF_PROTO_TYPE_MAX
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * qdf_proto_subtype - subtype of packet
|
|
|
+ * @QDF_PROTO_EAPOL_M1 - EAPOL 1/4
|
|
|
+ * @QDF_PROTO_EAPOL_M2 - EAPOL 2/4
|
|
|
+ * @QDF_PROTO_EAPOL_M3 - EAPOL 3/4
|
|
|
+ * @QDF_PROTO_EAPOL_M4 - EAPOL 4/4
|
|
|
+ * @QDF_PROTO_DHCP_DISCOVER - discover
|
|
|
+ * @QDF_PROTO_DHCP_REQUEST - request
|
|
|
+ * @QDF_PROTO_DHCP_OFFER - offer
|
|
|
+ * @QDF_PROTO_DHCP_ACK - ACK
|
|
|
+ * @QDF_PROTO_DHCP_NACK - NACK
|
|
|
+ * @QDF_PROTO_DHCP_RELEASE - release
|
|
|
+ * @QDF_PROTO_DHCP_INFORM - inform
|
|
|
+ * @QDF_PROTO_DHCP_DECLINE - decline
|
|
|
+ * @QDF_PROTO_ARP_SUBTYPE - arp
|
|
|
+ * @QDF_PROTO_MGMT_ASSOC -assoc
|
|
|
+ * @QDF_PROTO_MGMT_DISASSOC - disassoc
|
|
|
+ * @QDF_PROTO_MGMT_AUTH - auth
|
|
|
+ * @QDF_PROTO_MGMT_DEAUTH - deauth
|
|
|
+ */
|
|
|
enum qdf_proto_subtype {
|
|
|
QDF_PROTO_INVALID,
|
|
|
QDF_PROTO_EAPOL_M1,
|
|
@@ -239,20 +282,46 @@ enum qdf_proto_subtype {
|
|
|
QDF_PROTO_DHCP_INFORM,
|
|
|
QDF_PROTO_DHCP_DECLINE,
|
|
|
QDF_PROTO_ARP_SUBTYPE,
|
|
|
+ QDF_PROTO_MGMT_ASSOC,
|
|
|
+ QDF_PROTO_MGMT_DISASSOC,
|
|
|
+ QDF_PROTO_MGMT_AUTH,
|
|
|
+ QDF_PROTO_MGMT_DEAUTH,
|
|
|
QDF_PROTO_SUBTYPE_MAX
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * qdf_proto_dir - direction
|
|
|
+ * @QDF_TX: TX direction
|
|
|
+ * @QDF_RX: RX direction
|
|
|
+ * @QDF_NA: not applicable
|
|
|
+ */
|
|
|
enum qdf_proto_dir {
|
|
|
QDF_TX,
|
|
|
- QDF_RX
|
|
|
+ QDF_RX,
|
|
|
+ QDF_NA
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * struct qdf_dp_trace_ptr_buf - pointer record buffer
|
|
|
+ * @cookie: cookie value
|
|
|
+ * @msdu_id: msdu_id
|
|
|
+ * @status: completion status
|
|
|
+ */
|
|
|
struct qdf_dp_trace_ptr_buf {
|
|
|
uint64_t cookie;
|
|
|
uint16_t msdu_id;
|
|
|
uint16_t status;
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * struct qdf_dp_trace_proto_buf - proto packet buffer
|
|
|
+ * @sa: source address
|
|
|
+ * @da: destination address
|
|
|
+ * @vdev_id : vdev id
|
|
|
+ * @type: packet type
|
|
|
+ * @subtype: packet subtype
|
|
|
+ * @dir: direction
|
|
|
+ */
|
|
|
struct qdf_dp_trace_proto_buf {
|
|
|
struct qdf_mac_addr sa;
|
|
|
struct qdf_mac_addr da;
|
|
@@ -262,6 +331,18 @@ struct qdf_dp_trace_proto_buf {
|
|
|
uint8_t dir;
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * struct qdf_dp_trace_mgmt_buf - mgmt packet buffer
|
|
|
+ * @vdev_id : vdev id
|
|
|
+ * @type: packet type
|
|
|
+ * @subtype: packet subtype
|
|
|
+ */
|
|
|
+struct qdf_dp_trace_mgmt_buf {
|
|
|
+ uint8_t vdev_id;
|
|
|
+ uint8_t type;
|
|
|
+ uint8_t subtype;
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* struct qdf_dp_trace_record_s - Describes a record in DP trace
|
|
|
* @time: time when it got stored
|
|
@@ -374,6 +455,10 @@ qdf_dp_trace_proto_pkt(enum QDF_DP_TRACE_ID code, uint8_t vdev_id,
|
|
|
void qdf_dp_display_proto_pkt(struct qdf_dp_trace_record_s *record,
|
|
|
uint16_t index);
|
|
|
void qdf_dp_trace_enable_live_mode(void);
|
|
|
+void qdf_dp_trace_mgmt_pkt(enum QDF_DP_TRACE_ID code, uint8_t vdev_id,
|
|
|
+ enum qdf_proto_type type, enum qdf_proto_subtype subtype);
|
|
|
+void qdf_dp_display_mgmt_pkt(struct qdf_dp_trace_record_s *record,
|
|
|
+ uint16_t index);
|
|
|
#else
|
|
|
static inline
|
|
|
void qdf_dp_trace_log_pkt(uint8_t session_id, struct sk_buff *skb,
|