qcacmn: Add qdf utility functions for ARP debug stats

Implement QDF utility functions to operate on ARP data packet to
support ARP debug stats feature.

Change-Id: Idce70799bd3698dc8a8ecd8cfc8ef7d9bf1f5764
CRs-Fixed: 2019789
This commit is contained in:
Sravan Kumar Kairam
2017-03-15 15:43:44 +05:30
committed by snandini
부모 5b96a30800
커밋 68a824774c
3개의 변경된 파일141개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@@ -92,6 +92,13 @@
#define EAPOL_M3_BIT_MASK 0x8013
#define EAPOL_M4_BIT_MASK 0x0003
/* ARP Related MASK */
#define QDF_NBUF_PKT_ARP_OPCODE_OFFSET 20
#define QDF_NBUF_PKT_ARPOP_REQ 1
#define QDF_NBUF_PKT_ARPOP_REPLY 2
#define QDF_NBUF_PKT_ARP_SRC_IP_OFFSET 28
#define QDF_NBUF_PKT_ARP_TGT_IP_OFFSET 38
/* Tracked Packet types */
#define QDF_NBUF_TX_PKT_INVALID 0
#define QDF_NBUF_TX_PKT_DATA_TRACK 1
@@ -2068,6 +2075,58 @@ bool qdf_nbuf_data_is_ipv4_arp_pkt(uint8_t *data)
return __qdf_nbuf_data_is_ipv4_arp_pkt(data);
}
/**
* qdf_nbuf_data_is_arp_req() - check if ARP packet is request.
* @buf: buffer
*
* This func. checks whether it is a ARP request or not.
*
* Return: true if it is a ARP request or FALSE if not
*/
static inline
bool qdf_nbuf_data_is_arp_req(qdf_nbuf_t buf)
{
return __qdf_nbuf_data_is_arp_req(qdf_nbuf_data(buf));
}
/**
* qdf_nbuf_data_is_arp_rsp() - check if ARP packet is response.
* @buf: buffer
*
* This func. checks whether it is a ARP response or not.
*
* Return: true if it is a ARP response or FALSE if not
*/
static inline
bool qdf_nbuf_data_is_arp_rsp(qdf_nbuf_t buf)
{
return __qdf_nbuf_data_is_arp_rsp(qdf_nbuf_data(buf));
}
/**
* qdf_nbuf_data_get_arp_src_ip() - get ARP packet source IP gateway.
* @buf: buffer
*
* Return: ARP packet source IP value.
*/
static inline
uint32_t qdf_nbuf_get_arp_src_ip(qdf_nbuf_t buf)
{
return __qdf_nbuf_get_arp_src_ip(qdf_nbuf_data(buf));
}
/**
* qdf_nbuf_data_get_arp_tgt_ip() - get ARP packet target IP gateway.
* @buf: buffer
*
* Return: ARP packet target IP value.
*/
static inline
uint32_t qdf_nbuf_get_arp_tgt_ip(qdf_nbuf_t buf)
{
return __qdf_nbuf_get_arp_tgt_ip(qdf_nbuf_data(buf));
}
/**
* qdf_nbuf_is_ipv6_pkt() - check if it is IPV6 packet.
* @buf: Pointer to IPV6 packet buffer