]>
Commit | Line | Data |
---|---|---|
236898d6 MT |
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 unable 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; |