summaryrefslogtreecommitdiff
path: root/qdf/linux/src/qdf_trace.c
diff options
context:
space:
mode:
authorHimanshu Agarwal <himanaga@codeaurora.org>2016-07-20 17:45:58 +0530
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-08-17 18:03:48 -0700
commitfcd64e9e64416fe42b4cc74920afaa2e3675c09a (patch)
tree053721a8fe1fb29346ab035fe9f4cae94f7f0f83 /qdf/linux/src/qdf_trace.c
parent9c3b3fe2511d77c3f365e4f07e03772549e177b7 (diff)
qcacmn: Add APIs to get packet type and subtype
Propagation from qcacld-2.0 to qcacmn. Add APIs to get DHCP, EAPOL, ARP, ICMP, ICMPV6, TCP and UDP packets type and subtype from the netbuf. Change-Id: I8837ad1b976744eeb0e7f0a836eded3a5d34124b CRs-Fixed: 1019037
Diffstat (limited to 'qdf/linux/src/qdf_trace.c')
-rw-r--r--qdf/linux/src/qdf_trace.c72
1 files changed, 3 insertions, 69 deletions
diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c
index 4a995879db09..d713f5356077 100644
--- a/qdf/linux/src/qdf_trace.c
+++ b/qdf/linux/src/qdf_trace.c
@@ -1126,8 +1126,6 @@ EXPORT_SYMBOL(qdf_dp_add_record);
bool qdf_log_eapol_pkt(uint8_t session_id, struct sk_buff *skb,
enum qdf_proto_dir dir)
{
- uint16_t mask;
- uint16_t eapol_key_info;
enum qdf_proto_subtype subtype;
if ((qdf_dp_get_proto_bitmap() & QDF_NBUF_PKT_TRAC_TYPE_EAPOL) &&
@@ -1135,26 +1133,7 @@ bool qdf_log_eapol_pkt(uint8_t session_id, struct sk_buff *skb,
QDF_NBUF_CB_GET_PACKET_TYPE(skb)) ||
(dir == QDF_RX && qdf_nbuf_is_ipv4_eapol_pkt(skb) == true))) {
- eapol_key_info = (uint16_t)(*(uint16_t *)
- (skb->data + EAPOL_KEY_INFO_OFFSET));
-
- mask = eapol_key_info & EAPOL_MASK;
- switch (mask) {
- case EAPOL_M1_BIT_MASK:
- subtype = QDF_PROTO_EAPOL_M1;
- break;
- case EAPOL_M2_BIT_MASK:
- subtype = QDF_PROTO_EAPOL_M2;
- break;
- case EAPOL_M3_BIT_MASK:
- subtype = QDF_PROTO_EAPOL_M3;
- break;
- case EAPOL_M4_BIT_MASK:
- subtype = QDF_PROTO_EAPOL_M4;
- break;
- default:
- subtype = QDF_PROTO_INVALID;
- }
+ subtype = qdf_nbuf_get_eapol_subtype(skb);
DPTRACE(qdf_dp_trace_proto_pkt(QDF_DP_TRACE_EAPOL_PACKET_RECORD,
session_id, (skb->data + QDF_NBUF_SRC_MAC_OFFSET),
(skb->data + QDF_NBUF_DEST_MAC_OFFSET),
@@ -1187,39 +1166,7 @@ bool qdf_log_dhcp_pkt(uint8_t session_id, struct sk_buff *skb,
QDF_NBUF_CB_GET_PACKET_TYPE(skb)) ||
(dir == QDF_RX && qdf_nbuf_is_ipv4_dhcp_pkt(skb) == true))) {
- if ((skb->data[QDF_DHCP_OPTION53_OFFSET] == QDF_DHCP_OPTION53) &&
- (skb->data[QDF_DHCP_OPTION53_LENGTH_OFFSET] ==
- QDF_DHCP_OPTION53_LENGTH)) {
-
- switch (skb->data[QDF_DHCP_OPTION53_STATUS_OFFSET]) {
- case QDF_DHCP_DISCOVER:
- subtype = QDF_PROTO_DHCP_DISCOVER;
- break;
- case QDF_DHCP_REQUEST:
- subtype = QDF_PROTO_DHCP_REQUEST;
- break;
- case QDF_DHCP_OFFER:
- subtype = QDF_PROTO_DHCP_OFFER;
- break;
- case QDF_DHCP_ACK:
- subtype = QDF_PROTO_DHCP_ACK;
- break;
- case QDF_DHCP_NAK:
- subtype = QDF_PROTO_DHCP_NACK;
- break;
- case QDF_DHCP_RELEASE:
- subtype = QDF_PROTO_DHCP_RELEASE;
- break;
- case QDF_DHCP_INFORM:
- subtype = QDF_PROTO_DHCP_INFORM;
- break;
- case QDF_DHCP_DECLINE:
- subtype = QDF_PROTO_DHCP_DECLINE;
- break;
- default:
- subtype = QDF_PROTO_INVALID;
- }
- }
+ subtype = qdf_nbuf_get_dhcp_subtype(skb);
DPTRACE(qdf_dp_trace_proto_pkt(QDF_DP_TRACE_DHCP_PACKET_RECORD,
session_id, (skb->data + QDF_NBUF_SRC_MAC_OFFSET),
(skb->data + QDF_NBUF_DEST_MAC_OFFSET),
@@ -1245,7 +1192,6 @@ EXPORT_SYMBOL(qdf_log_dhcp_pkt);
bool qdf_log_arp_pkt(uint8_t session_id, struct sk_buff *skb,
enum qdf_proto_dir dir)
{
- uint16_t subtype;
enum qdf_proto_subtype proto_subtype;
if ((qdf_dp_get_proto_bitmap() & QDF_NBUF_PKT_TRAC_TYPE_ARP) &&
@@ -1253,19 +1199,7 @@ bool qdf_log_arp_pkt(uint8_t session_id, struct sk_buff *skb,
QDF_NBUF_CB_GET_PACKET_TYPE(skb)) ||
(dir == QDF_RX && qdf_nbuf_is_ipv4_arp_pkt(skb) == true))) {
- subtype = (uint16_t)(*(uint16_t *)
- (skb->data + ARP_SUB_TYPE_OFFSET));
- switch (QDF_SWAP_U16(subtype)) {
- case ARP_REQUEST:
- proto_subtype = QDF_PROTO_ARP_REQ;
- break;
- case ARP_RESPONSE:
- proto_subtype = QDF_PROTO_ARP_RES;
- break;
- default:
- proto_subtype = QDF_PROTO_INVALID;
- }
-
+ proto_subtype = qdf_nbuf_get_arp_subtype(skb);
DPTRACE(qdf_dp_trace_proto_pkt(QDF_DP_TRACE_ARP_PACKET_RECORD,
session_id, (skb->data + QDF_NBUF_SRC_MAC_OFFSET),
(skb->data + QDF_NBUF_DEST_MAC_OFFSET),