Package: net-tools
Version: 1.60-24.1
Severity: normal
Tags: patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
netstat -s will mess up any number > 2^31.
Example, input is:
bjorn@canardo:~$ tail -2 /proc/net/netstat
IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts
OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets
OutBcastOctets
IpExt: 2 0 152463 40 2363641 84544 89530720060 449078447969 4692500 3059
717279980 6612480
Output becomes (not synchronized so counters are changed, but the pattern
should still be obvious):
bjorn@canardo:~$ netstat -s |sed -ne '/^IpExt/,$p'
IpExt:
InNoRoutes: 2
InMcastPkts: 152464
OutMcastPkts: 40
InBcastPkts: 2363664
OutBcastPkts: 84545
InOctets: -662600012
OutOctets: -1810944975
InMcastOctets: 4692532
OutMcastOctets: 3059
InBcastOctets: 717286964
OutBcastOctets: 6612556
The attached patch fixes this for me, but may need some polishing to be
useful cross-platform... The patch is based on top of the current Debian
package (1.60-24.1) with all other patches applied.
Bjørn
- -- System Information:
Debian Release: 6.0.2
APT prefers stable
APT policy: (700, 'stable'), (600, 'unstable'), (500, 'stable-updates'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages net-tools depends on:
ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib
net-tools recommends no packages.
net-tools suggests no packages.
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEARECAAYFAk5khbcACgkQ10rqkowbIsllxQCfT+/JFd0oRnNDCpnT068uGM9i
YjYAnRKBmRIJPdQm0bXLi/pjKadEZtDG
=viuW
-----END PGP SIGNATURE-----
--- net-tools-1.60/statistics.c.debian-orig 2011-09-05 09:52:16.000000000 +0200
+++ net-tools-1.60/statistics.c 2011-09-05 09:53:18.000000000 +0200
@@ -64,115 +64,115 @@
struct entry Iptab[] =
{
{"Forwarding", N_("Forwarding is %s"), i_forward | I_STATIC},
- {"DefaultTTL", N_("Default TTL is %u"), number | I_STATIC},
- {"InReceives", N_("%u total packets received"), number},
- {"InHdrErrors", N_("%u with invalid headers"), opt_number},
- {"InAddrErrors", N_("%u with invalid addresses"), opt_number},
- {"ForwDatagrams", N_("%u forwarded"), number},
- {"InUnknownProtos", N_("%u with unknown protocol"), opt_number},
- {"InDiscards", N_("%u incoming packets discarded"), number},
- {"InDelivers", N_("%u incoming packets delivered"), number},
- {"OutRequests", N_("%u requests sent out"), number}, /*? */
- {"OutDiscards", N_("%u outgoing packets dropped"), opt_number},
- {"OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
- {"ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
- {"ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */
- {"ReasmOKs", N_("%u packets reassembled ok"), opt_number},
- {"ReasmFails", N_("%u packet reassembles failed"), opt_number},
- {"FragOKs", N_("%u fragments received ok"), opt_number},
- {"FragFails", N_("%u fragments failed"), opt_number},
- {"FragCreates", N_("%u fragments created"), opt_number}
+ {"DefaultTTL", N_("Default TTL is %lu"), number | I_STATIC},
+ {"InReceives", N_("%lu total packets received"), number},
+ {"InHdrErrors", N_("%lu with invalid headers"), opt_number},
+ {"InAddrErrors", N_("%lu with invalid addresses"), opt_number},
+ {"ForwDatagrams", N_("%lu forwarded"), number},
+ {"InUnknownProtos", N_("%lu with unknown protocol"), opt_number},
+ {"InDiscards", N_("%lu incoming packets discarded"), number},
+ {"InDelivers", N_("%lu incoming packets delivered"), number},
+ {"OutRequests", N_("%lu requests sent out"), number}, /*? */
+ {"OutDiscards", N_("%lu outgoing packets dropped"), opt_number},
+ {"OutNoRoutes", N_("%lu dropped because of missing route"), opt_number},
+ {"ReasmTimeout", N_("%lu fragments dropped after timeout"), opt_number},
+ {"ReasmReqds", N_("%lu reassemblies required"), opt_number}, /* ? */
+ {"ReasmOKs", N_("%lu packets reassembled ok"), opt_number},
+ {"ReasmFails", N_("%lu packet reassembles failed"), opt_number},
+ {"FragOKs", N_("%lu fragments received ok"), opt_number},
+ {"FragFails", N_("%lu fragments failed"), opt_number},
+ {"FragCreates", N_("%lu fragments created"), opt_number}
};
struct entry Ip6tab[] =
{
- {"Ip6InReceives", N_("%u total packets received"), number},
- {"Ip6InHdrErrors", N_("%u with invalid headers"), opt_number},
- {"Ip6InTooBigErrors", N_("%u with packets too big"), opt_number},
- {"Ip6InNoRoutes", N_("%u incoming packets with no route"), opt_number},
- {"Ip6InAddrErrors", N_("%u with invalid addresses"), opt_number},
- {"Ip6InUnknownProtos", N_("%u with unknown protocol"), opt_number},
- {"Ip6InTruncatedPkts", N_("%u with truncated packets"), opt_number},
- {"Ip6InDiscards", N_("%u incoming packets discarded"), number},
- {"Ip6InDelivers", N_("%u incoming packets delivered"), number},
- {"Ip6OutForwDatagrams", N_("%u forwarded"), number},
- {"Ip6OutRequests", N_("%u requests sent out"), number}, /*? */
- {"Ip6OutDiscards", N_("%u outgoing packets dropped"), opt_number},
- {"Ip6OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
- {"Ip6ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
- {"Ip6ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */
- {"Ip6ReasmOKs", N_("%u packets reassembled ok"), opt_number},
- {"Ip6ReasmFails", N_("%u packet reassembles failed"), opt_number},
- {"Ip6FragOKs", N_("%u fragments received ok"), opt_number},
- {"Ip6FragFails", N_("%u fragments failed"), opt_number},
- {"Ip6FragCreates", N_("%u fragments created"), opt_number},
- {"Ip6InMcastPkts", N_("%u incoming multicast packets"), opt_number},
- {"Ip6OutMcastPkts", N_("%u outgoing multicast packets"), opt_number}
+ {"Ip6InReceives", N_("%lu total packets received"), number},
+ {"Ip6InHdrErrors", N_("%lu with invalid headers"), opt_number},
+ {"Ip6InTooBigErrors", N_("%lu with packets too big"), opt_number},
+ {"Ip6InNoRoutes", N_("%lu incoming packets with no route"), opt_number},
+ {"Ip6InAddrErrors", N_("%lu with invalid addresses"), opt_number},
+ {"Ip6InUnknownProtos", N_("%lu with unknown protocol"), opt_number},
+ {"Ip6InTruncatedPkts", N_("%lu with truncated packets"), opt_number},
+ {"Ip6InDiscards", N_("%lu incoming packets discarded"), number},
+ {"Ip6InDelivers", N_("%lu incoming packets delivered"), number},
+ {"Ip6OutForwDatagrams", N_("%lu forwarded"), number},
+ {"Ip6OutRequests", N_("%lu requests sent out"), number}, /*? */
+ {"Ip6OutDiscards", N_("%lu outgoing packets dropped"), opt_number},
+ {"Ip6OutNoRoutes", N_("%lu dropped because of missing route"), opt_number},
+ {"Ip6ReasmTimeout", N_("%lu fragments dropped after timeout"), opt_number},
+ {"Ip6ReasmReqds", N_("%lu reassemblies required"), opt_number}, /* ? */
+ {"Ip6ReasmOKs", N_("%lu packets reassembled ok"), opt_number},
+ {"Ip6ReasmFails", N_("%lu packet reassembles failed"), opt_number},
+ {"Ip6FragOKs", N_("%lu fragments received ok"), opt_number},
+ {"Ip6FragFails", N_("%lu fragments failed"), opt_number},
+ {"Ip6FragCreates", N_("%lu fragments created"), opt_number},
+ {"Ip6InMcastPkts", N_("%lu incoming multicast packets"), opt_number},
+ {"Ip6OutMcastPkts", N_("%lu outgoing multicast packets"), opt_number}
};
struct entry Icmptab[] =
{
- {"InMsgs", N_("%u ICMP messages received"), number},
- {"InErrors", N_("%u input ICMP message failed."), number},
- {"InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
- {"InTimeExcds", N_("timeout in transit: %u"), i_inp_icmp | I_TITLE},
- {"InParmProbs", N_("wrong parameters: %u"), i_inp_icmp | I_TITLE}, /*? */
- {"InSrcQuenchs", N_("source quenches: %u"), i_inp_icmp | I_TITLE},
- {"InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
- {"InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
- {"InEchoReps", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
- {"InTimestamps", N_("timestamp request: %u"), i_inp_icmp | I_TITLE},
- {"InTimestampReps", N_("timestamp reply: %u"), i_inp_icmp | I_TITLE},
- {"InAddrMasks", N_("address mask request: %u"), i_inp_icmp | I_TITLE}, /*? */
- {"InAddrMaskReps", N_("address mask replies: %u"), i_inp_icmp | I_TITLE}, /*? */
- {"OutMsgs", N_("%u ICMP messages sent"), number},
- {"OutErrors", N_("%u ICMP messages failed"), number},
- {"OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
- {"OutTimeExcds", N_("time exceeded: %u"), i_outp_icmp | I_TITLE},
- {"OutParmProbs", N_("wrong parameters: %u"), i_outp_icmp | I_TITLE}, /*? */
- {"OutSrcQuenchs", N_("source quench: %u"), i_outp_icmp | I_TITLE},
- {"OutRedirects", N_("redirect: %u"), i_outp_icmp | I_TITLE},
- {"OutEchos", N_("echo request: %u"), i_outp_icmp | I_TITLE},
- {"OutEchoReps", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
- {"OutTimestamps", N_("timestamp requests: %u"), i_outp_icmp | I_TITLE},
- {"OutTimestampReps", N_("timestamp replies: %u"), i_outp_icmp | I_TITLE},
- {"OutAddrMasks", N_("address mask requests: %u"), i_outp_icmp | I_TITLE},
- {"OutAddrMaskReps", N_("address mask replies: %u"), i_outp_icmp | I_TITLE},
+ {"InMsgs", N_("%lu ICMP messages received"), number},
+ {"InErrors", N_("%lu input ICMP message failed."), number},
+ {"InDestUnreachs", N_("destination unreachable: %lu"), i_inp_icmp | I_TITLE},
+ {"InTimeExcds", N_("timeout in transit: %lu"), i_inp_icmp | I_TITLE},
+ {"InParmProbs", N_("wrong parameters: %lu"), i_inp_icmp | I_TITLE}, /*? */
+ {"InSrcQuenchs", N_("source quenches: %lu"), i_inp_icmp | I_TITLE},
+ {"InRedirects", N_("redirects: %lu"), i_inp_icmp | I_TITLE},
+ {"InEchos", N_("echo requests: %lu"), i_inp_icmp | I_TITLE},
+ {"InEchoReps", N_("echo replies: %lu"), i_inp_icmp | I_TITLE},
+ {"InTimestamps", N_("timestamp request: %lu"), i_inp_icmp | I_TITLE},
+ {"InTimestampReps", N_("timestamp reply: %lu"), i_inp_icmp | I_TITLE},
+ {"InAddrMasks", N_("address mask request: %lu"), i_inp_icmp | I_TITLE}, /*? */
+ {"InAddrMaskReps", N_("address mask replies: %lu"), i_inp_icmp | I_TITLE}, /*? */
+ {"OutMsgs", N_("%lu ICMP messages sent"), number},
+ {"OutErrors", N_("%lu ICMP messages failed"), number},
+ {"OutDestUnreachs", N_("destination unreachable: %lu"), i_outp_icmp | I_TITLE},
+ {"OutTimeExcds", N_("time exceeded: %lu"), i_outp_icmp | I_TITLE},
+ {"OutParmProbs", N_("wrong parameters: %lu"), i_outp_icmp | I_TITLE}, /*? */
+ {"OutSrcQuenchs", N_("source quench: %lu"), i_outp_icmp | I_TITLE},
+ {"OutRedirects", N_("redirect: %lu"), i_outp_icmp | I_TITLE},
+ {"OutEchos", N_("echo request: %lu"), i_outp_icmp | I_TITLE},
+ {"OutEchoReps", N_("echo replies: %lu"), i_outp_icmp | I_TITLE},
+ {"OutTimestamps", N_("timestamp requests: %lu"), i_outp_icmp | I_TITLE},
+ {"OutTimestampReps", N_("timestamp replies: %lu"), i_outp_icmp | I_TITLE},
+ {"OutAddrMasks", N_("address mask requests: %lu"), i_outp_icmp | I_TITLE},
+ {"OutAddrMaskReps", N_("address mask replies: %lu"), i_outp_icmp | I_TITLE},
};
struct entry Icmp6tab[] =
{
- {"Icmp6InMsgs", N_("%u ICMP messages received"), number},
- {"Icmp6InErrors", N_("%u input ICMP message failed."), number},
- {"Icmp6InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InPktTooBigs", N_("packets too big: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InParmProblems", N_("parameter problem: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InEchoReplies", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InGroupMembQueries", N_("group member queries: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InGroupMembResponses", N_("group member responses: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InGroupMembReductions", N_("group member reductions: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InRouterSolicits", N_("router solicits: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InRouterAdvertisements", N_("router advertisement: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InNeighborSolicits", N_("neighbour solicits: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
- {"Icmp6OutMsgs", N_("%u ICMP messages sent"), number},
- {"Icmp6OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutPktTooBigs", N_("packets too big: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutParmProblems", N_("parameter problem: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutEchos", N_("echo requests: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutEchoReplies", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutGroupMembQueries", N_("group member queries: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutGroupMembResponses", N_("group member responses: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutGroupMembReductions", N_("group member reductions: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutRouterSolicits", N_("router solicits: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %u"), i_outp_icmp | I_TITLE},
- {"Icmp6OutRedirects", N_("redirects: %u"), i_outp_icmp | I_TITLE},
+ {"Icmp6InMsgs", N_("%lu ICMP messages received"), number},
+ {"Icmp6InErrors", N_("%lu input ICMP message failed."), number},
+ {"Icmp6InDestUnreachs", N_("destination unreachable: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InPktTooBigs", N_("packets too big: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InParmProblems", N_("parameter problem: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InEchos", N_("echo requests: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InEchoReplies", N_("echo replies: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InGroupMembQueries", N_("group member queries: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InGroupMembResponses", N_("group member responses: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InGroupMembReductions", N_("group member reductions: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InRouterSolicits", N_("router solicits: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InRouterAdvertisements", N_("router advertisement: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InNeighborSolicits", N_("neighbour solicits: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6InRedirects", N_("redirects: %lu"), i_inp_icmp | I_TITLE},
+ {"Icmp6OutMsgs", N_("%lu ICMP messages sent"), number},
+ {"Icmp6OutDestUnreachs", N_("destination unreachable: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutPktTooBigs", N_("packets too big: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutParmProblems", N_("parameter problem: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutEchos", N_("echo requests: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutEchoReplies", N_("echo replies: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutGroupMembQueries", N_("group member queries: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutGroupMembResponses", N_("group member responses: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutGroupMembReductions", N_("group member reductions: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutRouterSolicits", N_("router solicits: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %lu"), i_outp_icmp | I_TITLE},
+ {"Icmp6OutRedirects", N_("redirects: %lu"), i_outp_icmp | I_TITLE},
};
struct entry Tcptab[] =
@@ -181,120 +181,120 @@
{"RtoMin", "", number},
{"RtoMax", "", number},
{"MaxConn", "", number},
- {"ActiveOpens", N_("%u active connections openings"), number},
- {"PassiveOpens", N_("%u passive connection openings"), number},
- {"AttemptFails", N_("%u failed connection attempts"), number},
- {"EstabResets", N_("%u connection resets received"), number},
- {"CurrEstab", N_("%u connections established"), number},
- {"InSegs", N_("%u segments received"), number},
- {"OutSegs", N_("%u segments send out"), number},
- {"RetransSegs", N_("%u segments retransmited"), number},
- {"InErrs", N_("%u bad segments received."), number},
- {"OutRsts", N_("%u resets sent"), number},
+ {"ActiveOpens", N_("%lu active connections openings"), number},
+ {"PassiveOpens", N_("%lu passive connection openings"), number},
+ {"AttemptFails", N_("%lu failed connection attempts"), number},
+ {"EstabResets", N_("%lu connection resets received"), number},
+ {"CurrEstab", N_("%lu connections established"), number},
+ {"InSegs", N_("%lu segments received"), number},
+ {"OutSegs", N_("%lu segments send out"), number},
+ {"RetransSegs", N_("%lu segments retransmited"), number},
+ {"InErrs", N_("%lu bad segments received."), number},
+ {"OutRsts", N_("%lu resets sent"), number},
};
struct entry Udptab[] =
{
- {"InDatagrams", N_("%u packets received"), number},
- {"NoPorts", N_("%u packets to unknown port received."), number},
- {"InErrors", N_("%u packet receive errors"), number},
- {"OutDatagrams", N_("%u packets sent"), number},
+ {"InDatagrams", N_("%lu packets received"), number},
+ {"NoPorts", N_("%lu packets to unknown port received."), number},
+ {"InErrors", N_("%lu packet receive errors"), number},
+ {"OutDatagrams", N_("%lu packets sent"), number},
};
struct entry Udp6tab[] =
{
- {"Udp6InDatagrams", N_("%u packets received"), number},
- {"Udp6NoPorts", N_("%u packets to unknown port received."), number},
- {"Udp6InErrors", N_("%u packet receive errors"), number},
- {"Udp6OutDatagrams", N_("%u packets sent"), number},
+ {"Udp6InDatagrams", N_("%lu packets received"), number},
+ {"Udp6NoPorts", N_("%lu packets to unknown port received."), number},
+ {"Udp6InErrors", N_("%lu packet receive errors"), number},
+ {"Udp6OutDatagrams", N_("%lu packets sent"), number},
};
struct entry Tcpexttab[] =
{
- {"SyncookiesSent", N_("%u SYN cookies sent"), opt_number},
- {"SyncookiesRecv", N_("%u SYN cookies received"), opt_number},
- {"SyncookiesFailed", N_("%u invalid SYN cookies received"), opt_number},
+ {"SyncookiesSent", N_("%lu SYN cookies sent"), opt_number},
+ {"SyncookiesRecv", N_("%lu SYN cookies received"), opt_number},
+ {"SyncookiesFailed", N_("%lu invalid SYN cookies received"), opt_number},
- { "EmbryonicRsts", N_("%u resets received for embryonic SYN_RECV sockets"),
+ { "EmbryonicRsts", N_("%lu resets received for embryonic SYN_RECV sockets"),
opt_number },
- { "PruneCalled", N_("%u packets pruned from receive queue because of socket"
+ { "PruneCalled", N_("%lu packets pruned from receive queue because of socket"
" buffer overrun"), opt_number },
/* obsolete: 2.2.0 doesn't do that anymore */
- { "RcvPruned", N_("%u packets pruned from receive queue"), opt_number },
- { "OfoPruned", N_("%u packets dropped from out-of-order queue because of"
+ { "RcvPruned", N_("%lu packets pruned from receive queue"), opt_number },
+ { "OfoPruned", N_("%lu packets dropped from out-of-order queue because of"
" socket buffer overrun"), opt_number },
- { "OutOfWindowIcmps", N_("%u ICMP packets dropped because they were "
+ { "OutOfWindowIcmps", N_("%lu ICMP packets dropped because they were "
"out-of-window"), opt_number },
- { "LockDroppedIcmps", N_("%u ICMP packets dropped because"
+ { "LockDroppedIcmps", N_("%lu ICMP packets dropped because"
" socket was locked"), opt_number },
- { "TW", N_("%u TCP sockets finished time wait in fast timer"), opt_number },
- { "TWRecycled", N_("%u time wait sockets recycled by time stamp"), opt_number },
- { "TWKilled", N_("%u TCP sockets finished time wait in slow timer"), opt_number },
- { "PAWSPassive", N_("%u passive connections rejected because of"
+ { "TW", N_("%lu TCP sockets finished time wait in fast timer"), opt_number },
+ { "TWRecycled", N_("%lu time wait sockets recycled by time stamp"), opt_number },
+ { "TWKilled", N_("%lu TCP sockets finished time wait in slow timer"), opt_number },
+ { "PAWSPassive", N_("%lu passive connections rejected because of"
" time stamp"), opt_number },
- { "PAWSActive", N_("%u active connections rejected because of "
+ { "PAWSActive", N_("%lu active connections rejected because of "
"time stamp"), opt_number },
- { "PAWSEstab", N_("%u packets rejects in established connections because of"
+ { "PAWSEstab", N_("%lu packets rejects in established connections because of"
" timestamp"), opt_number },
- { "DelayedACKs", N_("%u delayed acks sent"), opt_number },
- { "DelayedACKLocked", N_("%u delayed acks further delayed because of"
+ { "DelayedACKs", N_("%lu delayed acks sent"), opt_number },
+ { "DelayedACKLocked", N_("%lu delayed acks further delayed because of"
" locked socket"), opt_number },
- { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number },
- { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"),
+ { "DelayedACKLost", N_("Quick ack mode was activated %lu times"), opt_number },
+ { "ListenOverflows", N_("%lu times the listen queue of a socket overflowed"),
opt_number },
- { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number },
- { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."),
+ { "ListenDrops", N_("%lu SYNs to LISTEN sockets dropped"), opt_number },
+ { "TCPPrequeued", N_("%lu packets directly queued to recvmsg prequeue."),
opt_number },
- { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number },
- { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"),
+ { "TCPDirectCopyFromBacklog", N_("%lu bytes directly in process context from backlog"), opt_number },
+ { "TCPDirectCopyFromPrequeue", N_("%lu bytes directly received in process context from prequeue"),
opt_number },
- { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number },
- { "TCPHPHits", N_("%u packet headers predicted"), number },
- { "TCPHPHitsToUser", N_("%u packets header predicted and "
+ { "TCPPrequeueDropped", N_("%lu packets dropped from prequeue"), opt_number },
+ { "TCPHPHits", N_("%lu packet headers predicted"), number },
+ { "TCPHPHitsToUser", N_("%lu packets header predicted and "
"directly queued to user"), opt_number },
- { "SockMallocOOM", N_("Ran %u times out of system memory during "
+ { "SockMallocOOM", N_("Ran %lu times out of system memory during "
"packet sending"), opt_number },
- { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number },
- { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number },
- { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number },
- { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number },
- { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number },
- { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number },
- { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number },
- { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number },
- { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number },
- { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number },
- { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number },
- { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number },
- { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number },
- { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number },
- { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number },
- { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number },
- { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number },
- { "TCPFastRetrans", N_("%u fast retransmits"), opt_number },
- { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number },
- { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number },
- { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number },
- { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number },
- { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number },
- { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number },
- { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number },
- { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number },
- { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number },
- { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number },
- { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number },
- { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number },
- { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number },
- { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number },
- { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number },
- { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number },
- { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number },
- { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number },
- { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number },
- { "TCPLoss", N_("%u TCP data loss events"), opt_number },
- { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"),
+ { "TCPPureAcks", N_("%lu acknowledgments not containing data payload received"), opt_number },
+ { "TCPHPAcks", N_("%lu predicted acknowledgments"), opt_number },
+ { "TCPRenoRecovery", N_("%lu times recovered from packet loss due to fast retransmit"), opt_number },
+ { "TCPSackRecovery", N_("%lu times recovered from packet loss by selective acknowledgements"), opt_number },
+ { "TCPSACKReneging", N_("%lu bad SACK blocks received"), opt_number },
+ { "TCPFACKReorder", N_("Detected reordering %lu times using FACK"), opt_number },
+ { "TCPSACKReorder", N_("Detected reordering %lu times using SACK"), opt_number },
+ { "TCPTSReorder", N_("Detected reordering %lu times using time stamp"), opt_number },
+ { "TCPRenoReorder", N_("Detected reordering %lu times using reno fast retransmit"), opt_number },
+ { "TCPFullUndo", N_("%lu congestion windows fully recovered without slow start"), opt_number },
+ { "TCPPartialUndo", N_("%lu congestion windows partially recovered using Hoe heuristic"), opt_number },
+ { "TCPDSackUndo", N_("%lu congestion window recovered without slow start using DSACK"), opt_number },
+ { "TCPLossUndo", N_("%lu congestion windows recovered without slow start after partial ack"), opt_number },
+ { "TCPLostRetransmits", N_("%lu retransmits lost"), opt_number },
+ { "TCPRenoFailures", N_("%lu timeouts after reno fast retransmit"), opt_number },
+ { "TCPSackFailures", N_("%lu timeouts after SACK recovery"), opt_number },
+ { "TCPLossFailures", N_("%lu timeouts in loss state"), opt_number },
+ { "TCPFastRetrans", N_("%lu fast retransmits"), opt_number },
+ { "TCPForwardRetrans", N_("%lu forward retransmits"), opt_number },
+ { "TCPSlowStartRetrans", N_("%lu retransmits in slow start"), opt_number },
+ { "TCPTimeouts", N_("%lu other TCP timeouts"), opt_number },
+ { "TCPRenoRecoveryFailed", N_("%lu reno fast retransmits failed"), opt_number },
+ { "TCPSackRecoveryFail", N_("%lu SACK retransmits failed"), opt_number },
+ { "TCPSchedulerFailed", N_("%lu times receiver scheduled too late for direct processing"), opt_number },
+ { "TCPRcvCollapsed", N_("%lu packets collapsed in receive queue due to low socket buffer"), opt_number },
+ { "TCPDSACKOldSent", N_("%lu DSACKs sent for old packets"), opt_number },
+ { "TCPDSACKOfoSent", N_("%lu DSACKs sent for out of order packets"), opt_number },
+ { "TCPDSACKRecv", N_("%lu DSACKs received"), opt_number },
+ { "TCPDSACKOfoRecv", N_("%lu DSACKs for out of order packets received"), opt_number },
+ { "TCPAbortOnSyn", N_("%lu connections reset due to unexpected SYN"), opt_number },
+ { "TCPAbortOnData", N_("%lu connections reset due to unexpected data"), opt_number },
+ { "TCPAbortOnClose", N_("%lu connections reset due to early user close"), opt_number },
+ { "TCPAbortOnMemory", N_("%lu connections aborted due to memory pressure"), opt_number },
+ { "TCPAbortOnTimeout", N_("%lu connections aborted due to timeout"), opt_number },
+ { "TCPAbortOnLinger", N_("%lu connections aborted after user close in linger timeout"), opt_number },
+ { "TCPAbortFailed", N_("%lu times unabled to send RST due to no memory"), opt_number },
+ { "TCPMemoryPressures", N_("TCP ran low on memory %lu times"), opt_number },
+ { "TCPLoss", N_("%lu TCP data loss events"), opt_number },
+ { "TCPDSACKUndo", N_("%lu congestion windows recovered without slow start by DSACK"),
opt_number },
- { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number },
+ { "TCPRenoRecoveryFail", N_("%lu classic Reno fast retransmits failed"), opt_number },
};
struct tabtab {
@@ -330,7 +330,7 @@
return strcmp(((struct entry *) a)->title, ((struct entry *) b)->title);
}
-void printval(struct tabtab *tab, char *title, int val)
+void printval(struct tabtab *tab, char *title, long int val)
{
struct entry *ent = NULL, key;
int type;
@@ -342,7 +342,7 @@
sizeof(struct entry), cmpentries);
if (!ent) { /* try our best */
if (val)
- printf("%*s%s: %d\n", states[state].indent, "", title, val);
+ printf("%*s%s: %ld\n", states[state].indent, "", title, val);
return;
}
type = ent->type;