qcacmn: Add control frame stats accounting support

Add control frame stats accounting support.
Accumulate both per peer BAR and NDPA counts in Tx and Rx per PPDU stats
path. Accumulate per peer RTS success and failure count only in per PPDU
Tx stats path.

Change-Id: I78fb3546cd831559e208a7330feb2eb67b9a28de
CRs-Fixed: 3313435
This commit is contained in:
Subrat Mishra
2022-10-14 16:37:57 +05:30
committed by Madan Koyyalamudi
parent abbf1c968a
commit 92fc6fa7c1
12 changed files with 210 additions and 0 deletions

View File

@@ -630,6 +630,30 @@ hal_update_frame_type_cnt(uint8_t *rx_mpdu_start,
}
#endif
#ifdef WLAN_SUPPORT_CTRL_FRAME_STATS
static inline void
hal_update_rx_ctrl_frame_stats(struct hal_rx_ppdu_info *ppdu_info,
uint32_t user_id)
{
uint16_t fc = ppdu_info->nac_info.frame_control;
if (HAL_RX_GET_FRAME_CTRL_TYPE(fc) == HAL_RX_FRAME_CTRL_TYPE_CTRL) {
if ((fc & QDF_IEEE80211_FC0_SUBTYPE_MASK) ==
QDF_IEEE80211_FC0_SUBTYPE_VHT_NDP_AN)
ppdu_info->ctrl_frm_info[user_id].ndpa = 1;
if ((fc & QDF_IEEE80211_FC0_SUBTYPE_MASK) ==
QDF_IEEE80211_FC0_SUBTYPE_BAR)
ppdu_info->ctrl_frm_info[user_id].bar = 1;
}
}
#else
static inline void
hal_update_rx_ctrl_frame_stats(struct hal_rx_ppdu_info *ppdu_info,
uint32_t user_id)
{
}
#endif /* WLAN_SUPPORT_CTRL_FRAME_STATS */
/**
* hal_rx_status_get_tlv_info() - process receive info TLV
* @rx_tlv_hdr: pointer to TLV header
@@ -1662,6 +1686,8 @@ hal_rx_status_get_tlv_info_generic_li(void *rx_tlv_hdr, void *ppduinfo,
ppdu_info->rx_user_status[user_id].sw_peer_id =
HAL_RX_GET_SW_PEER_ID(rx_mpdu_start);
hal_update_rx_ctrl_frame_stats(ppdu_info, user_id);
if (ppdu_info->sw_frame_group_id ==
HAL_MPDU_SW_FRAME_GROUP_NULL_DATA) {
ppdu_info->rx_status.frame_control_info_valid =