summaryrefslogtreecommitdiffstats
path: root/usr.bin/systat
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2007-06-15 17:55:44 +0000
committerjhb <jhb@FreeBSD.org>2007-06-15 17:55:44 +0000
commit6b110dc4737f233a6f6e37b1f2fafa7bdeee7520 (patch)
tree94c3db19a1982078a44534b425074f2e4c7cfb5c /usr.bin/systat
parentdcc9802ef6b74cfc276ccdfaaaea24c8877eb7d1 (diff)
downloadFreeBSD-src-6b110dc4737f233a6f6e37b1f2fafa7bdeee7520.zip
FreeBSD-src-6b110dc4737f233a6f6e37b1f2fafa7bdeee7520.tar.gz
Add a new counter for retransmitted packets due to SACK.
PR: bin/112881 Submitted by: Phil Rosenthal <pr isprime com>
Diffstat (limited to 'usr.bin/systat')
-rw-r--r--usr.bin/systat/tcp.c105
1 files changed, 54 insertions, 51 deletions
diff --git a/usr.bin/systat/tcp.c b/usr.bin/systat/tcp.c
index d247bf2..3cb201a 100644
--- a/usr.bin/systat/tcp.c
+++ b/usr.bin/systat/tcp.c
@@ -73,23 +73,24 @@ static struct tcpstat curstat, initstat, oldstat;
00 TCP Connections TCP Packets
01999999999 connections initiated 999999999 total packets sent
02999999999 connections accepted 999999999 - data
-03999999999 connections established 999999999 - data (retransmit)
-04999999999 connections dropped 999999999 - ack-only
-05999999999 - in embryonic state 999999999 - window probes
-06999999999 - on retransmit timeout 999999999 - window updates
-07999999999 - by keepalive 999999999 - urgent data only
-08999999999 - from listen queue 999999999 - control
-09 999999999 - resends by PMTU discovery
-10 TCP Timers 999999999 total packets received
-11999999999 potential rtt updates 999999999 - in sequence
-12999999999 - successful 999999999 - completely duplicate
-13999999999 delayed acks sent 999999999 - with some duplicate data
-14999999999 retransmit timeouts 999999999 - out-of-order
-15999999999 persist timeouts 999999999 - duplicate acks
-16999999999 keepalive probes 999999999 - acks
-17999999999 - timeouts 999999999 - window probes
-18 999999999 - window updates
-19 999999999 - bad checksum
+03999999999 connections established 999999999 - data (retransmit by dupack)
+04999999999 connections dropped 999999999 - data (retransmit by sack)
+05999999999 - in embryonic state 999999999 - ack-only
+06999999999 - on retransmit timeout 999999999 - window probes
+07999999999 - by keepalive 999999999 - window updates
+08999999999 - from listen queue 999999999 - urgent data only
+09 999999999 - control
+10 999999999 - resends by PMTU discovery
+11 TCP Timers 999999999 total packets received
+12999999999 potential rtt updates 999999999 - in sequence
+13999999999 - successful 999999999 - completely duplicate
+14999999999 delayed acks sent 999999999 - with some duplicate data
+15999999999 retransmit timeouts 999999999 - out-of-order
+16999999999 persist timeouts 999999999 - duplicate acks
+17999999999 keepalive probes 999999999 - acks
+18999999999 - timeouts 999999999 - window probes
+19 999999999 - window updates
+20 999999999 - bad checksum
--0123456789012345678901234567890123456789012345678901234567890123456789012345
--0 1 2 3 4 5 6 7
*/
@@ -120,23 +121,24 @@ labeltcp(void)
L(0, "TCP Connections"); R(0, "TCP Packets");
L(1, "connections initiated"); R(1, "total packets sent");
L(2, "connections accepted"); R(2, "- data");
- L(3, "connections established"); R(3, "- data (retransmit)");
- L(4, "connections dropped"); R(4, "- ack-only");
- L(5, "- in embryonic state"); R(5, "- window probes");
- L(6, "- on retransmit timeout"); R(6, "- window updates");
- L(7, "- by keepalive"); R(7, "- urgent data only");
- L(8, "- from listen queue"); R(8, "- control");
- R(9, "- resends by PMTU discovery");
- L(10, "TCP Timers"); R(10, "total packets received");
- L(11, "potential rtt updates"); R(11, "- in sequence");
- L(12, "- successful"); R(12, "- completely duplicate");
- L(13, "delayed acks sent"); R(13, "- with some duplicate data");
- L(14, "retransmit timeouts"); R(14, "- out-of-order");
- L(15, "persist timeouts"); R(15, "- duplicate acks");
- L(16, "keepalive probes"); R(16, "- acks");
- L(17, "- timeouts"); R(17, "- window probes");
- R(18, "- window updates");
- R(19, "- bad checksum");
+ L(3, "connections established"); R(3, "- data (retransmit by dupack)");
+ L(4, "connections dropped"); R(4, "- data (retransmit by sack)");
+ L(5, "- in embryonic state"); R(5, "- ack-only");
+ L(6, "- on retransmit timeout"); R(6, "- window probes");
+ L(7, "- by keepalive"); R(7, "- window updates");
+ L(8, "- from listen queue"); R(8, "- urgent data only");
+ R(9, "- control");
+ R(10, "- resends by PMTU discovery");
+ L(11, "TCP Timers"); R(11, "total packets received");
+ L(12, "potential rtt updates"); R(12, "- in sequence");
+ L(13, "- successful"); R(13, "- completely duplicate");
+ L(14, "delayed acks sent"); R(14, "- with some duplicate data");
+ L(15, "retransmit timeouts"); R(15, "- out-of-order");
+ L(16, "persist timeouts"); R(16, "- duplicate acks");
+ L(17, "keepalive probes"); R(17, "- acks");
+ L(18, "- timeouts"); R(18, "- window probes");
+ R(19, "- window updates");
+ R(20, "- bad checksum");
#undef L
#undef R
}
@@ -183,7 +185,7 @@ domode(struct tcpstat *ret)
DO(tcps_sndpack);
DO(tcps_sndbyte);
DO(tcps_sndrexmitpack);
- DO(tcps_sndrexmitbyte);
+ DO(tcps_sack_rexmits);
DO(tcps_sndacks);
DO(tcps_sndprobe);
DO(tcps_sndurg);
@@ -243,22 +245,23 @@ showtcp(void)
L(1, tcps_connattempt); R(1, tcps_sndtotal);
L(2, tcps_accepts); R(2, tcps_sndpack);
L(3, tcps_connects); R(3, tcps_sndrexmitpack);
- L(4, tcps_drops); R(4, tcps_sndacks);
- L(5, tcps_conndrops); R(5, tcps_sndprobe);
- L(6, tcps_timeoutdrop); R(6, tcps_sndwinup);
- L(7, tcps_keepdrops); R(7, tcps_sndurg);
- L(8, tcps_listendrop); R(8, tcps_sndctrl);
- R(9, tcps_mturesent);
- R(10, tcps_rcvtotal);
- L(11, tcps_segstimed); R(11, tcps_rcvpack);
- L(12, tcps_rttupdated); R(12, tcps_rcvduppack);
- L(13, tcps_delack); R(13, tcps_rcvpartduppack);
- L(14, tcps_rexmttimeo); R(14, tcps_rcvoopack);
- L(15, tcps_persisttimeo); R(15, tcps_rcvdupack);
- L(16, tcps_keepprobe); R(16, tcps_rcvackpack);
- L(17, tcps_keeptimeo); R(17, tcps_rcvwinprobe);
- R(18, tcps_rcvwinupd);
- R(19, tcps_rcvbadsum);
+ L(4, tcps_drops); R(4, tcps_sack_rexmits);
+ L(5, tcps_conndrops); R(5, tcps_sndacks);
+ L(6, tcps_timeoutdrop); R(6, tcps_sndprobe);
+ L(7, tcps_keepdrops); R(7, tcps_sndwinup);
+ L(8, tcps_listendrop); R(8, tcps_sndurg);
+ R(9, tcps_sndctrl);
+ R(10, tcps_mturesent);
+ R(11, tcps_rcvtotal);
+ L(12, tcps_segstimed); R(12, tcps_rcvpack);
+ L(13, tcps_rttupdated); R(13, tcps_rcvduppack);
+ L(14, tcps_delack); R(14, tcps_rcvpartduppack);
+ L(15, tcps_rexmttimeo); R(15, tcps_rcvoopack);
+ L(16, tcps_persisttimeo); R(16, tcps_rcvdupack);
+ L(17, tcps_keepprobe); R(17, tcps_rcvackpack);
+ L(18, tcps_keeptimeo); R(18, tcps_rcvwinprobe);
+ R(19, tcps_rcvwinupd);
+ R(20, tcps_rcvbadsum);
#undef DO
#undef L
#undef R
OpenPOWER on IntegriCloud