qcacmn: Record PN and OOR error per peer

Record PN error and OOR error per peer and display the
error count in fc_peer_stats.

Change-Id: I694efbcaa280659f7a62f1343e26a196067cc524
This commit is contained in:
Nandha Kishore Easwaran
2021-03-11 11:26:15 +05:30
committed by snandini
parent 4737cf81c4
commit bcc7d05422
3 changed files with 20 additions and 1 deletions

View File

@@ -1048,6 +1048,8 @@ struct cdp_tx_stats {
* @mic_err: Rx MIC errors CCMP * @mic_err: Rx MIC errors CCMP
* @decrypt_err: Rx Decryption Errors CRC * @decrypt_err: Rx Decryption Errors CRC
* @fcserr: rx MIC check failed (CCMP) * @fcserr: rx MIC check failed (CCMP)
* @pn_err: pn check failed
* @oor_err: Rx OOR errors
* @wme_ac_type[WME_AC_MAX]: Wireless Multimedia type Count * @wme_ac_type[WME_AC_MAX]: Wireless Multimedia type Count
* @reception_type[MAX_RECEPTION_TYPES]: Reception type os packets * @reception_type[MAX_RECEPTION_TYPES]: Reception type os packets
* @mcs_count[MAX_MCS]: mcs count * @mcs_count[MAX_MCS]: mcs count
@@ -1118,6 +1120,8 @@ struct cdp_rx_stats {
uint32_t mic_err; uint32_t mic_err;
uint32_t decrypt_err; uint32_t decrypt_err;
uint32_t fcserr; uint32_t fcserr;
uint32_t pn_err;
uint32_t oor_err;
} err; } err;
uint32_t wme_ac_type[WME_AC_MAX]; uint32_t wme_ac_type[WME_AC_MAX];

View File

@@ -2239,6 +2239,9 @@ done:
peer_id, tid); peer_id, tid);
break; break;
case HAL_REO_ERR_REGULAR_FRAME_OOR: case HAL_REO_ERR_REGULAR_FRAME_OOR:
if (peer)
DP_STATS_INC(peer,
rx.err.oor_err, 1);
if (hal_rx_msdu_end_first_msdu_get(soc->hal_soc, if (hal_rx_msdu_end_first_msdu_get(soc->hal_soc,
rx_tlv_hdr)) { rx_tlv_hdr)) {
peer_id = peer_id =
@@ -2265,6 +2268,14 @@ done:
qdf_nbuf_free(nbuf); qdf_nbuf_free(nbuf);
break; break;
case HAL_REO_ERR_PN_CHECK_FAILED:
case HAL_REO_ERR_PN_ERROR_HANDLING_FLAG_SET:
if (peer)
DP_STATS_INC(peer,
rx.err.pn_err, 1);
qdf_nbuf_free(nbuf);
break;
default: default:
dp_info_rl("Got pkt with REO ERROR: %d", dp_info_rl("Got pkt with REO ERROR: %d",
wbm_err_info.reo_err_code); wbm_err_info.reo_err_code);

View File

@@ -5779,8 +5779,12 @@ void dp_print_peer_stats(struct dp_peer *peer)
peer->stats.rx.raw.bytes); peer->stats.rx.raw.bytes);
DP_PRINT_STATS("Errors: MIC Errors = %d", DP_PRINT_STATS("Errors: MIC Errors = %d",
peer->stats.rx.err.mic_err); peer->stats.rx.err.mic_err);
DP_PRINT_STATS("Erros: Decryption Errors = %d", DP_PRINT_STATS("Errors: Decryption Errors = %d",
peer->stats.rx.err.decrypt_err); peer->stats.rx.err.decrypt_err);
DP_PRINT_STATS("Errors: PN Errors = %d",
peer->stats.rx.err.pn_err);
DP_PRINT_STATS("Errors: OOR Errors = %d",
peer->stats.rx.err.oor_err);
DP_PRINT_STATS("Msdu's Received As Part of Ampdu = %d", DP_PRINT_STATS("Msdu's Received As Part of Ampdu = %d",
peer->stats.rx.non_ampdu_cnt); peer->stats.rx.non_ampdu_cnt);
DP_PRINT_STATS("Msdu's Recived As Ampdu = %d", DP_PRINT_STATS("Msdu's Recived As Ampdu = %d",