1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
.\" netsniff-ng - the packet sniffing beast
.\" Copyright 2013 Daniel Borkmann.
.\" Subject to the GPL, version 2.
.TH IFPPS 8 "03 March 2013" "Linux" "netsniff-ng toolkit"
.SH NAME
ifpps \- top-like networking and system statistics
.SH SYNOPSIS
\fB ifpps\fR { [\fIoptions\fR] | [\fIdevice\fR] }
.SH DESCRIPTION
ifpps is a small utility which periodically provides top-like networking
and system statistics from the kernel. ifpps gathers its data directly
from procfs files and does not apply any user space monitoring libraries
which could falsify statistics on high load.
For instance, consider the following scenario: two directly connected
Linux machines, each with an Intel Core 2 Quad Q6600 2.40GHz CPUs, 4 GB
RAM, and an Intel 82566DC-2 Gigabit Ethernet NIC, are used for performance
evaluation. One machine generates 64 byte network packets by using the
kernel space packet generator, pktgen, with a maximum possible packet rate.
The other machine displays statistics about incoming network packets by
using i) iptraf(8) and ii) ifpps.
iptraf which incorporates pcap(3) shows an average packet rate of
246,000 pps, while on the other hand, ifpps shows an average packet rate
of 1,378,000 pps. Hence, due to packet copies and deferring statistical
calculations to user space, a measurement error of approx. 460 per cent
occurs. Tools like iptraf might display much more information such as
TCP per flow statistics (therefore the use of the pcap library), which
is not implemented in ifpps, because overall networking statistics is
our focus; statistics, which are also fairly reliable under high packet
load.
.SH OPTIONS
.SS -d <netdev>, --dev <netdev>
Networking device to fetch statistics from, e.g. eth0, wlan0.
.SS -t <time>, --interval <time>
Statistics refresh interval in milliseconds, default is 1000ms(1 sec).
.SS -p, --promisc
Turn on promiscuous mode for the given networking device.
.SS -c, --csv
Output (once) the ncurses data to the terminal as gnuplot(1)-ready data.
.SS -l, --loop
Continuously output the terminal data after a refresh interval. This option
is available only if option ``-c'' is given. For ``-l'' it is usually
recommended to redirect the output into a file that will be processed
with gnuplot(1).
.SS -v, --version
Show version information.
.SS -h, --help
Show user help.
.SH USAGE EXAMPLE
.SS ifpps eth0
Default ncurses output for the eth0 device.
.SS ifpps -pd eth0
Ncurses output for the eth0 device in promiscuous mode.
.SS ifpps -lpcd wlan0 > plot.dat
Continuous terminal output for the wlan0 device in promiscuous mode.
.SH NOTE
On 10Gbit/s cards or higher, receive and transmit statistics are usually
accumulated at a higher duration interval than 1 second. Thus, it might
be advised to alter the timing option to a longer interval for such cards.
.SH BUGS
Systems with a fairly high number of cores (> 32) are currently not
supported. This should, however, not be a big deal to fix. The only
challenge would be to display the presented information in a sane way,
probably by selectively hiding uninteresting statistics.
.SH LEGAL
ifpps is licensed under the GNU GPL version 2.0.
.SH HISTORY
.B ifpps
was originally written for the netsniff-ng toolkit by Daniel Borkmann. It
is currently maintained by Tobias Klauser <tklauser@distanz.ch> and Daniel
Borkmann <dborkma@tik.ee.ethz.ch>.
.SH SEE ALSO
.BR netsniff-ng (8),
.BR trafgen (8),
.BR mausezahn (8),
.BR bpfc (8),
.BR flowtop (8),
.BR astraceroute (8),
.BR curvetun (8)
.SH AUTHOR
Manpage was written by Daniel Borkmann.
|