Date: Mon, 10 Jan 2011 03:55:45 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r217215 - projects/ofed/head/usr.bin/netstat Message-ID: <201101100355.p0A3tj0F066226@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jeff Date: Mon Jan 10 03:55:45 2011 New Revision: 217215 URL: http://svn.freebsd.org/changeset/base/217215 Log: - Treat SDP like TCP as it uses the same states and most of the same pcb variables. Sponsored by: Isilon Systems, iX Systems, and Panasas. Modified: projects/ofed/head/usr.bin/netstat/Makefile projects/ofed/head/usr.bin/netstat/inet.c projects/ofed/head/usr.bin/netstat/main.c Modified: projects/ofed/head/usr.bin/netstat/Makefile ============================================================================== --- projects/ofed/head/usr.bin/netstat/Makefile Mon Jan 10 03:48:41 2011 (r217214) +++ projects/ofed/head/usr.bin/netstat/Makefile Mon Jan 10 03:55:45 2011 (r217215) @@ -18,6 +18,10 @@ SRCS+= inet6.c CFLAGS+=-DINET6 .endif +.if ${MK_OFED} != "no" +CFLAGS+=-DSDP +.endif + BINGRP= kmem BINMODE=2555 DPADD= ${LIBKVM} ${LIBMEMSTAT} ${LIBUTIL} Modified: projects/ofed/head/usr.bin/netstat/inet.c ============================================================================== --- projects/ofed/head/usr.bin/netstat/inet.c Mon Jan 10 03:48:41 2011 (r217214) +++ projects/ofed/head/usr.bin/netstat/inet.c Mon Jan 10 03:55:45 2011 (r217215) @@ -85,11 +85,11 @@ __FBSDID("$FreeBSD$"); char *inetname(struct in_addr *); void inetprint(struct in_addr *, int, const char *, int); #ifdef INET6 -static int udp_done, tcp_done; +static int udp_done, tcp_done, sdp_done; #endif /* INET6 */ static int -pcblist_sysctl(int proto, char **bufp, int istcp) +pcblist_sysctl(int proto, const char *name, char **bufp, int istcp) { const char *mibvar; char *buf; @@ -109,7 +109,8 @@ pcblist_sysctl(int proto, char **bufp, i mibvar = "net.inet.raw.pcblist"; break; } - + if (strncmp(name, "sdp", 3) == 0) + mibvar = "net.inet.sdp.pcblist"; len = 0; if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { if (errno != ENOENT) @@ -315,10 +316,17 @@ protopr(u_long off, const char *name, in switch (proto) { case IPPROTO_TCP: #ifdef INET6 - if (tcp_done != 0) - return; - else - tcp_done = 1; + if (strncmp(name, "sdp", 3) != 0) { + if (tcp_done != 0) + return; + else + tcp_done = 1; + } else { + if (sdp_done != 0) + return; + else + sdp_done = 1; + } #endif istcp = 1; break; @@ -332,7 +340,7 @@ protopr(u_long off, const char *name, in break; } if (live) { - if (!pcblist_sysctl(proto, &buf, istcp)) + if (!pcblist_sysctl(proto, name, &buf, istcp)) return; } else { if (!pcblist_kvm(off, &buf, istcp)) @@ -355,12 +363,18 @@ protopr(u_long off, const char *name, in } /* Ignore sockets for protocols other than the desired one. */ - if (so->xso_protocol != proto) + if (so->xso_protocol != proto) { + printf("%s proto %d, proto %d\n", + name, so->xso_protocol, proto); continue; + } /* Ignore PCBs which were freed during copyout. */ - if (inp->inp_gencnt > oxig->xig_gen) + if (inp->inp_gencnt > oxig->xig_gen) { + printf("%s gencnt %jd, xig gen %jd\n", + name, inp->inp_gencnt, oxig->xig_gen); continue; + } if ((af1 == AF_INET && (inp->inp_vflag & INP_IPV4) == 0) #ifdef INET6 Modified: projects/ofed/head/usr.bin/netstat/main.c ============================================================================== --- projects/ofed/head/usr.bin/netstat/main.c Mon Jan 10 03:48:41 2011 (r217214) +++ projects/ofed/head/usr.bin/netstat/main.c Mon Jan 10 03:55:45 2011 (r217215) @@ -208,6 +208,10 @@ struct protox { { -1, N_SCTPSTAT, 1, sctp_protopr, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, #endif +#ifdef SDP + { -1, -1, 1, protopr, + NULL, NULL, "sdp", 1, IPPROTO_TCP }, +#endif { N_DIVCBINFO, -1, 1, protopr, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, { N_RIPCBINFO, N_IPSTAT, 1, protopr, @@ -248,6 +252,10 @@ struct protox ip6protox[] = { ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, { N_RIPCBINFO, N_ICMP6STAT, 1, protopr, icmp6_stats, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, +#ifdef SDP + { -1, -1, 1, protopr, + NULL, NULL, "sdp", 1, IPPROTO_TCP }, +#endif #ifdef IPSEC { -1, N_IPSEC6STAT, 1, NULL, ipsec_stats, NULL, "ipsec6", 0, 0 },
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101100355.p0A3tj0F066226>