diff options
author | 2005-02-10 05:28:58 +0000 | |
---|---|---|
committer | 2005-02-10 05:28:58 +0000 | |
commit | 65f13d19b904ee6fe4ff7887505c4b5e44d08bba (patch) | |
tree | c9d7f396f9bcfde0aaa8491b6d45b185d12ec5d8 | |
parent | Minor punctuation nit. (diff) | |
download | wireguard-openbsd-65f13d19b904ee6fe4ff7887505c4b5e44d08bba.tar.xz wireguard-openbsd-65f13d19b904ee6fe4ff7887505c4b5e44d08bba.zip |
dccp support
-rw-r--r-- | usr.bin/netstat/Makefile | 4 | ||||
-rw-r--r-- | usr.bin/netstat/inet.c | 78 | ||||
-rw-r--r-- | usr.bin/netstat/main.c | 16 | ||||
-rw-r--r-- | usr.bin/netstat/netstat.h | 5 |
4 files changed, 97 insertions, 6 deletions
diff --git a/usr.bin/netstat/Makefile b/usr.bin/netstat/Makefile index 7366643a827..5c5ad3e8c84 100644 --- a/usr.bin/netstat/Makefile +++ b/usr.bin/netstat/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.12 2004/06/25 20:05:40 henning Exp $ +# $OpenBSD: Makefile,v 1.13 2005/02/10 05:28:58 itojun Exp $ PROG= netstat SRCS= if.c inet.c inet6.c ipx.c main.c mbuf.c mroute.c ns.c route.c \ @@ -13,4 +13,6 @@ INET6?= yes CPPFLAGS+= -DINET6 .endif +CPPFLAGS+= -DDCCP + .include <bsd.prog.mk> diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c index b064dda4302..5ae71825751 100644 --- a/usr.bin/netstat/inet.c +++ b/usr.bin/netstat/inet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: inet.c,v 1.90 2005/01/14 15:00:44 mcbride Exp $ */ +/* $OpenBSD: inet.c,v 1.91 2005/02/10 05:28:58 itojun Exp $ */ /* $NetBSD: inet.c,v 1.14 1995/10/03 21:42:37 thorpej Exp $ */ /* @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "from: @(#)inet.c 8.4 (Berkeley) 4/20/94"; #else -static const char *rcsid = "$OpenBSD: inet.c,v 1.90 2005/01/14 15:00:44 mcbride Exp $"; +static const char *rcsid = "$OpenBSD: inet.c,v 1.91 2005/02/10 05:28:58 itojun Exp $"; #endif #endif /* not lint */ @@ -71,6 +71,11 @@ static const char *rcsid = "$OpenBSD: inet.c,v 1.90 2005/01/14 15:00:44 mcbride #include <netinet/ip_ipip.h> #include <netinet/ip_ipcomp.h> #include <netinet/ip_ether.h> +#ifdef DCCP +#include <netinet/dccp.h> +#define DCCPSTATES +#include <netinet/dccp_var.h> +#endif #include <netinet/ip_carp.h> #include <net/if.h> #include <net/pfvar.h> @@ -91,6 +96,9 @@ static const char *rcsid = "$OpenBSD: inet.c,v 1.90 2005/01/14 15:00:44 mcbride struct inpcb inpcb; struct tcpcb tcpcb; +#ifdef DCCP +struct dccpcb dccpcb; +#endif struct socket sockb; static void protopr0(u_long, char *, int); @@ -129,6 +137,9 @@ protopr0(u_long off, char *name, int af) struct inpcb *head, *next, *prev; struct inpcb inpcb; int istcp, israw; +#ifdef DCCP + int isdccp; +#endif int first = 1; char *name0; char namebuf[20]; @@ -138,6 +149,9 @@ protopr0(u_long off, char *name, int af) return; istcp = strcmp(name, "tcp") == 0; israw = strncmp(name, "ip", 2) == 0; +#ifdef DCCP + isdccp = strcmp(name, "dccp") == 0; +#endif kread(off, (char *)&table, sizeof table); prev = head = (struct inpcb *)&((struct inpcbtable *)off)->inpt_queue.cqh_first; @@ -173,6 +187,12 @@ protopr0(u_long off, char *name, int af) kread((u_long)inpcb.inp_ppcb, (char *)&tcpcb, sizeof (tcpcb)); } +#ifdef DCCP + if (isdccp) { + kread((u_long)inpcb.inp_ppcb, + (char *)&dccpcb, sizeof (dccpcb)); + } +#endif if (first) { printf("Active Internet connections"); if (aflag) @@ -191,7 +211,11 @@ protopr0(u_long off, char *name, int af) first = 0; } if (Aflag) { +#ifdef DCCP + if (istcp || isdccp) +#else if (istcp) +#endif printf("%*p ", PLEN, inpcb.inp_ppcb); else printf("%*p ", PLEN, prev); @@ -396,6 +420,56 @@ udp_stats(u_long off, char *name) #undef p1 } +#ifdef DCCP +void +dccp_stats(off, name) + u_long off; + char *name; +{ + struct dccpstat dccpstat; + + if (off == 0) + return; + printf("%s:\n", name); + kread(off, (char *)&dccpstat, sizeof (dccpstat)); + +#define p(f, m) if (dccpstat.f || sflag <= 1) \ + printf(m, dccpstat.f, plural(dccpstat.f)) +#define p1a(f, m) if (dccpstat.f || sflag <= 1) \ + printf(m, dccpstat.f) + p(dccps_ipackets, "\t%lu packet%s received\n"); + p(dccps_ibytes, "\t%lu byte%s received\n"); + p(dccps_connattempt, "\t%lu connection request%s\n"); + p(dccps_connects, "\t%lu connection%s established\n"); + p(dccps_drops, "\t%lu packet%s dropped\n"); + p(dccps_badlen, "\t%lu packet%s with bad data length field\n"); + p(dccps_badsum, "\t%lu packet%s with bad checksum\n"); + p(dccps_badseq, "\t%lu packet%s with bad sequencenumber\n"); + p(dccps_noport, "\t%lu packet%s dropped due to no socket\n"); + p(dccps_opackets, "\t%lu packet%s output\n"); + p(dccps_obytes, "\t%lu byte%s output\n"); + + printf("\n\tTCPlike Sender:\n"); + p(tcplikes_send_conn, "\t%lu connection%s established\n"); + p(tcplikes_send_reploss, "\t%lu data packet%s reported lost\n"); + p(tcplikes_send_assloss, "\t%lu data packet%s assumed lost\n"); + p(tcplikes_send_ackrecv, "\t%lu acknowledgement%s received\n"); + p(tcplikes_send_missack, "\t%lu ack packet%s assumed lost\n"); + p(tcplikes_send_badseq, "\t%lu bad sequence number on outgoing packet%s\n"); + p(tcplikes_send_memerr, "\t%lu memory allocation error%s\n"); + + printf("\tTCPlike Receiver:\n"); + p(tcplikes_recv_conn, "\t%lu connection%s established\n"); + p(tcplikes_recv_datarecv, "\t%lu data packet%s received\n"); + p(tcplikes_recv_ackack, "\t%lu Ack-on-ack%s received\n"); + p(tcplikes_recv_acksent, "\t%lu acknowledgement packet%s sent\n"); + p(tcplikes_recv_memerr, "\t%lu memory allocation error%s\n"); + +#undef p +#undef p1a +} +#endif + /* * Dump IP statistics structure. */ diff --git a/usr.bin/netstat/main.c b/usr.bin/netstat/main.c index deecd5161c3..53ac6b98d50 100644 --- a/usr.bin/netstat/main.c +++ b/usr.bin/netstat/main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: main.c,v 1.50 2005/01/14 15:00:44 mcbride Exp $ */ +/* $OpenBSD: main.c,v 1.51 2005/02/10 05:28:58 itojun Exp $ */ /* $NetBSD: main.c,v 1.9 1996/05/07 02:55:02 thorpej Exp $ */ /* @@ -40,7 +40,7 @@ char copyright[] = #if 0 static char sccsid[] = "from: @(#)main.c 8.4 (Berkeley) 3/1/94"; #else -static char *rcsid = "$OpenBSD: main.c,v 1.50 2005/01/14 15:00:44 mcbride Exp $"; +static char *rcsid = "$OpenBSD: main.c,v 1.51 2005/02/10 05:28:58 itojun Exp $"; #endif #endif /* not lint */ @@ -185,6 +185,10 @@ struct nlist nl[] = { { "_pfsyncstats" }, #define N_PIMSTAT 59 { "_pimstat" }, +#define N_DCCPSTAT 60 + { "_dccpstat" }, +#define N_DCCPBTABLE 61 + { "_dccpbtable" }, { ""}, }; @@ -200,6 +204,10 @@ struct protox { tcp_stats, "tcp" }, { N_UDBTABLE, N_UDPSTAT, 1, protopr, udp_stats, "udp" }, +#ifdef DCCP + { N_DCCPBTABLE, N_DCCPSTAT, 1, protopr, + dccp_stats, "dccp" }, +#endif { N_RAWIPTABLE, N_IPSTAT, 1, protopr, ip_stats, "ip" }, { -1, N_ICMPSTAT, 1, 0, @@ -232,6 +240,10 @@ struct protox ip6protox[] = { 0, "tcp" }, { N_UDBTABLE, N_UDPSTAT, 1, ip6protopr, 0, "udp" }, +#ifdef DCCP + { N_DCCPBTABLE, N_DCCPSTAT, 1, ip6protopr, + dccp_stats, "dccp" }, +#endif { N_RAWIP6TABLE,N_IP6STAT, 1, ip6protopr, ip6_stats, "ip6" }, { -1, N_ICMP6STAT, 1, 0, diff --git a/usr.bin/netstat/netstat.h b/usr.bin/netstat/netstat.h index eebea3a406e..6ff2cdb2866 100644 --- a/usr.bin/netstat/netstat.h +++ b/usr.bin/netstat/netstat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: netstat.h,v 1.29 2005/01/14 15:00:44 mcbride Exp $ */ +/* $OpenBSD: netstat.h,v 1.30 2005/02/10 05:28:58 itojun Exp $ */ /* $NetBSD: netstat.h,v 1.6 1996/05/07 02:55:05 thorpej Exp $ */ /* @@ -73,6 +73,9 @@ void ip6protopr(u_long, char *); #endif void tcp_stats(u_long, char *); void udp_stats(u_long, char *); +#ifdef DCCP +void dccp_stats(u_long, char *); +#endif void ip_stats(u_long, char *); void icmp_stats(u_long, char *); void igmp_stats(u_long, char *); |