summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_alq.c
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-05-11 16:44:19 +0000
committeradrian <adrian@FreeBSD.org>2011-05-11 16:44:19 +0000
commit3e01906b9da5248c8c0d1eb896b8c376fa712cb5 (patch)
tree5a49edd9db5116d8a29b41f3553416b49be0c1b9 /sys/net80211/ieee80211_alq.c
parentf436e25c59c208e30412c56aa0650dbe9121581d (diff)
downloadFreeBSD-src-3e01906b9da5248c8c0d1eb896b8c376fa712cb5.zip
FreeBSD-src-3e01906b9da5248c8c0d1eb896b8c376fa712cb5.tar.gz
net80211 alq bugfixes:
* Track number of logged operations * call alq_post() so things are logged * network order things
Diffstat (limited to 'sys/net80211/ieee80211_alq.c')
-rw-r--r--sys/net80211/ieee80211_alq.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_alq.c b/sys/net80211/ieee80211_alq.c
index 1ba996c..a01fb0f 100644
--- a/sys/net80211/ieee80211_alq.c
+++ b/sys/net80211/ieee80211_alq.c
@@ -64,7 +64,8 @@ __FBSDID("$FreeBSD$");
static struct alq *ieee80211_alq;
static int ieee80211_alq_lost;
-static char ieee80211_alq_logfile[MAXPATHLEN] = "/tmp/net80211.log";
+static int ieee80211_alq_logged;
+static char ieee80211_alq_logfile[MAXPATHLEN] = "/mnt/tmp/net80211.log";
static unsigned int ieee80211_alq_qsize = 64*1024;
static int
@@ -113,6 +114,8 @@ SYSCTL_INT(_net_wlan, OID_AUTO, alq_size, CTLFLAG_RW,
&ieee80211_alq_qsize, 0, "In-memory log size (#records)");
SYSCTL_INT(_net_wlan, OID_AUTO, alq_lost, CTLFLAG_RW,
&ieee80211_alq_lost, 0, "Debugging operations not logged");
+SYSCTL_INT(_net_wlan, OID_AUTO, alq_logged, CTLFLAG_RW,
+ &ieee80211_alq_logged, 0, "Debugging operations logged");
static struct ale *
ieee80211_alq_get(void)
@@ -122,6 +125,8 @@ ieee80211_alq_get(void)
ale = alq_get(ieee80211_alq, ALQ_NOWAIT);
if (!ale)
ieee80211_alq_lost++;
+ else
+ ieee80211_alq_logged++;
return ale;
}
@@ -131,14 +136,18 @@ ieee80211_alq_log(struct ieee80211vap *vap, uint8_t op, u_char *p, int l)
struct ale *ale;
struct ieee80211_alq_rec *r;
+ if (ieee80211_alq == NULL)
+ return;
+
ale = ieee80211_alq_get();
if (! ale)
return;
r = (struct ieee80211_alq_rec *) ale;
- r->r_timestamp = ticks;
+ r->r_timestamp = htonl(ticks);
r->r_version = 1;
- r->r_wlan = vap->iv_ifp->if_dunit;
+ r->r_wlan = htons(vap->iv_ifp->if_dunit);
r->r_op = op;
memcpy(&r->r_payload, p, MIN(l, sizeof(r->r_payload)));
+ alq_post(ieee80211_alq, ale);
}
OpenPOWER on IntegriCloud