svn commit: r234018 - head/sys/net80211
Adrian Chadd
adrian at FreeBSD.org
Sun Apr 8 04:51:26 UTC 2012
Author: adrian
Date: Sun Apr 8 04:51:25 2012
New Revision: 234018
URL: http://svn.freebsd.org/changeset/base/234018
Log:
Add some statistics to track BAR TX.
Modified:
head/sys/net80211/ieee80211_ht.c
head/sys/net80211/ieee80211_ioctl.h
Modified: head/sys/net80211/ieee80211_ht.c
==============================================================================
--- head/sys/net80211/ieee80211_ht.c Sun Apr 8 04:48:59 2012 (r234017)
+++ head/sys/net80211/ieee80211_ht.c Sun Apr 8 04:51:25 2012 (r234018)
@@ -2182,10 +2182,13 @@ bar_timeout(void *arg)
if ((tap->txa_flags & IEEE80211_AGGR_BARPEND) == 0)
return;
/* XXX ? */
- if (tap->txa_attempts >= ieee80211_bar_maxtries)
+ if (tap->txa_attempts >= ieee80211_bar_maxtries) {
+ ni->ni_vap->iv_stats.is_ampdu_bar_tx_fail++;
ieee80211_ampdu_stop(ni, tap, IEEE80211_REASON_TIMEOUT);
- else
+ } else {
+ ni->ni_vap->iv_stats.is_ampdu_bar_tx_retry++;
ieee80211_send_bar(ni, tap, tap->txa_seqpending);
+ }
}
static void
@@ -2210,6 +2213,7 @@ bar_tx_complete(struct ieee80211_node *n
__func__, tap->txa_ac, tap->txa_flags,
callout_pending(&tap->txa_timer), status);
+ ni->ni_vap->iv_stats.is_ampdu_bar_tx++;
/* XXX locking */
if ((tap->txa_flags & IEEE80211_AGGR_BARPEND) &&
callout_pending(&tap->txa_timer)) {
@@ -2325,6 +2329,7 @@ ieee80211_send_bar(struct ieee80211_node
if (ret != 0) {
/* xmit failed, clear state flag */
tap->txa_flags &= ~IEEE80211_AGGR_BARPEND;
+ vap->iv_stats.is_ampdu_bar_tx_fail++;
return ret;
}
/* XXX hack against tx complete happening before timer is started */
@@ -2332,6 +2337,7 @@ ieee80211_send_bar(struct ieee80211_node
bar_start_timer(tap);
return 0;
bad:
+ vap->iv_stats.is_ampdu_bar_tx_fail++;
ieee80211_free_node(ni);
return ret;
#undef senderr
Modified: head/sys/net80211/ieee80211_ioctl.h
==============================================================================
--- head/sys/net80211/ieee80211_ioctl.h Sun Apr 8 04:48:59 2012 (r234017)
+++ head/sys/net80211/ieee80211_ioctl.h Sun Apr 8 04:51:25 2012 (r234018)
@@ -242,8 +242,11 @@ struct ieee80211_stats {
uint32_t is_rx_badalign; /* dropped 'cuz misaligned */
uint32_t is_hwmp_proxy; /* PREP for proxy route */
uint32_t is_beacon_bad; /* Number of bad beacons */
-
- uint32_t is_spare[10];
+ uint32_t is_ampdu_bar_tx; /* A-MPDU BAR frames TXed */
+ uint32_t is_ampdu_bar_tx_retry; /* A-MPDU BAR frames TX rtry */
+ uint32_t is_ampdu_bar_tx_fail; /* A-MPDU BAR frames TX fail */
+
+ uint32_t is_spare[7];
};
/*
More information about the svn-src-head
mailing list