summaryrefslogtreecommitdiffstats
path: root/freebsd/usr.bin/netstat/inet.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-04 11:33:00 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-04 15:28:21 +0100
commitaf5333e0a02b2295304d4e029b15ee15a4fe2b3a (patch)
treec5c43680d374f58b487eeeaf18fb7ec6b84ba074 /freebsd/usr.bin/netstat/inet.c
parentBUS_SPACE(9): Use simple memory model for ARM (diff)
downloadrtems-libbsd-af5333e0a02b2295304d4e029b15ee15a4fe2b3a.tar.bz2
Update to FreeBSD 8.4
Diffstat (limited to 'freebsd/usr.bin/netstat/inet.c')
-rw-r--r--freebsd/usr.bin/netstat/inet.c78
1 files changed, 43 insertions, 35 deletions
diff --git a/freebsd/usr.bin/netstat/inet.c b/freebsd/usr.bin/netstat/inet.c
index 4915a4dd..00b9e27a 100644
--- a/freebsd/usr.bin/netstat/inet.c
+++ b/freebsd/usr.bin/netstat/inet.c
@@ -403,35 +403,44 @@ protopr(u_long off, const char *name, int af1, int proto)
"Current listen queue sizes (qlen/incqlen/maxqlen)");
putchar('\n');
if (Aflag)
- printf("%-8.8s ", "Tcpcb");
+ printf("%-*s ", 2 * (int)sizeof(void *), "Tcpcb");
if (Lflag)
- printf("%-5.5s %-14.14s %-22.22s\n",
+ printf((Aflag && !Wflag) ?
+ "%-5.5s %-14.14s %-18.18s" :
+ "%-5.5s %-14.14s %-22.22s",
"Proto", "Listen", "Local Address");
+ else if (Tflag)
+ printf((Aflag && !Wflag) ?
+ "%-5.5s %-6.6s %-6.6s %-6.6s %-18.18s %s" :
+ "%-5.5s %-6.6s %-6.6s %-6.6s %-22.22s %s",
+ "Proto", "Rexmit", "OOORcv", "0-win",
+ "Local Address", "Foreign Address");
else {
printf((Aflag && !Wflag) ?
- "%-5.5s %-6.6s %-6.6s %-18.18s %-18.18s" :
- "%-5.5s %-6.6s %-6.6s %-22.22s %-22.22s",
+ "%-5.5s %-6.6s %-6.6s %-18.18s %-18.18s" :
+ "%-5.5s %-6.6s %-6.6s %-22.22s %-22.22s",
"Proto", "Recv-Q", "Send-Q",
"Local Address", "Foreign Address");
- if (xflag)
- printf("%-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %s\n",
- "R-MBUF", "S-MBUF", "R-CLUS",
- "S-CLUS", "R-HIWA", "S-HIWA",
- "R-LOWA", "S-LOWA", "R-BCNT",
- "S-BCNT", "R-BMAX", "S-BMAX",
- "(state)");
- else
- printf("(state)\n");
+ if (!xflag)
+ printf(" (state)");
}
+ if (xflag) {
+ printf(" %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s",
+ "R-MBUF", "S-MBUF", "R-CLUS",
+ "S-CLUS", "R-HIWA", "S-HIWA",
+ "R-LOWA", "S-LOWA", "R-BCNT",
+ "S-BCNT", "R-BMAX", "S-BMAX");
+ }
+ putchar('\n');
protopr_initialized = 1;
}
if (Lflag && so->so_qlimit == 0)
continue;
if (Aflag) {
if (istcp)
- printf("%8lx ", (u_long)inp->inp_ppcb);
+ printf("%*lx ", 2 * (int)sizeof(void *), (u_long)inp->inp_ppcb);
else
- printf("%8lx ", (u_long)so->so_pcb);
+ printf("%*lx ", 2 * (int)sizeof(void *), (u_long)so->so_pcb);
}
#ifdef INET6
if ((inp->inp_vflag & INP_IPV6) != 0)
@@ -448,6 +457,12 @@ protopr(u_long off, const char *name, int af1, int proto)
snprintf(buf1, 15, "%d/%d/%d", so->so_qlen,
so->so_incqlen, so->so_qlimit);
printf("%-14.14s ", buf1);
+ } else if (Tflag) {
+ if (istcp)
+ printf("%6ju %6ju %6u ",
+ (uintmax_t)tp->t_sndrexmitpack,
+ (uintmax_t)tp->t_rcvoopack,
+ tp->t_sndzerowin);
} else {
printf("%6u %6u ", so->so_rcv.sb_cc, so->so_snd.sb_cc);
}
@@ -506,25 +521,15 @@ protopr(u_long off, const char *name, int af1, int proto)
#endif /* INET6 */
}
if (xflag) {
- if (Lflag)
- printf("%21s %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u ",
- " ",
- so->so_rcv.sb_mcnt, so->so_snd.sb_mcnt,
- so->so_rcv.sb_ccnt, so->so_snd.sb_ccnt,
- so->so_rcv.sb_hiwat, so->so_snd.sb_hiwat,
- so->so_rcv.sb_lowat, so->so_snd.sb_lowat,
- so->so_rcv.sb_mbcnt, so->so_snd.sb_mbcnt,
- so->so_rcv.sb_mbmax, so->so_snd.sb_mbmax);
- else
- printf("%6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u ",
- so->so_rcv.sb_mcnt, so->so_snd.sb_mcnt,
- so->so_rcv.sb_ccnt, so->so_snd.sb_ccnt,
- so->so_rcv.sb_hiwat, so->so_snd.sb_hiwat,
- so->so_rcv.sb_lowat, so->so_snd.sb_lowat,
- so->so_rcv.sb_mbcnt, so->so_snd.sb_mbcnt,
- so->so_rcv.sb_mbmax, so->so_snd.sb_mbmax);
+ printf("%6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u",
+ so->so_rcv.sb_mcnt, so->so_snd.sb_mcnt,
+ so->so_rcv.sb_ccnt, so->so_snd.sb_ccnt,
+ so->so_rcv.sb_hiwat, so->so_snd.sb_hiwat,
+ so->so_rcv.sb_lowat, so->so_snd.sb_lowat,
+ so->so_rcv.sb_mbcnt, so->so_snd.sb_mbcnt,
+ so->so_rcv.sb_mbmax, so->so_snd.sb_mbmax);
}
- if (istcp && !Lflag) {
+ if (istcp && !Lflag && !xflag && !Tflag) {
if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES)
printf("%d", tp->t_state);
else {
@@ -674,6 +679,9 @@ tcp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
p(tcps_sc_sendcookie, "\t%lu cookie%s sent\n");
p(tcps_sc_recvcookie, "\t%lu cookie%s received\n");
+ p(tcps_hc_added, "\t%lu hostcache entrie%s added\n");
+ p1a(tcps_hc_bucketoverflow, "\t\t%lu bucket overflow\n");
+
p(tcps_sack_recovery_episode, "\t%lu SACK recovery episode%s\n");
p(tcps_sack_rexmits,
"\t%lu segment rexmit%s in SACK recovery episodes\n");
@@ -1043,7 +1051,7 @@ icmp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
* Dump IGMP statistics structure (pre 8.x kernel).
*/
static void
-igmp_stats_live_old(u_long off, const char *name)
+igmp_stats_live_old(const char *name)
{
struct oigmpstat oigmpstat, zerostat;
size_t len = sizeof(oigmpstat);
@@ -1103,7 +1111,7 @@ igmp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
return;
}
if (len < sizeof(igmpstat)) {
- igmp_stats_live_old(off, name);
+ igmp_stats_live_old(name);
return;
}
}