2 * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer,
10 * without modification.
11 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12 * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13 * redistribution must be conditioned upon including a substantially
14 * similar Disclaimer requirement for further binary redistribution.
15 * 3. Neither the names of the above-listed copyright holders nor the names
16 * of any contributors may be used to endorse or promote products derived
17 * from this software without specific prior written permission.
19 * Alternatively, this software may be distributed under the terms of the
20 * GNU General Public License ("GPL") version 2 as published by the Free
21 * Software Foundation.
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
27 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
28 * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
29 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
32 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
34 * THE POSSIBILITY OF SUCH DAMAGES.
40 * Simple Atheros-specific tool to inspect and monitor network traffic
43 * athstats [-i interface] [-l] [-o fmtstring] [interval]
45 * (default interface is ath0). If interval is specified a rolling output
46 * a la netstat -i is displayed every interval seconds. The format of
47 * the rolling display can be controlled a la ps. The -l option will
48 * print a list of all possible statistics for use with the -o option.
59 "input,output,altrate,short,long,xretry,crcerr,crypt,phyerr,rssi,rate"
64 catchalarm(int signo __unused)
70 main(int argc, char *argv[])
72 struct athstatfoo *wf;
75 wf = athstats_new("ath0", S_DEFAULT);
76 while ((c = getopt(argc, argv, "i:lo:")) != -1) {
79 wf->setifname(wf, optarg);
82 wf->print_fields(wf, stdout);
85 wf->setfmt(wf, optarg);
88 errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [interval]\n", argv[0]);
96 u_long interval = strtoul(argv[0], NULL, 0);
101 signal(SIGALRM, catchalarm);
105 wf->print_header(wf, stdout);
110 wf->print_current(wf, stdout);
114 wf->print_total(wf, stdout);
117 omask = sigblock(sigmask(SIGALRM));
124 if (line == 21) /* XXX tty line count */
131 wf->print_verbose(wf, stdout);