add -z option to zero driver statistics (but note we don't yet zero
stats obtained from the hal)
This commit is contained in:
parent
41e449db4a
commit
dd8d00f53c
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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*/
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user