Refactored patch (removed options, less ambiguous name)

This commit is contained in:
Kris Nielander 2015-08-24 23:45:21 +02:00
parent 54437c128f
commit ba4c816b0e
6 changed files with 28 additions and 52 deletions

View file

@ -9,8 +9,8 @@ const detect_filtered_trace: bool;
const report_gaps_for_partial: bool;
const exit_only_after_terminate: bool;
const Fanout::enable: bool;
const Fanout::id: count;
const PacketFanout::enable: bool;
const PacketFanout::id: count;
const NFS3::return_data: bool;
const NFS3::return_data_max: count;

View file

@ -5,25 +5,8 @@
#ifdef HAVE_PACKET_FANOUT
#include <linux/if_packet.h>
#ifndef PACKET_FANOUT
#define PACKET_FANOUT 18
#define PACKET_FANOUT_HASH 0
#define PACKET_FANOUT_LB 1
#define PACKET_FANOUT_CPU 2
#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
#ifndef PACKET_FANOUT_ROLLOVER
#define PACKET_FANOUT_ROLLOVER 3
#endif
#ifndef PACKET_FANOUT_FLAG_ROLLOVER
#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
#endif
#define PACKET_FANOUT_FLAG_NONE -1
#endif /* PACKET_FANOUT */
#endif /* HAVE_PACKET_FANOUT */
extern "C" {
#include <pcap.h>
}

View file

@ -161,10 +161,14 @@ void PcapSource::OpenLive()
#ifdef HAVE_PACKET_FANOUT
/* Turn on cluster mode for the device. */
if ( fanout_enable )
if ( packet_fanout_enable )
{
uint32_t fanout_arg = (fanout_method << 16) | (fanout_id & 0xffff);
if (setsockopt(props.selectable_fd, SOL_PACKET, PACKET_FANOUT, &fanout_arg, sizeof(fanout_arg)) == -1)
uint32_t packet_fanout_arg = (PACKET_FANOUT_HASH << 16) | (packet_fanout_id & 0xffff);
if ( packet_fanout_flag_defrag )
packet_fanout_arg |= (PACKET_FANOUT_FLAG_DEFRAG << 16);
if (setsockopt(props.selectable_fd, SOL_PACKET, PACKET_FANOUT, &packet_fanout_arg, sizeof(packet_fanout_arg)) == -1)
{
Error(fmt("%s: setsockopt: %s", __FUNCTION__, strerror(errno)));
return;

View file

@ -6,10 +6,9 @@
#include "../PktSrc.h"
#ifdef HAVE_PACKET_FANOUT
extern bool fanout_enable;
extern int fanout_id;
extern int fanout_method;
extern int fanout_flag;
extern bool packet_fanout_enable;
extern int packet_fanout_id;
extern bool packet_fanout_flag_defrag;
#endif
namespace iosource {

View file

@ -125,10 +125,9 @@ int snaplen = 0; // this gets set from the scripting-layer's value
int bufsize = 0;
#ifdef HAVE_PACKET_FANOUT
bool fanout_enable = false;
int fanout_id = 0;
int fanout_method = PACKET_FANOUT_HASH;
int fanout_flag = 0;
bool packet_fanout_enable = false;
int packet_fanout_id = 0;
bool packet_fanout_flag_defrag = false;
#endif
OpaqueType* md5_type = 0;
@ -1001,10 +1000,9 @@ int main(int argc, char** argv)
bufsize = internal_val("bufsize")->AsCount() * 1024 * 1024;
#ifdef HAVE_PACKET_FANOUT
fanout_enable = internal_val("Fanout::enable")->AsBool();
fanout_id = internal_val("Fanout::id")->AsCount();
fanout_method = internal_val("Fanout::method")->AsEnum();
fanout_flag = internal_val("Fanout::flag")->AsEnum();
packet_fanout_enable = internal_val("PacketFanout::enable")->AsBool();
packet_fanout_id = internal_val("PacketFanout::id")->AsCount();
packet_fanout_flag_defrag = internal_val("PacketFanout::flag_defrag")->AsBool();
#endif
if ( dns_type != DNS_PRIME )