Browse Source

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
Varsha Mishra 7 years ago
parent
commit
d385dbe43d
3 changed files with 29 additions and 0 deletions
  1. 15 0
      qdf/inc/qdf_nbuf.h
  2. 1 0
      qdf/linux/src/i_qdf_nbuf.h
  3. 13 0
      qdf/linux/src/qdf_nbuf.c

+ 15 - 0
qdf/inc/qdf_nbuf.h

@@ -2300,6 +2300,21 @@ bool qdf_nbuf_data_is_ipv6_tcp_pkt(uint8_t *data)
 	return __qdf_nbuf_data_is_ipv6_tcp_pkt(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

+ 1 - 0
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);

+ 13 - 0
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)