svn commit: r188567 - in projects/vap7/tools/tools/ath: . athstats
Sam Leffler
sam at FreeBSD.org
Thu Feb 12 21:52:43 PST 2009
Author: sam
Date: Fri Feb 13 05:52:43 2009
New Revision: 188567
URL: http://svn.freebsd.org/changeset/base/188567
Log:
merge r188560: add -z option to zero driver statistics
Modified:
projects/vap7/tools/tools/ath/ (props changed)
projects/vap7/tools/tools/ath/athstats/athstats.c
projects/vap7/tools/tools/ath/athstats/athstats.h
projects/vap7/tools/tools/ath/athstats/main.c
Modified: projects/vap7/tools/tools/ath/athstats/athstats.c
==============================================================================
--- projects/vap7/tools/tools/ath/athstats/athstats.c Fri Feb 13 05:52:10 2009 (r188566)
+++ projects/vap7/tools/tools/ath/athstats/athstats.c Fri Feb 13 05:52:43 2009 (r188567)
@@ -436,6 +436,15 @@ ath_setifname(struct athstatfoo *wf0, co
#endif
}
+static void
+ath_zerostats(struct athstatfoo *wf0)
+{
+ struct athstatfoo_p *wf = (struct athstatfoo_p *) wf0;
+
+ if (ioctl(wf->s, SIOCZATHSTATS, &wf->ifr) < 0)
+ err(-1, wf->ifr.ifr_name);
+}
+
static void
ath_collect(struct athstatfoo_p *wf, struct _athstats *stats)
{
@@ -997,6 +1006,7 @@ athstats_new(const char *ifname, const c
#if 0
wf->base.setstamac = wlan_setstamac;
#endif
+ wf->base.zerostats = ath_zerostats;
wf->s = socket(AF_INET, SOCK_DGRAM, 0);
if (wf->s < 0)
err(1, "socket");
Modified: projects/vap7/tools/tools/ath/athstats/athstats.h
==============================================================================
--- projects/vap7/tools/tools/ath/athstats/athstats.h Fri Feb 13 05:52:10 2009 (r188566)
+++ projects/vap7/tools/tools/ath/athstats/athstats.h Fri Feb 13 05:52:43 2009 (r188567)
@@ -46,6 +46,8 @@ struct athstatfoo {
void (*setifname)(struct athstatfoo *, const char *ifname);
/* set the mac address of the associated station/ap */
void (*setstamac)(struct athstatfoo *, const uint8_t mac[]);
+ /* zero in-kernel statistics */
+ void (*zerostats)(struct athstatfoo *);
};
struct athstatfoo *athstats_new(const char *ifname, const char *fmtstring);
Modified: projects/vap7/tools/tools/ath/athstats/main.c
==============================================================================
--- projects/vap7/tools/tools/ath/athstats/main.c Fri Feb 13 05:52:10 2009 (r188566)
+++ projects/vap7/tools/tools/ath/athstats/main.c Fri Feb 13 05:52:43 2009 (r188567)
@@ -33,7 +33,7 @@
* Simple Atheros-specific tool to inspect and monitor network traffic
* statistics.
*
- * athstats [-i interface] [-l] [-o fmtstring] [interval]
+ * athstats [-i interface] [-z] [-l] [-o fmtstring] [interval]
*
* (default interface is ath0). If interval is specified a rolling output
* a la netstat -i is displayed every interval seconds. The format of
@@ -95,7 +95,7 @@ main(int argc, char *argv[])
if (ifname == NULL)
ifname = "ath0";
wf = athstats_new(ifname, getfmt("default"));
- while ((c = getopt(argc, argv, "i:lo:")) != -1) {
+ while ((c = getopt(argc, argv, "i:lo:z")) != -1) {
switch (c) {
case 'i':
wf->setifname(wf, optarg);
@@ -106,8 +106,11 @@ main(int argc, char *argv[])
case 'o':
wf->setfmt(wf, getfmt(optarg));
break;
+ case 'z':
+ wf->zerostats(wf);
+ break;
default:
- errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [interval]\n", argv[0]);
+ errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [-z] [interval]\n", argv[0]);
/*NOTREACHED*/
}
}
More information about the svn-src-projects
mailing list