1 |
--- net-tools-1.60/statistics.c.tcpdata 2005-04-26 10:38:10.000000000 +0200 |
2 |
+++ net-tools-1.60/statistics.c 2005-04-26 10:36:19.000000000 +0200 |
3 |
@@ -1,6 +1,6 @@ |
4 |
/* |
5 |
* Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL. |
6 |
- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $ |
7 |
+ * $Id: statistics.c,v 1.17 2002/04/28 15:41:01 ak Exp $ |
8 |
* 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br> |
9 |
* 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br> |
10 |
* 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels |
11 |
@@ -185,6 +185,44 @@ |
12 |
"directly queued to user"), opt_number }, |
13 |
{ "SockMallocOOM", N_("Ran %lu times out of system memory during " |
14 |
"packet sending"), opt_number }, |
15 |
+ { "TCPPureAcks", N_("%u acknowledgments not containing data received"), opt_number }, |
16 |
+ { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, |
17 |
+ { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, |
18 |
+ { "TCPSackRecovery", N_("%u times recovered from packet loss due to SACK data"), opt_number }, |
19 |
+ { "TCPSACKReneging", N_("%u bad SACKs received"), opt_number }, |
20 |
+ { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, |
21 |
+ { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, |
22 |
+ { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, |
23 |
+ { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, |
24 |
+ { "TCPFullUndo", N_("%u congestion windows fully recovered"), opt_number }, |
25 |
+ { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, |
26 |
+ { "TCPDSackUndo", N_("%u congestion window recovered using DSACK"), opt_number }, |
27 |
+ { "TCPLossUndo", N_("%u congestion windows recovered after partial ack"), opt_number }, |
28 |
+ { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, |
29 |
+ { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, |
30 |
+ { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, |
31 |
+ { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, |
32 |
+ { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, |
33 |
+ { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, |
34 |
+ { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, |
35 |
+ { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, |
36 |
+ { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, |
37 |
+ { "TCPSackRecoveryFail", N_("%u sack retransmits failed"), opt_number }, |
38 |
+ { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, |
39 |
+ { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, |
40 |
+ { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, |
41 |
+ { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, |
42 |
+ { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, |
43 |
+ { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, |
44 |
+ { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, |
45 |
+ { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, |
46 |
+ { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, |
47 |
+ { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, |
48 |
+ { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, |
49 |
+ { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, |
50 |
+ { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, |
51 |
+ { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, |
52 |
+ { "TCPLoss", N_("%u TCP data loss events") }, |
53 |
}; |
54 |
|
55 |
struct tabtab { |
56 |
@@ -222,7 +260,8 @@ |
57 |
ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry), |
58 |
sizeof(struct entry), cmpentries); |
59 |
if (!ent) { /* try our best */ |
60 |
- printf("%*s%s: %d\n", states[state].indent, "", title, val); |
61 |
+ if (val) |
62 |
+ printf("%*s%s: %d\n", states[state].indent, "", title, val); |
63 |
return; |
64 |
} |
65 |
type = ent->type; |