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