summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaolez <gaolez@codeaurora.org>2017-02-25 16:11:00 +0800
committerSandeep Puligilla <spuligil@codeaurora.org>2017-03-20 17:27:24 -0700
commit7e723c9c423eb24b843874e958e3c15ebf28cbfb (patch)
treeb2ea4786500482eca64ae6576dc25960c8b57eed
parentfe1549502e4d1dfabb75b8cf3bafc4e5a8d5fe19 (diff)
qcacld-3.0: Add 4 counts to link layer stats
qcacld-2.0 to qcacld-3.0 propagation Add 4 counts to link layer stats which will be retrieved along with other link layer stats fields by application to decide if channel hopping needed. Change-Id: Ic413b8ad98f1147715cf89c083aa9a77e60a2dc6 CRs-Fixed: 1094958
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.h9
-rw-r--r--core/hdd/src/wlan_hdd_stats.c14
-rw-r--r--core/mac/inc/sir_api.h4
3 files changed, 26 insertions, 1 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h
index 11da3be12dec..de3c37eb1ad9 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.h
+++ b/core/hdd/src/wlan_hdd_cfg80211.h
@@ -1787,6 +1787,15 @@ enum qca_wlan_vendor_attr_ll_stats_results {
*/
QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL,
+ /* Unsigned 32bit value */
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_SUCC_CNT,
+ /* Unsigned 32bit value */
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_FAIL_CNT,
+ /* Unsigned 32bit value */
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_SUCC_CNT,
+ /* Unsigned 32bit value */
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_FAIL_CNT,
+
/* keep last */
QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_LL_STATS_MAX =
diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c
index 68f464886868..db70990a7a88 100644
--- a/core/hdd/src/wlan_hdd_stats.c
+++ b/core/hdd/src/wlan_hdd_stats.c
@@ -459,7 +459,19 @@ static bool put_wifi_iface_stats(tpSirWifiIfaceStat pWifiIfaceStat,
pWifiIfaceStat->rx_leak_window) ||
hdd_wlan_nla_put_u64(vendor_event,
QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_AVERAGE_TSF_OFFSET,
- average_tsf_offset)) {
+ average_tsf_offset) ||
+ nla_put_u32(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_SUCC_CNT,
+ pWifiIfaceStat->rts_succ_cnt) ||
+ nla_put_u32(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_FAIL_CNT,
+ pWifiIfaceStat->rts_fail_cnt) ||
+ nla_put_u32(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_SUCC_CNT,
+ pWifiIfaceStat->ppdu_succ_cnt) ||
+ nla_put_u32(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_FAIL_CNT,
+ pWifiIfaceStat->ppdu_fail_cnt)) {
hdd_err("QCA_WLAN_VENDOR_ATTR put fail");
return false;
}
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 2b35b46195d3..77164e5e0fdf 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -5436,6 +5436,10 @@ typedef struct {
uint32_t num_probes_tx;
uint32_t num_beacon_miss;
+ uint32_t rts_succ_cnt;
+ uint32_t rts_fail_cnt;
+ uint32_t ppdu_succ_cnt;
+ uint32_t ppdu_fail_cnt;
/* per ac data packet statistics */
tSirWifiWmmAcStat AccessclassStats[WIFI_AC_MAX];