ifstat


Description:

ifstat is an AIX network performance tool that displays bytes transfered in a standard looking *stat output. This is basically the same info available from topas -E but with additional info that is available from the libperfstat API as well as the ability to capture output on stdout/stdin (to capture to a CSV-like file). I have also derived some statistics such as "percentage of bitrate" that gives some indication how much the interface is passing relative to what it can pass.

Additional information can be found in the PDF version of the man page.

The extended stats (beyond those found in topas -E) are:

   Percentage of Bitrate RX
   Percentage of Bitrate TX
   RX Errors
   TX Errors
   Collisions
   Average Bytes Per Packet RX
   Average Bytes Per Packet RX as % of MTU
   Average Bytes Per Packet TX
   Average Bytes Per Packet TX as % of MTU

Some of these items are available via the entstat or netstat commands but not on a per-iteration value (they are cumulative). Others are derived values that are calculated by ifstat. All of the above stats are available via the -x option.


Notes:

I ran into the "array type has incomplete element type" error with GCC > 4.0 on AIX 6.1. The problem arises due to enforcement of C standards that are now enabled in GCC 4.x. A discussion on the subject can be found in this thread. That thread refers to a more technical discussion on this page.

My fix was to modify the system header file with a change in the extern struct declaration along the discussions from the previous links. The "fix" is to change this line (in <netinet/in6_var.h>):

...
extern CONST struct protosw inet6sw[];
...

to:

...
extern CONST struct protosw *inet6sw;
...

The Makefile is written for gcc and gmake. It is expected that the above problem would not exist with VAC - although that has yet to have been verified. (A PMR has not been created / requested at this time.)

ifstat has moved from a work in progress to a more "complete" command, yet commentary as to its usefulness is not only accepted but would be appreciated.


The Distribution:

The distribution is in package format as well as source with a GNU makefile.

   6.1 Package: ifstat61.0.23.0.0.bff

   5.3 Package: ifstat53.0.23.0.0.bff

   Source: ifstat-0_23_0.tar.gz

This code is released under the GPL.