QoF is a TCP-aware flow meter, available at http://github.com/britram/qof.
QoF (Quality of Flow) is an IPFIX Metering and Exporting process, designed for passive measurement of per-flow performance characteristics.
QoF is primarily intended to support research into passive measurement of performance metrics for TCP flows; however, it can also be used for general flow measurement, especially in environments where the deployment of technologies which inspect packet payload is restricted. QoF is a fork of YAF version 2.3.2, with the following major differences from the YAF codebase:
Replacement of packet acquisition layer with WAND's libtrace.
Replacement of most command line flags with a YAML-based configuration file, which allows implicit feature selection through direct specification of the information elements to appear in QoF's export templates.
Support for new information elements focused on passive TCP performance measurement.
QoF is licensed under the GNU General Public License, Version 2.
To install QoF:
libglib-2.0-dev
andlibyaml-dev
packages.libtrace3-dev
package. Building libtrace requires bison and flex headers, as well../configure --prefix=/some/where && make && make install
; if installing straight from the git working directory, use autogen.sh
first. You may need the --with-libtrace
flag to ./configure
if not installed in a system path. If installed to the same prefix as libfixbuf, the autotools script should automatically find it.To run QoF, writing to an IPFIX file:
qof —yaml yaml-file —in libtrace-uri —out ipfix-filename
The libtrace-uri for a PCAP file named foo.pcap
would be pcapfile:foo.pcap
. Note that libtrace supports compressed trace files natively (e.g. pcapfile:foo.pcap.gz
); see the libtrace documentation for more.
There’s a sample yaml-file configuration file in the test directory. The most important configuration directive is template:
, which lists the Information Elements which will be exported by YAF.
QoF includes a set of tools in Python for analyzing IPFIX output for research purposes; these are described in the GitHub wiki.
The entirety of the feature set added to QoF since it was forked from YAF in November 2012 was added with the support of the mPlane project.
Proxy interface development is ongoing, pending the development of an mPlane to IPFIX Information Element bridge interface.