Giter VIP home page Giter VIP logo

qof's Introduction

QoF

QoF (Quality of Flow) is an IPFIX Metering and Exporting process derived from the YAF flowmeter, 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. If what you're looking for is a full-featured flow meter for security applications, stop reading now and go download the latest version of YAF from http://tools.netsa.cert.org/yaf instead.

Changes from YAF

QoF is a fork of YAF version 2.3.2, with the following major differences from the YAF codebase:

  • Removal of all payload inspection code.

  • 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.

Usage

Run without arguments, QoF will read packets from standard input and produce IPFIX on standard output using a minimal biflow template. For more detailed usage instructions, see the man page installed with QoF, or http://britram.github.io/qof/qof.pdf.

qof's People

Contributors

britram avatar

Stargazers

 avatar Marco Zucconelli avatar leoluk avatar CHEN Zheng 陈征 avatar Changling Zhou avatar  avatar GOTOH, Yutaka avatar Tom Hornos avatar Oliver Gasser avatar

Watchers

Charlie Allom avatar  avatar Randy Caldejon avatar  avatar

Forkers

constcast

qof's Issues

Add MAC address based directionality

Add ability to determine source-side or destination-side of biflows based on a MAC address or set of MAC addresses; i.e., link left-side/right-side biflows.

Add perimeter biflow support

Add the ability to define a set of prefixes which should always be treated as source addresses for purposes of biflow export (i.e., perimeter biflow export as in RFC 5103)

rtx burst overcount

Seeing lots flows with more bursts than losses, which doesn't make any sense. Track this down.

Remove dependency on glib-2.0

Most of the services used by QoF from glib-2.0 can be replaced with lighter weight libraries; this would be helpful in scaling QoF down to smallish devices.

The plan here would be first to fork libfixbuf and remove glib there, maybe pulling libfixbuf inline; second to throw away libairframe; third replace the hashtables in the pickable queue; fourth rip everything else out.

radiotap decode

Add ability to decode radiotap headers. May make sense to store radio SNR and rate for local latency analysis.

Add RFC 5610 export option

We'll be using CERT and trammell.ch ESIEs for a while; should use 5610 to export information about these.

Add simple lost burst count

Initial versions of what became qofdyn had RTT-based burst loss count per flow; this was removed when we started thinking about RTT-based ATO. This could be added back quickly.

Rework RTT to a single structure per biflow

rtt_m in one direction is rtt_c in the other, and vice versa; tracking RTT per uniflow as we do at present makes little sense. Rework qofdyn RTT tracking into a single structure per biflow.

Add initcwin tracking

Estimate the initial congestion window as the length of the first run of packets by IAT. Since this isn't really initcwin, call the resulting value initialRunOctetCount or something similar.

Reject app-delayed RTTC measurements

Add a heuristic (involving packet size, delay, IAT series, etc) to reject an RTTC measurement made overlong by application delay, cycling back to RTTM without sampling.

add reasonable default template

if template: is missing in the yaml file (or if the yaml file is not given), every IE will be exported, but no optional features will be enabled. This is wrong. Provide a default enable/template that is reasonable (probably just 5-tuple and counters, SiLK-stype).

Add ACK counters

Add a counter for pure ACKs (which is likely to be equal to layer 4 minus layer 3 packet counts), and a counter for dup ACKs. Probably want to store this in reverse sense, so we can compare dupack and rtx loss indication on the same flow direction.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.