add -z option to zero driver statistics (but note we don't yet zero

stats obtained from the hal)
This commit is contained in:
Sam Leffler 2009-02-13 05:45:23 +00:00
parent 41e449db4a
commit dd8d00f53c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=188560
3 changed files with 18 additions and 3 deletions

View File

@ -436,6 +436,15 @@ ath_setifname(struct athstatfoo *wf0, const char *ifname)
#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 char *fmtstring)
#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");

View File

@ -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);

View File

@ -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*/
}
}