| /** |
| Copyright (c) 2008 - 2013 Quantenna Communications Inc |
| All Rights Reserved |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program; if not, write to the Free Software |
| Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| |
| **/ |
| #ifndef _QDRV_MUC_STATS_H |
| #define _QDRV_MUC_STATS_H |
| |
| #include <net80211/ieee80211_var.h> |
| #include "qdrv_mac.h" |
| |
| /* enum disconnects the actual display for a particular line of phy stats from the phy stats mode */ |
| enum qdrv_muc_stats_display_choice { |
| QDRV_MUC_STATS_SHOW_RSSI = 0, |
| QDRV_MUC_STATS_SHOW_RCPI, |
| QDRV_MUC_STATS_SHOW_EVM, |
| }; |
| |
| enum qdrv_muc_stats_display_choice qdrv_muc_stats_get_display_choice(const struct qtn_stats *stats, |
| const struct ieee80211com *ic); |
| struct qtn_stats *qtn_muc_stats_get_addr_latest_stats(struct qdrv_mac *mac, |
| const struct ieee80211com *ic, |
| int required_phy_stat_mode); |
| int qdrv_muc_stats_printlog(const struct qdrv_cb *data, |
| struct qdrv_mac *mac, |
| struct ieee80211com *ic, |
| int argc, |
| char **argv); |
| int qdrv_muc_get_noise(struct qdrv_mac *mac, const struct ieee80211com *ic); |
| int qdrv_muc_get_rssi_by_chain(struct qdrv_mac *mac, |
| const struct ieee80211com *ic, |
| unsigned int rf_chain); |
| u_int32_t qdrv_muc_get_rx_gain_fields(struct qdrv_mac *mac, const struct ieee80211com *ic); |
| int qdrv_muc_get_phy_stat(struct qdrv_mac *mac, |
| const struct ieee80211com *ic, |
| const char *name_of_stat, |
| const unsigned int array_index, |
| int *stat_value); |
| int qdrv_muc_stats_rxtx_phy_rate(const struct ieee80211_node *, const int is_rx, |
| uint8_t *nss, uint8_t *mcs, uint32_t * phy_rate); |
| int qdrv_muc_stats_rssi(const struct ieee80211_node *); |
| int qdrv_muc_stats_smoothed_rssi(const struct ieee80211_node *ni); |
| int qdrv_muc_stats_snr(const struct ieee80211_node *); |
| int qdrv_muc_stats_max_queue(const struct ieee80211_node *); |
| u_int32_t qdrv_muc_stats_mcs_to_phyrate(u_int8_t bw, u_int8_t sgi, u_int8_t mcs, |
| uint8_t nss, uint8_t vht); |
| ssize_t qdrv_muc_get_size_rssi_phy_stats(void); |
| u_int32_t qdrv_muc_stats_tx_failed(const struct ieee80211_node *); |
| int qdrv_muc_get_last_phy_stats(struct qdrv_mac *mac, struct ieee80211com *ic, |
| struct ieee80211_phy_stats *ps, uint8_t all_stats); |
| int qdrv_muc_stats_hw_noise(const struct ieee80211_node *ni); |
| |
| u_int32_t qdrv_muc_stats_tx_airtime(const struct ieee80211_node *); |
| u_int32_t qdrv_muc_stats_tx_accum_airtime(const struct ieee80211_node *); |
| u_int32_t qdrv_muc_stats_rx_airtime(const struct ieee80211_node *); |
| u_int32_t qdrv_muc_stats_rx_accum_airtime(const struct ieee80211_node *); |
| int qdrv_muc_get_last_cca_stats(struct qdrv_mac *mac, struct ieee80211com *ic, struct qtn_exp_cca_stats *cs); |
| #endif |