summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaolez <gaolez@codeaurora.org>2016-11-02 20:10:01 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-29 23:12:23 -0800
commit191da661ad9b7244ab7028313eeab2ab8fdc5c9f (patch)
treef9518a4bf9111946c08624b06c0eb0f3fef4044d
parent9a575be6de2c73b322cafa1a27c22d9c38e41fbf (diff)
qcacld-2.0: Add 4 counts to link layer stats
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/inc/wlan_hdd_cfg80211.h9
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c14
-rw-r--r--CORE/MAC/inc/sirApi.h4
3 files changed, 26 insertions, 1 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index 44f846c711e6..4d2044161715 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -1143,6 +1143,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_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 54c5e54f006d..b3c265c63ac5 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -5792,7 +5792,19 @@ static bool put_wifi_iface_stats(tpSirWifiIfaceStat pWifiIfaceStat,
pWifiIfaceStat->rx_leak_window) ||
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))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("QCA_WLAN_VENDOR_ATTR put fail"));
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index fd0adb2ac148..65012ef490b5 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -6259,6 +6259,10 @@ typedef struct
time driver waits before shutting down the radio or switching the channel and after receiving an ACK for
a data frame with PM bit set) */
tANI_U32 rx_leak_window;
+ 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];
} tSirWifiIfaceStat, *tpSirWifiIfaceStat;