Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c4c4386 authored by Yeshwanth Sriram Guntuka's avatar Yeshwanth Sriram Guntuka Committed by nshrivas
Browse files

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
parent 58f96828
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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,
			       uint8_t subtype, uint8_t dir, uint16_t msdu_id,
			       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
static inline
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)
{
}

static inline
void qdf_dp_track_noack_check(qdf_nbuf_t nbuf, enum qdf_proto_subtype *subtype)
{
}
#endif

void qdf_trace_display(void);
+35 −0
Original line number Diff line number Diff line
@@ -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
 * @code: dptrace code