qcacmn: Add qdf API to check for configured packet types

Add qdf API support to check if the packet should be
tracked as per the configured protocol types.

Change-Id: Ia9e937865d3d440f1350307a67e32b20ea218e54
CRs-Fixed: 2642156
This commit is contained in:
Yeshwanth Sriram Guntuka
2020-03-17 17:07:27 +05:30
committed by nshrivas
parent 1c1ef8c2bd
commit 4326a54376
2 changed files with 50 additions and 0 deletions

View File

@@ -922,6 +922,16 @@ void qdf_dp_set_proto_event_bitmap(uint32_t value);
void qdf_dp_log_proto_pkt_info(uint8_t *sa, uint8_t *da, uint8_t type, void qdf_dp_log_proto_pkt_info(uint8_t *sa, uint8_t *da, uint8_t type,
uint8_t subtype, uint8_t dir, uint16_t msdu_id, uint8_t subtype, uint8_t dir, uint16_t msdu_id,
uint8_t status); uint8_t status);
/**
* qdf_dp_track_noack_check() - Check if no ack count should be tracked for
* the configured protocol packet types
* @nbuf: nbuf
* @subtype: subtype of packet to be tracked
*
* Return: none
*/
void qdf_dp_track_noack_check(qdf_nbuf_t nbuf, enum qdf_proto_subtype *subtype);
#else #else
static inline static inline
bool qdf_dp_trace_log_pkt(uint8_t vdev_id, struct sk_buff *skb, bool qdf_dp_trace_log_pkt(uint8_t vdev_id, struct sk_buff *skb,
@@ -1018,6 +1028,11 @@ void qdf_dp_log_proto_pkt_info(uint8_t *sa, uint8_t *da, uint8_t type,
uint8_t status) uint8_t status)
{ {
} }
static inline
void qdf_dp_track_noack_check(qdf_nbuf_t nbuf, enum qdf_proto_subtype *subtype)
{
}
#endif #endif
void qdf_trace_display(void); void qdf_trace_display(void);

View File

@@ -2230,6 +2230,41 @@ bool qdf_dp_proto_log_enable_check(enum qdf_proto_type pkt_type,
} }
} }
void qdf_dp_track_noack_check(qdf_nbuf_t nbuf, enum qdf_proto_subtype *subtype)
{
enum qdf_proto_type pkt_type = qdf_dp_get_pkt_proto_type(nbuf);
uint16_t dp_track = 0;
switch (pkt_type) {
case QDF_PROTO_TYPE_EAPOL:
dp_track = qdf_dp_get_proto_bitmap() &
QDF_NBUF_PKT_TRAC_TYPE_EAPOL;
break;
case QDF_PROTO_TYPE_DHCP:
dp_track = qdf_dp_get_proto_bitmap() &
QDF_NBUF_PKT_TRAC_TYPE_DHCP;
break;
case QDF_PROTO_TYPE_ARP:
dp_track = qdf_dp_get_proto_bitmap() &
QDF_NBUF_PKT_TRAC_TYPE_ARP;
break;
case QDF_PROTO_TYPE_DNS:
dp_track = qdf_dp_get_proto_bitmap() &
QDF_NBUF_PKT_TRAC_TYPE_DNS;
break;
default:
break;
}
if (!dp_track) {
*subtype = QDF_PROTO_INVALID;
return;
}
*subtype = qdf_dp_get_pkt_subtype(nbuf, pkt_type);
}
qdf_export_symbol(qdf_dp_track_noack_check);
/** /**
* qdf_dp_trace_ptr() - record dptrace * qdf_dp_trace_ptr() - record dptrace
* @code: dptrace code * @code: dptrace code