qcacmn: Populate MU-MIMO user pos and mu group id

populate TX OFDMA and TX MU MIMO information from
user rate tlv and display the same in fc_peer_stats.

Change-Id: If1dab15bbdf391fba00a701abd6024c420d1d8f7
This commit is contained in:
nobelj
2018-08-07 19:36:47 -07:00
committed by nshrivas
parent 66ae9bef51
commit 4e9d51f914
4 changed files with 120 additions and 3 deletions

View File

@@ -147,6 +147,44 @@ static void dp_tx_stats_update(struct dp_soc *soc, struct dp_peer *peer,
if (soc->process_tx_status)
return;
DP_STATS_INC(peer, tx.transmit_type[ppdu->ppdu_type], 1);
if (ppdu->mu_group_id <= MAX_MU_GROUP_ID && ppdu->ppdu_type != SU_TX) {
if (unlikely(!(ppdu->mu_group_id & (MAX_MU_GROUP_ID - 1))))
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"mu_group_id out of bound!!\n");
else
DP_STATS_UPD(peer, tx.mu_group_id[ppdu->mu_group_id],
(ppdu->user_pos + 1));
}
if (ppdu->ppdu_type == MUMIMO_TX ||
ppdu->ppdu_type == MUMIMO_OFDMA_TX) {
DP_STATS_UPD(peer, tx.ru_tones, ppdu->ru_tones);
DP_STATS_UPD(peer, tx.ru_start, ppdu->ru_start);
switch (ppdu->ru_tones) {
case RU_26:
DP_STATS_INC(peer, tx.ru_loc[0], 1);
break;
case RU_52:
DP_STATS_INC(peer, tx.ru_loc[1], 1);
break;
case RU_106:
DP_STATS_INC(peer, tx.ru_loc[2], 1);
break;
case RU_242:
DP_STATS_INC(peer, tx.ru_loc[3], 1);
break;
case RU_484:
DP_STATS_INC(peer, tx.ru_loc[4], 1);
break;
case RU_996:
DP_STATS_INC(peer, tx.ru_loc[5], 1);
break;
}
}
DP_STATS_INC(peer, tx.transmit_type[ppdu->ppdu_type], 1);
DP_STATS_INC_PKT(peer, tx.comp_pkt,
num_msdu, (ppdu->success_bytes +
ppdu->retry_bytes + ppdu->failed_bytes));
@@ -1889,8 +1927,17 @@ static void dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
ppdu_user_desc->tid =
HTT_PPDU_STATS_USER_RATE_TLV_TID_NUM_GET(*tag_buf);
tag_buf += 2;
tag_buf += 1;
ppdu_user_desc->user_pos =
HTT_PPDU_STATS_USER_RATE_TLV_USER_POS_GET(*tag_buf);
ppdu_user_desc->mu_group_id =
HTT_PPDU_STATS_USER_RATE_TLV_MU_GROUPID_GET(*tag_buf);
tag_buf += 1;
ppdu_user_desc->ru_start =
HTT_PPDU_STATS_USER_RATE_TLV_RU_START_GET(*tag_buf);
ppdu_user_desc->ru_tones =
(HTT_PPDU_STATS_USER_RATE_TLV_RU_END_GET(*tag_buf) -
HTT_PPDU_STATS_USER_RATE_TLV_RU_START_GET(*tag_buf)) + 1;