diff options
author | ed <ed@FreeBSD.org> | 2009-04-05 22:08:18 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-04-05 22:08:18 +0000 |
commit | 36d960175a8cfcbccee2d24424dc7677bbf9954a (patch) | |
tree | 8a97b6bb04afecdfb70c99fe4302c043d6d240e0 /usr.sbin/pppstats | |
parent | 18eefdb2b28b2ccc1394a40d490c6b1b0c80086d (diff) | |
download | FreeBSD-src-36d960175a8cfcbccee2d24424dc7677bbf9954a.zip FreeBSD-src-36d960175a8cfcbccee2d24424dc7677bbf9954a.tar.gz |
Remove if_ppp(4) and if_sl(4).
Not only did these two drivers depend on IFF_NEEDSGIANT, they were
broken 7 months ago during the MPSAFE TTY import. if_ppp(4) has been
replaced by ppp(8). There is no replacement for if_sl(4).
If we see regressions in for example the ports tree, we should just use
__FreeBSD_version 800045 to check whether if_ppp(4) and if_sl(4) are
present. Version 800045 is used to denote the import of MPSAFE TTY.
Discussed with: rwatson, but also rwatson's IFF_NEEDSGIANT emails on the
lists.
Diffstat (limited to 'usr.sbin/pppstats')
-rw-r--r-- | usr.sbin/pppstats/Makefile | 6 | ||||
-rw-r--r-- | usr.sbin/pppstats/pppstats.8 | 218 | ||||
-rw-r--r-- | usr.sbin/pppstats/pppstats.c | 519 |
3 files changed, 0 insertions, 743 deletions
diff --git a/usr.sbin/pppstats/Makefile b/usr.sbin/pppstats/Makefile deleted file mode 100644 index da34dc9..0000000 --- a/usr.sbin/pppstats/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -PROG= pppstats -MAN= pppstats.8 - -.include <bsd.prog.mk> diff --git a/usr.sbin/pppstats/pppstats.8 b/usr.sbin/pppstats/pppstats.8 deleted file mode 100644 index 5b28ea0..0000000 --- a/usr.sbin/pppstats/pppstats.8 +++ /dev/null @@ -1,218 +0,0 @@ -.\" @(#) $FreeBSD$ -.TH PPPSTATS 8 "26 June 1995" -.SH NAME -pppstats \- print PPP statistics -.SH SYNOPSIS -.B pppstats -[ -.B -a -] [ -.B -v -] [ -.B -r -] [ -.B -z -] [ -.B -c -.I <count> -] [ -.B -w -.I <secs> -] [ -.I interface -] -.ti 12 -.SH DESCRIPTION -The -.B pppstats -utility reports PPP-related statistics at regular intervals for the -specified PPP interface. If the interface is unspecified, it will -default to ppp0. -The display is split horizontally -into input and output sections containing columns of statistics -describing the properties and volume of packets received and -transmitted by the interface. -.PP -The options are as follows: -.TP -.B -a -Display absolute values rather than deltas. With this option, all -reports show statistics for the time since the link was initiated. -Without this option, the second and subsequent reports show statistics -for the time since the last report. -.TP -.B -c \fIcount -Repeat the display -.I count -times. If this option is not specified, the default repeat count is 1 -if the -.B -w -option is not specified, otherwise infinity. -.TP -.B -r -Display additional statistics summarizing the compression ratio -achieved by the packet compression algorithm in use. -.TP -.B -v -Display additional statistics relating to the performance of the Van -Jacobson TCP header compression algorithm. -.TP -.B -w \fIwait -Pause -.I wait -seconds between each display. If this option is not specified, the -default interval is 5 seconds. -.TP -.B -z -Instead of the standard display, show statistics indicating the -performance of the packet compression algorithm in use. -.PP -The following fields are printed on the input side when the -.B -z -option is not used: -.TP -.B IN -The total number of bytes received by this interface. -.TP -.B PACK -The total number of packets received by this interface. -.TP -.B VJCOMP -The number of header-compressed TCP packets received by this interface. -.TP -.B VJUNC -The number of header-uncompressed TCP packets received by this -interface. Not reported when the -.B -r -option is specified. -.TP -.B VJERR -The number of corrupted or bogus header-compressed TCP packets -received by this interface. Not reported when the -.B -r -option is specified. -.TP -.B VJTOSS -The number of VJ header-compressed TCP packets dropped on reception by -this interface because of preceding errors. Only reported when the -.B -v -option is specified. -.TP -.B NON-VJ -The total number of non-TCP packets received by this interface. -Only -reported when the -.B -v -option is specified. -.TP -.B RATIO -The compression ratio achieved for received packets by the -packet compression scheme in use, defined as the uncompressed size -divided by the compressed size. -Only reported when the -.B -r -option is specified. -.TP -.B UBYTE -The total number of bytes received, after decompression of compressed -packets. Only reported when the -.B -r -option is specified. -.PP -The following fields are printed on the output side: -.TP -.B OUT -The total number of bytes transmitted from this interface. -.TP -.B PACK -The total number of packets transmitted from this interface. -.TP -.B VJCOMP -The number of TCP packets transmitted from this interface with -VJ-compressed TCP headers. -.TP -.B VJUNC -The number of TCP packets transmitted from this interface with -VJ-uncompressed TCP headers. -Not reported when the -.B -r -option is specified. -.TP -.B NON-VJ -The total number of non-TCP packets transmitted from this interface. -Not reported when the -.B -r -option is specified. -.TP -.B VJSRCH -The number of searches for the cached header entry for a VJ header -compressed TCP packet. Only reported when the -.B -v -option is specified. -.TP -.B VJMISS -The number of failed searches for the cached header entry for a -VJ header compressed TCP packet. Only reported when the -.B -v -option is specified. -.TP -.B RATIO -The compression ratio achieved for transmitted packets by the -packet compression scheme in use, defined as the size -before compression divided by the compressed size. -Only reported when the -.B -r -option is specified. -.TP -.B UBYTE -The total number of bytes to be transmitted, before packet compression -is applied. Only reported when the -.B -r -option is specified. -.PP -When the -.B -z -option is specified, -.B pppstats -instead displays the following fields, relating to the packet -compression algorithm currently in use. If packet compression is not -in use, these fields will all display zeroes. The fields displayed on -the input side are: -.TP -.B COMPRESSED BYTE -The number of bytes of compressed packets received. -.TP -.B COMPRESSED PACK -The number of compressed packets received. -.TP -.B INCOMPRESSIBLE BYTE -The number of bytes of incompressible packets (that is, those which -were transmitted in uncompressed form) received. -.TP -.B INCOMPRESSIBLE PACK -The number of incompressible packets received. -.TP -.B COMP RATIO -The recent compression ratio for incoming packets, defined as the -uncompressed size divided by the compressed size (including both -compressible and incompressible packets). -.PP -The fields displayed on the output side are: -.TP -.B COMPRESSED BYTE -The number of bytes of compressed packets transmitted. -.TP -.B COMPRESSED PACK -The number of compressed packets transmitted. -.TP -.B INCOMPRESSIBLE BYTE -The number of bytes of incompressible packets transmitted (that is, -those which were transmitted in uncompressed form). -.TP -.B INCOMPRESSIBLE PACK -The number of incompressible packets transmitted. -.TP -.B COMP RATIO -The recent compression ratio for outgoing packets. -.SH SEE ALSO -pppd(8) diff --git a/usr.sbin/pppstats/pppstats.c b/usr.sbin/pppstats/pppstats.c deleted file mode 100644 index b9d5a09..0000000 --- a/usr.sbin/pppstats/pppstats.c +++ /dev/null @@ -1,519 +0,0 @@ -/* - * print PPP statistics: - * pppstats [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface] - * - * -a Show absolute values rather than deltas - * -d Show data rate (kB/s) rather than bytes - * -v Show more stats for VJ TCP header compression - * -r Show compression ratio - * -z Show compression statistics instead of default display - * - * History: - * perkins@cps.msu.edu: Added compression statistics and alternate - * display. 11/94 - * Brad Parker (brad@cayman.com) 6/92 - * - * from the original "slstats" by Van Jacobson - * - * Copyright (c) 1989 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef lint -static char rcsid[] = "$FreeBSD$"; -#endif - -#include <stdio.h> -#include <stddef.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> -#include <errno.h> -#include <signal.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/param.h> -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/time.h> -#include <net/ppp_defs.h> - -#ifndef STREAMS -#include <sys/socket.h> /* *BSD, Linux, NeXT, Ultrix etc. */ -#include <net/if.h> -#include <net/if_ppp.h> - -#else /* STREAMS */ -#include <sys/stropts.h> /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */ -#include <net/pppio.h> - -#endif /* STREAMS */ - -int vflag, rflag, zflag; /* select type of display */ -int aflag; /* print absolute values, not deltas */ -int dflag; /* print data rates, not bytes */ -int interval, count; -int infinite; -int unit; -int s; /* socket or /dev/ppp file descriptor */ -int signalled; /* set if alarm goes off "early" */ -char *progname; -char *interface; - -#if defined(SUNOS4) || defined(ULTRIX) || defined(NeXT) -extern int optind; -extern char *optarg; -#endif - -static void usage(void); -static void catchalarm(int); -static void get_ppp_stats(struct ppp_stats *); -static void get_ppp_cstats(struct ppp_comp_stats *); -static void intpr(void); - -int main(int, char *argv[]); - -static void -usage() -{ - fprintf(stderr, "usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n", - progname); - exit(1); -} - -/* - * Called if an interval expires before intpr has completed a loop. - * Sets a flag to not wait for the alarm. - */ -static void -catchalarm(arg) - int arg; -{ - signalled = 1; -} - - -#ifndef STREAMS -static void -get_ppp_stats(curp) - struct ppp_stats *curp; -{ - struct ifpppstatsreq req; - - memset (&req, 0, sizeof (req)); - -#ifdef _linux_ - req.stats_ptr = (caddr_t) &req.stats; -#undef ifr_name -#define ifr_name ifr__name -#endif - - strncpy(req.ifr_name, interface, sizeof(req.ifr_name)); - if (ioctl(s, SIOCGPPPSTATS, &req) < 0) { - fprintf(stderr, "%s: ", progname); - if (errno == ENOTTY) - fprintf(stderr, "kernel support missing\n"); - else - perror("couldn't get PPP statistics"); - exit(1); - } - *curp = req.stats; -} - -static void -get_ppp_cstats(csp) - struct ppp_comp_stats *csp; -{ - struct ifpppcstatsreq creq; - - memset (&creq, 0, sizeof (creq)); - -#ifdef _linux_ - creq.stats_ptr = (caddr_t) &creq.stats; -#undef ifr_name -#define ifr_name ifr__name -#endif - - strncpy(creq.ifr_name, interface, sizeof(creq.ifr_name)); - if (ioctl(s, SIOCGPPPCSTATS, &creq) < 0) { - fprintf(stderr, "%s: ", progname); - if (errno == ENOTTY) { - fprintf(stderr, "no kernel compression support\n"); - if (zflag) - exit(1); - rflag = 0; - } else { - perror("couldn't get PPP compression stats"); - exit(1); - } - } - -#ifdef _linux_ - if (creq.stats.c.bytes_out == 0) - creq.stats.c.ratio = 0.0; - else - creq.stats.c.ratio = (double) creq.stats.c.in_count / - (double) creq.stats.c.bytes_out; - - if (creq.stats.d.bytes_out == 0) - creq.stats.d.ratio = 0.0; - else - creq.stats.d.ratio = (double) creq.stats.d.in_count / - (double) creq.stats.d.bytes_out; -#endif - - *csp = creq.stats; -} - -#else /* STREAMS */ - -int -strioctl(fd, cmd, ptr, ilen, olen) - int fd, cmd, ilen, olen; - char *ptr; -{ - struct strioctl str; - - str.ic_cmd = cmd; - str.ic_timout = 0; - str.ic_len = ilen; - str.ic_dp = ptr; - if (ioctl(fd, I_STR, &str) == -1) - return -1; - if (str.ic_len != olen) - fprintf(stderr, "strioctl: expected %d bytes, got %d for cmd %x\n", - olen, str.ic_len, cmd); - return 0; -} - -static void -get_ppp_stats(curp) - struct ppp_stats *curp; -{ - if (strioctl(s, PPPIO_GETSTAT, curp, 0, sizeof(*curp)) < 0) { - fprintf(stderr, "%s: ", progname); - if (errno == EINVAL) - fprintf(stderr, "kernel support missing\n"); - else - perror("couldn't get PPP statistics"); - exit(1); - } -} - -static void -get_ppp_cstats(csp) - struct ppp_comp_stats *csp; -{ - if (strioctl(s, PPPIO_GETCSTAT, csp, 0, sizeof(*csp)) < 0) { - fprintf(stderr, "%s: ", progname); - if (errno == ENOTTY) { - fprintf(stderr, "no kernel compression support\n"); - if (zflag) - exit(1); - rflag = 0; - } else { - perror("couldn't get PPP compression statistics"); - exit(1); - } - } -} - -#endif /* STREAMS */ - -#define MAX0(a) ((int)(a) > 0? (a): 0) -#define V(offset) MAX0(cur.offset - old.offset) -#define W(offset) MAX0(ccs.offset - ocs.offset) - -#define RATIO(c, i, u) ((c) == 0? 1.0: (u) / ((double)(c) + (i))) -#define CRATE(x) RATIO(W(x.comp_bytes), W(x.inc_bytes), W(x.unc_bytes)) - -#define KBPS(n) ((n) / (interval * 1000.0)) - -/* - * Print a running summary of interface statistics. - * Repeat display every interval seconds, showing statistics - * collected over that interval. Assumes that interval is non-zero. - * First line printed is cumulative. - */ -static void -intpr() -{ - register int line = 0; - sigset_t oldmask, mask; - char *bunit; - int ratef = 0; - struct ppp_stats cur, old; - struct ppp_comp_stats ccs, ocs; - - memset(&old, 0, sizeof(old)); - memset(&ocs, 0, sizeof(ocs)); - - while (1) { - get_ppp_stats(&cur); - if (zflag || rflag) - get_ppp_cstats(&ccs); - - (void)signal(SIGALRM, catchalarm); - signalled = 0; - (void)alarm(interval); - - if ((line % 20) == 0) { - if (zflag) { - printf("IN: COMPRESSED INCOMPRESSIBLE COMP | "); - printf("OUT: COMPRESSED INCOMPRESSIBLE COMP\n"); - bunit = dflag? "KB/S": "BYTE"; - printf(" %s PACK %s PACK RATIO | ", bunit, bunit); - printf(" %s PACK %s PACK RATIO", bunit, bunit); - } else { - printf("%8.8s %6.6s %6.6s", - "IN", "PACK", "VJCOMP"); - - if (!rflag) - printf(" %6.6s %6.6s", "VJUNC", "VJERR"); - if (vflag) - printf(" %6.6s %6.6s", "VJTOSS", "NON-VJ"); - if (rflag) - printf(" %6.6s %6.6s", "RATIO", "UBYTE"); - printf(" | %8.8s %6.6s %6.6s", - "OUT", "PACK", "VJCOMP"); - - if (!rflag) - printf(" %6.6s %6.6s", "VJUNC", "NON-VJ"); - if (vflag) - printf(" %6.6s %6.6s", "VJSRCH", "VJMISS"); - if (rflag) - printf(" %6.6s %6.6s", "RATIO", "UBYTE"); - } - putchar('\n'); - } - - if (zflag) { - if (ratef) { - printf("%8.3f %6u %8.3f %6u %6.2f", - KBPS(W(d.comp_bytes)), - W(d.comp_packets), - KBPS(W(d.inc_bytes)), - W(d.inc_packets), - ccs.d.ratio / 256.0); - printf(" | %8.3f %6u %8.3f %6u %6.2f", - KBPS(W(c.comp_bytes)), - W(c.comp_packets), - KBPS(W(c.inc_bytes)), - W(c.inc_packets), - ccs.c.ratio / 256.0); - } else { - printf("%8u %6u %8u %6u %6.2f", - W(d.comp_bytes), - W(d.comp_packets), - W(d.inc_bytes), - W(d.inc_packets), - ccs.d.ratio / 256.0); - printf(" | %8u %6u %8u %6u %6.2f", - W(c.comp_bytes), - W(c.comp_packets), - W(c.inc_bytes), - W(c.inc_packets), - ccs.c.ratio / 256.0); - } - - } else { - if (ratef) - printf("%8.3f", KBPS(V(p.ppp_ibytes))); - else - printf("%8u", V(p.ppp_ibytes)); - printf(" %6u %6u", - V(p.ppp_ipackets), - V(vj.vjs_compressedin)); - if (!rflag) - printf(" %6u %6u", - V(vj.vjs_uncompressedin), - V(vj.vjs_errorin)); - if (vflag) - printf(" %6u %6u", - V(vj.vjs_tossed), - V(p.ppp_ipackets) - V(vj.vjs_compressedin) - - V(vj.vjs_uncompressedin) - V(vj.vjs_errorin)); - if (rflag) { - printf(" %6.2f ", CRATE(d)); - if (ratef) - printf("%6.2f", KBPS(W(d.unc_bytes))); - else - printf("%6u", W(d.unc_bytes)); - } - if (ratef) - printf(" | %8.3f", KBPS(V(p.ppp_obytes))); - else - printf(" | %8u", V(p.ppp_obytes)); - printf(" %6u %6u", - V(p.ppp_opackets), - V(vj.vjs_compressed)); - if (!rflag) - printf(" %6u %6u", - V(vj.vjs_packets) - V(vj.vjs_compressed), - V(p.ppp_opackets) - V(vj.vjs_packets)); - if (vflag) - printf(" %6u %6u", - V(vj.vjs_searches), - V(vj.vjs_misses)); - if (rflag) { - printf(" %6.2f ", CRATE(c)); - if (ratef) - printf("%6.2f", KBPS(W(c.unc_bytes))); - else - printf("%6u", W(c.unc_bytes)); - } - - } - - putchar('\n'); - fflush(stdout); - line++; - - count--; - if (!infinite && !count) - break; - - sigemptyset(&mask); - sigaddset(&mask, SIGALRM); - sigprocmask(SIG_BLOCK, &mask, &oldmask); - if (!signalled) { - sigemptyset(&mask); - sigsuspend(&mask); - } - sigprocmask(SIG_SETMASK, &oldmask, NULL); - signalled = 0; - (void)alarm(interval); - - if (!aflag) { - old = cur; - ocs = ccs; - ratef = dflag; - } - } -} - -int -main(argc, argv) - int argc; - char *argv[]; -{ - int c; -#ifdef STREAMS - char *dev; -#endif - - interface = "ppp0"; - if ((progname = strrchr(argv[0], '/')) == NULL) - progname = argv[0]; - else - ++progname; - - while ((c = getopt(argc, argv, "advrzc:w:")) != -1) { - switch (c) { - case 'a': - ++aflag; - break; - case 'd': - ++dflag; - break; - case 'v': - ++vflag; - break; - case 'r': - ++rflag; - break; - case 'z': - ++zflag; - break; - case 'c': - count = atoi(optarg); - if (count <= 0) - usage(); - break; - case 'w': - interval = atoi(optarg); - if (interval <= 0) - usage(); - break; - default: - usage(); - } - } - argc -= optind; - argv += optind; - - if (!interval && count) - interval = 5; - if (interval && !count) - infinite = 1; - if (!interval && !count) - count = 1; - if (aflag) - dflag = 0; - - if (argc > 1) - usage(); - if (argc > 0) - interface = argv[0]; - - if (sscanf(interface, "ppp%d", &unit) != 1) { - fprintf(stderr, "%s: invalid interface '%s' specified\n", - progname, interface); - } - -#ifndef STREAMS - { - struct ifreq ifr; - - s = socket(AF_INET, SOCK_DGRAM, 0); - if (s < 0) { - fprintf(stderr, "%s: ", progname); - perror("couldn't create IP socket"); - exit(1); - } - -#ifdef _linux_ -#undef ifr_name -#define ifr_name ifr_ifrn.ifrn_name -#endif - strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); - if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) { - fprintf(stderr, "%s: nonexistent interface '%s' specified\n", - progname, interface); - exit(1); - } - } - -#else /* STREAMS */ -#ifdef __osf__ - dev = "/dev/streams/ppp"; -#else - dev = "/dev/ppp"; -#endif - if ((s = open(dev, O_RDONLY)) < 0) { - fprintf(stderr, "%s: couldn't open ", progname); - perror(dev); - exit(1); - } - if (strioctl(s, PPPIO_ATTACH, &unit, sizeof(int), 0) < 0) { - fprintf(stderr, "%s: ppp%d is not available\n", progname, unit); - exit(1); - } - -#endif /* STREAMS */ - - intpr(); - exit(0); -} |