diff options
author | Amarnath Hullur Subramanyam <amarnath@codeaurora.org> | 2015-08-13 17:34:37 +0530 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2015-08-19 00:34:32 -0700 |
commit | 6c670f1cb4270f00e00b414a2c7cd20b878d8356 (patch) | |
tree | a9e9590a133df02f8321c384cd58cdd67f3ea76e /qcwcn/wifi_hal/wifilogger_diag.cpp | |
parent | d5efb24a0e865b1cc8f43913ad80565cf42f477e (diff) | |
download | wlan-6c670f1cb4270f00e00b414a2c7cd20b878d8356.tar.gz |
WiFi-HAL: Populate stats of previous AMPDU if first MPDU misses
Per packet stats module collects below stats from first MPDU of
the AMPDU.
1. RxMCS
2. last_transmit_rate
3. rssi
4. tid
But the first MPDU may not be received by
hardware/corrupted sometimes. Populate the cached stats
from first MPDU of the previous AMPDU in such cases.
Don't parse Rx packets if the REORDER flag is set as parsing of
these packets may show duplicate entries in the stats.
Change-Id: I8cf78f42e055b0c22d123f21c91f2c204087afe0
Diffstat (limited to 'qcwcn/wifi_hal/wifilogger_diag.cpp')
-rw-r--r-- | qcwcn/wifi_hal/wifilogger_diag.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/qcwcn/wifi_hal/wifilogger_diag.cpp b/qcwcn/wifi_hal/wifilogger_diag.cpp index b8eafdd..99a7e26 100644 --- a/qcwcn/wifi_hal/wifilogger_diag.cpp +++ b/qcwcn/wifi_hal/wifilogger_diag.cpp @@ -1246,7 +1246,6 @@ static wifi_error populate_rx_aggr_stats(hal_info *info) + pRingBufferEntry->entry_size); } memset(info->rx_aggr_pkts, 0, info->rx_buf_size_occupied); - memset(&info->aggr_stats, 0, sizeof(rx_aggr_stats)); info->rx_buf_size_occupied = 0; return WIFI_SUCCESS; @@ -1324,6 +1323,9 @@ static wifi_error parse_rx_stats(hal_info *info, u8 *buf, u16 size) if (rx_stats_rcvd->attention.first_mpdu) { MCS *mcs = &info->aggr_stats.RxMCS; u32 ht_vht_sig; + + /* Flush the cached stats as this is the first MPDU. */ + memset(&info->aggr_stats, 0, sizeof(rx_aggr_stats)); if (rx_stats_rcvd->ppdu_start.preamble_type == PREAMBLE_L_SIG_RATE) { if (rx_stats_rcvd->ppdu_start.l_sig_rate_select) mcs->mcs_s.preamble = WL_PREAMBLE_OFDM; |