diff options
author | Varsha Mishra <varsham@codeaurora.org> | 2018-02-07 19:32:08 +0530 |
---|---|---|
committer | snandini <snandini@codeaurora.org> | 2018-02-08 14:13:14 -0800 |
commit | d385dbe43d05260092dbb6fcb70078671333b16a (patch) | |
tree | 6efdb6104eddb078959e16978fa04b458050c3f0 /qdf | |
parent | e460c52c3fd0151fd31c2025d0340e712cd81197 (diff) | |
download | qca-wfi-host-cmn-d385dbe43d05260092dbb6fcb70078671333b16a.tar.gz |
qcacmn: Add QDF API to find packet type
Add qdf API to know whether packet is broadcast or not
CRs-Fixed: 2125569
Change-Id: If91685ae7b72c6ce52426648e9e01cba92fee86e
Diffstat (limited to 'qdf')
-rw-r--r-- | qdf/inc/qdf_nbuf.h | 15 | ||||
-rw-r--r-- | qdf/linux/src/i_qdf_nbuf.h | 1 | ||||
-rw-r--r-- | qdf/linux/src/qdf_nbuf.c | 13 |
3 files changed, 29 insertions, 0 deletions
diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index 80b7beaee..64e1be37e 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -2301,6 +2301,21 @@ bool qdf_nbuf_data_is_ipv6_tcp_pkt(uint8_t *data) } /** + * qdf_nbuf_is_bcast_pkt() - check if it is broadcast packet. + * @buf: Network buffer + * + * This func. checks whether packet is broadcast or not. + * + * Return: TRUE if it is broadcast packet + * FALSE if not + */ +static inline +bool qdf_nbuf_is_bcast_pkt(qdf_nbuf_t buf) +{ + return __qdf_nbuf_is_bcast_pkt(buf); +} + +/** * qdf_invalidate_range() - invalidate virtual address range * @start: start address of the address range * @end: end address of the address range diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index 585c05b18..a65d645ff 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -644,6 +644,7 @@ bool __qdf_nbuf_data_is_ipv4_dhcp_pkt(uint8_t *data); bool __qdf_nbuf_data_is_ipv6_dhcp_pkt(uint8_t *data); bool __qdf_nbuf_data_is_ipv4_eapol_pkt(uint8_t *data); bool __qdf_nbuf_data_is_ipv4_arp_pkt(uint8_t *data); +bool __qdf_nbuf_is_bcast_pkt(__qdf_nbuf_t nbuf); enum qdf_proto_subtype __qdf_nbuf_data_get_dhcp_subtype(uint8_t *data); enum qdf_proto_subtype __qdf_nbuf_data_get_eapol_subtype(uint8_t *data); enum qdf_proto_subtype __qdf_nbuf_data_get_arp_subtype(uint8_t *data); diff --git a/qdf/linux/src/qdf_nbuf.c b/qdf/linux/src/qdf_nbuf.c index f9a162745..803ee312e 100644 --- a/qdf/linux/src/qdf_nbuf.c +++ b/qdf/linux/src/qdf_nbuf.c @@ -1691,6 +1691,19 @@ bool __qdf_nbuf_data_is_ipv6_tcp_pkt(uint8_t *data) return false; } +/** + * __qdf_nbuf_is_bcast_pkt() - is destination address broadcast + * @nbuf - sk buff + * + * Return: true if packet is broadcast + * false otherwise + */ +bool __qdf_nbuf_is_bcast_pkt(qdf_nbuf_t nbuf) +{ + struct ethhdr *eh = (struct ethhdr *)qdf_nbuf_data(nbuf); + return qdf_is_macaddr_broadcast((struct qdf_mac_addr *)eh->h_dest); +} + #ifdef MEMORY_DEBUG #define QDF_NET_BUF_TRACK_MAX_SIZE (1024) |