qcacmn: Fix mesh rx packets stats

Fixed error in flags for mesh rx packets and added versioning support.
ver1 flag setting is missing which is fixed now.

Change-Id: I3e8da3aae34b2c5bdd9679ec7277acf1215ba841
CRs-Fixed: 2071152
diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c
index abb6577..56b9f12 100644
--- a/dp/wifi3.0/dp_rx.c
+++ b/dp/wifi3.0/dp_rx.c
@@ -429,6 +429,7 @@
 	uint32_t pkt_type;
 	uint32_t nss;
 	uint32_t rate_mcs;
+	uint32_t bw;
 
 	/* fill recv mesh stats */
 	rx_info = qdf_mem_malloc(sizeof(struct mesh_recv_hdr_s));
@@ -442,6 +443,7 @@
 		return;
 	}
 
+	rx_info->rs_flags = MESH_RXHDR_VER1;
 	if (qdf_nbuf_is_chfrag_start(nbuf))
 		rx_info->rs_flags |= MESH_RX_FIRST_MSDU;
 
@@ -451,15 +453,16 @@
 	if (hal_rx_attn_msdu_get_is_decrypted(rx_tlv_hdr)) {
 		rx_info->rs_flags |= MESH_RX_DECRYPTED;
 		rx_info->rs_keyix = hal_rx_msdu_get_keyid(rx_tlv_hdr);
-		rx_info->rs_flags |= MESH_KEY_NOTFILLED;
 	}
 
 	rx_info->rs_rssi = hal_rx_msdu_start_get_rssi(rx_tlv_hdr);
 	rx_info->rs_channel = hal_rx_msdu_start_get_freq(rx_tlv_hdr);
 	pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr);
 	rate_mcs = hal_rx_msdu_start_rate_mcs_get(rx_tlv_hdr);
+	bw = hal_rx_msdu_start_bw_get(rx_tlv_hdr);
 	nss = hal_rx_msdu_start_nss_get(rx_tlv_hdr);
-	rx_info->rs_ratephy1 = rate_mcs | (nss << 0x4) | (pkt_type << 6);
+	rx_info->rs_ratephy1 = rate_mcs | (nss << 0x8) | (pkt_type << 16) |
+				(bw << 24);
 
 	qdf_nbuf_set_fctx_type(nbuf, (void *)rx_info, CB_FTYPE_MESH_RX_INFO);
 
@@ -1271,7 +1274,8 @@
 #endif /* NAPIER_EMULATION */
 
 			if (qdf_likely(vdev->rx_decap_type ==
-						htt_cmn_pkt_type_ethernet)) {
+						htt_cmn_pkt_type_ethernet) &&
+					(qdf_likely(!vdev->mesh_vdev))) {
 				/* WDS Source Port Learning */
 				if (qdf_likely(vdev->wds_enabled))
 					dp_rx_wds_srcport_learn(soc,