aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ath/ath_rate/sample
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2011-11-08 14:46:03 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2011-11-08 14:46:03 +0000
commit87acb7d5123dff8c309eab8307d46f36ee6ce5a8 (patch)
tree37ab59bf0cc722690a354f42d690e0e27bdc3fc1 /sys/dev/ath/ath_rate/sample
parent9848863e753dd80c2f4ff7bf5b5a4830fea16d34 (diff)
Notes
Diffstat (limited to 'sys/dev/ath/ath_rate/sample')
-rw-r--r--sys/dev/ath/ath_rate/sample/sample.c16
-rw-r--r--sys/dev/ath/ath_rate/sample/sample.h6
2 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/ath/ath_rate/sample/sample.c b/sys/dev/ath/ath_rate/sample/sample.c
index 27bb98cf8739..028f69a0c2d3 100644
--- a/sys/dev/ath/ath_rate/sample/sample.c
+++ b/sys/dev/ath/ath_rate/sample/sample.c
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
*/
#include "opt_inet.h"
#include "opt_wlan.h"
+#include "opt_ah.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -146,6 +147,8 @@ ath_rate_node_cleanup(struct ath_softc *sc, struct ath_node *an)
static int
dot11rate(const HAL_RATE_TABLE *rt, int rix)
{
+ if (rix < 0)
+ return -1;
return rt->info[rix].phy == IEEE80211_T_HT ?
rt->info[rix].dot11Rate : (rt->info[rix].dot11Rate & IEEE80211_RATE_VAL) / 2;
}
@@ -153,6 +156,8 @@ dot11rate(const HAL_RATE_TABLE *rt, int rix)
static const char *
dot11rate_label(const HAL_RATE_TABLE *rt, int rix)
{
+ if (rix < 0)
+ return "";
return rt->info[rix].phy == IEEE80211_T_HT ? "MCS" : "Mb ";
}
@@ -903,13 +908,14 @@ sample_stats(void *arg, struct ieee80211_node *ni)
for (y = 0; y < NUM_PACKET_SIZE_BINS; y++) {
if (sn->stats[y][rix].total_packets == 0)
continue;
- printf("[%2u %s:%4u] %8d:%-8d (%3d%%) T %8d F %4d avg %5u last %u\n",
+ printf("[%2u %s:%4u] %8ju:%-8ju (%3d%%) T %8ju F %4d avg %5u last %u\n",
dot11rate(rt, rix), dot11rate_label(rt, rix),
bin_to_size(y),
- sn->stats[y][rix].total_packets,
- sn->stats[y][rix].packets_acked,
- (100*sn->stats[y][rix].packets_acked)/sn->stats[y][rix].total_packets,
- sn->stats[y][rix].tries,
+ (uintmax_t) sn->stats[y][rix].total_packets,
+ (uintmax_t) sn->stats[y][rix].packets_acked,
+ (int) ((sn->stats[y][rix].packets_acked * 100ULL) /
+ sn->stats[y][rix].total_packets),
+ (uintmax_t) sn->stats[y][rix].tries,
sn->stats[y][rix].successive_failures,
sn->stats[y][rix].average_tx_time,
ticks - sn->stats[y][rix].last_tx);
diff --git a/sys/dev/ath/ath_rate/sample/sample.h b/sys/dev/ath/ath_rate/sample/sample.h
index b39e0be71646..1ec13b45d213 100644
--- a/sys/dev/ath/ath_rate/sample/sample.h
+++ b/sys/dev/ath/ath_rate/sample/sample.h
@@ -57,9 +57,9 @@ struct sample_softc {
struct rate_stats {
unsigned average_tx_time;
int successive_failures;
- int tries;
- int total_packets;
- int packets_acked;
+ uint64_t tries;
+ uint64_t total_packets; /* pkts total since assoc */
+ uint64_t packets_acked; /* pkts acked since assoc */
unsigned perfect_tx_time; /* transmit time for 0 retries */
int last_tx;
};