Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Feb 2009 05:45:24 +0000 (UTC)
From:      Sam Leffler <sam@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r188560 - head/tools/tools/ath/athstats
Message-ID:  <200902130545.n1D5jOmj077756@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sam
Date: Fri Feb 13 05:45:23 2009
New Revision: 188560
URL: http://svn.freebsd.org/changeset/base/188560

Log:
  add -z option to zero driver statistics (but note we don't yet zero
  stats obtained from the hal)

Modified:
  head/tools/tools/ath/athstats/athstats.c
  head/tools/tools/ath/athstats/athstats.h
  head/tools/tools/ath/athstats/main.c

Modified: head/tools/tools/ath/athstats/athstats.c
==============================================================================
--- head/tools/tools/ath/athstats/athstats.c	Fri Feb 13 05:44:18 2009	(r188559)
+++ head/tools/tools/ath/athstats/athstats.c	Fri Feb 13 05:45:23 2009	(r188560)
@@ -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: head/tools/tools/ath/athstats/athstats.h
==============================================================================
--- head/tools/tools/ath/athstats/athstats.h	Fri Feb 13 05:44:18 2009	(r188559)
+++ head/tools/tools/ath/athstats/athstats.h	Fri Feb 13 05:45:23 2009	(r188560)
@@ -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: head/tools/tools/ath/athstats/main.c
==============================================================================
--- head/tools/tools/ath/athstats/main.c	Fri Feb 13 05:44:18 2009	(r188559)
+++ head/tools/tools/ath/athstats/main.c	Fri Feb 13 05:45:23 2009	(r188560)
@@ -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*/
 		}
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902130545.n1D5jOmj077756>