ソースを参照

qcacmn: Increment pkt type for WKK

Define DOT11_BE as per Rx tlv
Increment pkt type for WKK

CRs-Fixed: 3121279
Change-Id: Id4bf93e5dcda08cc7fccfe3f8f06b00e5b29d4e3
aloksing 3 年 前
コミット
482fba652b

+ 2 - 0
dp/wifi3.0/monitor/1.0/dp_mon_1.0.c

@@ -58,6 +58,8 @@ void
 dp_mon_populate_ppdu_info_1_0(struct hal_rx_ppdu_info *hal_ppdu_info,
 			      struct cdp_rx_indication_ppdu *ppdu)
 {
+	ppdu->u.preamble = hal_ppdu_info->rx_status.preamble_type;
+	ppdu->u.bw = hal_ppdu_info->rx_status.bw;
 	ppdu->punc_bw = 0;
 }
 

+ 26 - 6
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

@@ -238,41 +238,50 @@ void dp_rx_mon_stats_update_2_0(struct dp_mon_peer *mon_peer,
 				struct cdp_rx_stats_ppdu_user *ppdu_user)
 {
 	uint8_t mcs, preamble, ppdu_type;
+	uint32_t num_msdu;
 
 	preamble = ppdu->u.preamble;
 	ppdu_type = ppdu->u.ppdu_type;
+	num_msdu = ppdu_user->num_msdu;
+
 	if (ppdu_type == HAL_RX_TYPE_SU)
 		mcs = ppdu->u.mcs;
 	else
 		mcs = ppdu_user->mcs;
 
 	DP_STATS_INC(mon_peer, rx.mpdu_retry_cnt, ppdu_user->mpdu_retries);
+	DP_STATS_INCC(mon_peer,
+		      rx.pkt_type[preamble].mcs_count[MAX_MCS - 1], num_msdu,
+		      ((mcs >= MAX_MCS_11BE) && (preamble == DOT11_BE)));
+	DP_STATS_INCC(mon_peer,
+		      rx.pkt_type[preamble].mcs_count[mcs], num_msdu,
+		      ((mcs < MAX_MCS_11BE) && (preamble == DOT11_BE)));
 	DP_STATS_INCC(mon_peer,
 		      rx.su_be_ppdu_cnt.mcs_count[MAX_MCS - 1], 1,
-		      ((mcs >= (MAX_MCS - 1)) && (preamble == DOT11_BE) &&
+		      ((mcs >= (MAX_MCS_11BE)) && (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_SU)));
 	DP_STATS_INCC(mon_peer,
 		      rx.su_be_ppdu_cnt.mcs_count[mcs], 1,
-		      ((mcs < (MAX_MCS - 1)) && (preamble == DOT11_BE) &&
+		      ((mcs < (MAX_MCS_11BE)) && (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_SU)));
 	DP_STATS_INCC(mon_peer,
 		      rx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].mcs_count[MAX_MCS - 1],
-		      1, ((mcs >= (MAX_MCS - 1)) &&
+		      1, ((mcs >= (MAX_MCS_11BE)) &&
 		      (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
 	DP_STATS_INCC(mon_peer,
 		      rx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].mcs_count[mcs],
-		      1, ((mcs < (MAX_MCS - 1)) &&
+		      1, ((mcs < (MAX_MCS_11BE)) &&
 		      (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
 	DP_STATS_INCC(mon_peer,
 		      rx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].mcs_count[MAX_MCS - 1],
-		      1, ((mcs >= (MAX_MCS - 1)) &&
+		      1, ((mcs >= (MAX_MCS_11BE)) &&
 		      (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_MU_MIMO)));
 	DP_STATS_INCC(mon_peer,
 		      rx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].mcs_count[mcs],
-		      1, ((mcs < (MAX_MCS - 1)) &&
+		      1, ((mcs < (MAX_MCS_11BE)) &&
 		      (preamble == DOT11_BE) &&
 		      (ppdu_type == HAL_RX_TYPE_MU_MIMO)));
 }
@@ -281,6 +290,17 @@ void
 dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
 				 struct cdp_rx_indication_ppdu *ppdu)
 {
+	/* Align bw value as per host data structures */
+	if (hal_ppdu_info->rx_status.bw == HAL_FULL_RX_BW_320)
+		ppdu->u.bw = CMN_BW_320MHZ;
+	else
+		ppdu->u.bw = hal_ppdu_info->rx_status.bw;
+	/* Align preamble value as per host data structures */
+	if (hal_ppdu_info->rx_status.preamble_type == HAL_RX_PKT_TYPE_11BE)
+		ppdu->u.preamble = DOT11_BE;
+	else
+		ppdu->u.preamble = hal_ppdu_info->rx_status.preamble_type;
+
 	ppdu->punc_bw = hal_ppdu_info->rx_status.punctured_bw;
 }
 #else

+ 10 - 12
dp/wifi3.0/monitor/dp_rx_mon.c

@@ -430,7 +430,7 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev,
 			rx_stats_peruser->other_msdu_count;
 
 		rx_stats_peruser->preamble_type =
-			rx_user_status->preamble_type;
+				cdp_rx_ppdu->u.preamble;
 		rx_stats_peruser->mpdu_cnt_fcs_ok =
 			rx_user_status->mpdu_cnt_fcs_ok;
 		rx_stats_peruser->mpdu_cnt_fcs_err =
@@ -532,7 +532,6 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 	cdp_rx_ppdu->tcp_msdu_count = ppdu_info->rx_status.tcp_msdu_count;
 	cdp_rx_ppdu->udp_msdu_count = ppdu_info->rx_status.udp_msdu_count;
 	cdp_rx_ppdu->other_msdu_count = ppdu_info->rx_status.other_msdu_count;
-	cdp_rx_ppdu->u.preamble = ppdu_info->rx_status.preamble_type;
 	/* num mpdu is consolidated and added together in num user loop */
 	cdp_rx_ppdu->num_mpdu = ppdu_info->com_info.mpdu_cnt_fcs_ok;
 	/* num msdu is consolidated and added together in num user loop */
@@ -568,7 +567,6 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 	cdp_rx_ppdu->ppdu_id = ppdu_info->com_info.ppdu_id;
 	cdp_rx_ppdu->length = ppdu_info->rx_status.ppdu_len;
 	cdp_rx_ppdu->duration = ppdu_info->rx_status.duration;
-	cdp_rx_ppdu->u.bw = ppdu_info->rx_status.bw;
 	cdp_rx_ppdu->u.nss = ppdu_info->rx_status.nss;
 	cdp_rx_ppdu->u.mcs = ppdu_info->rx_status.mcs;
 	if ((ppdu_info->rx_status.sgi == VHT_SGI_NYSM) &&
@@ -777,7 +775,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
 {
 	struct dp_soc *soc = NULL;
 	uint8_t mcs, preamble, ac = 0, nss, ppdu_type;
-	uint16_t num_msdu;
+	uint32_t num_msdu;
 	uint8_t pkt_bw_offset;
 	struct dp_peer *peer;
 	struct dp_mon_peer *mon_peer;
@@ -912,36 +910,36 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
 			((mcs < MAX_MCS_11AC) && (preamble == DOT11_AC)));
 		DP_STATS_INCC(mon_peer,
 			rx.pkt_type[preamble].mcs_count[MAX_MCS - 1], num_msdu,
-			((mcs >= (MAX_MCS - 1)) && (preamble == DOT11_AX)));
+			((mcs >= (MAX_MCS_11AX)) && (preamble == DOT11_AX)));
 		DP_STATS_INCC(mon_peer,
 			rx.pkt_type[preamble].mcs_count[mcs], num_msdu,
-			((mcs < (MAX_MCS - 1)) && (preamble == DOT11_AX)));
+			((mcs < (MAX_MCS_11AX)) && (preamble == DOT11_AX)));
 		DP_STATS_INCC(mon_peer,
 			rx.su_ax_ppdu_cnt.mcs_count[MAX_MCS - 1], 1,
-			((mcs >= (MAX_MCS - 1)) && (preamble == DOT11_AX) &&
+			((mcs >= (MAX_MCS_11AX)) && (preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_SU)));
 		DP_STATS_INCC(mon_peer,
 			rx.su_ax_ppdu_cnt.mcs_count[mcs], 1,
-			((mcs < (MAX_MCS - 1)) && (preamble == DOT11_AX) &&
+			((mcs < (MAX_MCS_11AX)) && (preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_SU)));
 		DP_STATS_INCC(mon_peer,
 			rx.rx_mu[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[MAX_MCS - 1],
-			1, ((mcs >= (MAX_MCS - 1)) &&
+			1, ((mcs >= (MAX_MCS_11AX)) &&
 			(preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
 		DP_STATS_INCC(mon_peer,
 			rx.rx_mu[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[mcs],
-			1, ((mcs < (MAX_MCS - 1)) &&
+			1, ((mcs < (MAX_MCS_11AX)) &&
 			(preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
 		DP_STATS_INCC(mon_peer,
 			rx.rx_mu[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[MAX_MCS - 1],
-			1, ((mcs >= (MAX_MCS - 1)) &&
+			1, ((mcs >= (MAX_MCS_11AX)) &&
 			(preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_MU_MIMO)));
 		DP_STATS_INCC(mon_peer,
 			rx.rx_mu[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[mcs],
-			1, ((mcs < (MAX_MCS - 1)) &&
+			1, ((mcs < (MAX_MCS_11AX)) &&
 			(preamble == DOT11_AX) &&
 			(ppdu_type == HAL_RX_TYPE_MU_MIMO)));
 

+ 13 - 0
hal/wifi3.0/hal_api_mon.h

@@ -85,6 +85,9 @@
 #define HAL_RX_PKT_TYPE_11N	2
 #define HAL_RX_PKT_TYPE_11AC	3
 #define HAL_RX_PKT_TYPE_11AX	4
+#ifdef WLAN_FEATURE_11BE
+#define HAL_RX_PKT_TYPE_11BE	6
+#endif
 
 #define HAL_RX_RECEPTION_TYPE_SU	0
 #define HAL_RX_RECEPTION_TYPE_MU_MIMO	1
@@ -453,12 +456,22 @@ enum {
 	HAL_SGI_3_2_US,
 };
 
+#ifdef WLAN_FEATURE_11BE
 enum {
 	HAL_FULL_RX_BW_20,
 	HAL_FULL_RX_BW_40,
 	HAL_FULL_RX_BW_80,
 	HAL_FULL_RX_BW_160,
+	HAL_FULL_RX_BW_320,
 };
+#else
+enum {
+	HAL_FULL_RX_BW_20,
+	HAL_FULL_RX_BW_40,
+	HAL_FULL_RX_BW_80,
+	HAL_FULL_RX_BW_160,
+};
+#endif
 
 enum {
 	HAL_RX_TYPE_SU,