netsniff-ng: add packet fanout support
commitf00d4d54f28c0374cc57e6ca07dd648d7684c69c
authorMichał Purzyński <michalpurzynski1@gmail.com>
Tue, 21 Apr 2015 09:12:44 +0000 (21 11:12 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 21 Apr 2015 09:48:38 +0000 (21 11:48 +0200)
tree3670c9ad317a1fd65da88f0515c84fcd06c392c9
parentfb1c7820fd6a30224f98175b481b981efadf7673
netsniff-ng: add packet fanout support

This work adds packet fanout support to netsniff-ng. Multiple netsniff-ng
instances can join the same fanout group with a particular id in order to
improve scaling.

Based on different fanout disciplines, e.g. distribute to fanout member
by packet hash, round-robin, by arrival cpu, by random, by socket rollover
(if one members socket queue is full, switch to next one, etc), by hardware
queue mapping, traffic can be distributed to one of the fanout members.

Moreover, we also allow the user to specify additional aux arguments, e.g.
whether to defrag incoming traffic for the fanout group or not, and whether
to roll over a socket in case other disciplines than socket rollover have
been used. All that is configurable via command line option.

Signed-off-by: Michał Purzyński <michalpurzynski1@gmail.com>
[ dbkm made some bigger changes to get this upstream ready ]
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
netsniff-ng.c
ring_rx.c
ring_rx.h