Hi everyone,

I’m new to PF_RING so I’m no doubt doing something silly :) I’ve looked through the ntop-misc archives as far back as Jan 2012, and as far as I can see my particular circumstances haven’t been raised before.

I’ll describe my setup first, then the actual problem.

I’m studying the PF_RING driver and userland code to try and progress this myself, but I’d welcome any suggestions for things to check or try.

Regards,
A.



THE HARDWARE

Two HP ProLiant DL360 G6 machines, each with 2 x 4-core 2.66GHz X5550 Xeons, plus PCIe v2 and 12Gb DDR3 RAM.

Machine 1 has a Napatech NT20-E2 card.

Machine 2 has an 82599-based dual-port HP560FLR card in an 8-lane slot. Hyperthreading has been disabled on this machine, giving 8 cores.

Machine 1 interface napa0 is patched directly to machine 2 eth3. For the purposes of this discussion, I’m using machine1/Napatech as a packet generator to test PF_RING on machine 2/Intel 82599.



THE SOFTWARE

Both machines running RHEL 6.6 – uname says 2.6.32-504.23.4.el6.x86_64.

On machine 2, PF_RING is v6.0.3, and I compiled with:-

cd PF_RING-6.0.3
make
cd drivers
make

I have NOT performed a ‘make install’ anywhere in the PF_RING directory tree (I wasn’t sure what ‘make install’ would do to my existing libpcap 1.7.4 installation. I run multiple SSH logins, each with C_INCLUDE_PATH and LD_LIBRARY_PATH set accordingly. Within one login my code will build and link to PF_RING libs; in another login it will build and link to standard libpcap).

The pfcount and pf_ring.ko/ixgbe.ko executables are run directly from within this tree.

Drivers are started via:-

cd drivers/ZC/intel/ixgbe/ixgbe-3.22.3-zc/src
./load_driver.sh

and I’ve experimented with various driver options for insmod pf_ring and insmod ixgbe (and confirmed in dmesg that the options have been accepted).

The example app is then run via:-

../../../../../../userland/examples/pfcount -i eth3

or

../../../../../../userland/examples/pfcount -i zc:eth3

The ZC variant issues a warning about no ZC licence / running in demo mode, which is fine for my testing.



THE PROBLEM

I’m testing PF_RING’s ability to receive sustained bursts of 9-10Gbits/sec traffic.

I have a 110 Mb traffic recording in standard pcap dump file format. On machine 1, I’m using my own utility to read the dump file and inject each packet to interface napa0 as fast as possible. (The entire file is sent in < 1 second. I also have a 10Gb recording, and the Napatech ‘monitor’ utility confirms that the napa0 TX data rate (including preamble and IFG) is 9999-10000 Gbps.)

When sending the 110Mb file, pfcount –i eth3 reports approx. 38% dropped packets, and approx. 65Mbs data received. This is fine, I would not expect 100% data reception. As a test I can throttle back TX and send packets with a short nanosecond sleep between each packet, and pfcount reports 100% reception.

When running with pfcount –i zc:eth3, the following stats are consistently reported:-

Packets received – 22335 (somewhat less than the 178K packets transmitted)

Packets dropped – 0

Data received – approx 13Mbs (somewhat less than the 110Mb source file).

These same stats are always reported, regardless of whether TX is at full rate or throttled back.

I have experimented with various options to the ixgbe driver, and I have thus far not succeeded in 100% packet reception in ZC mode. I have tried:-

insmod ./ixgbe.ko (i.e. take all defaults)
insmod ./ixgbe.ko RSS=0,0
insmod ./ixgbe.ko DCA=1,1
insmod ./ixgbe.ko MQ=1,1

plus various combinations of the RSS, DCA and MQ options on one command line.

I’m currently running with all defaults on the pf_ring driver.

I’m allowing queue-to-core affinity to be in set in ../scripts/set_irq_affinity as supplied – no script modifications to ethtool settings or core affinity.

Finally, irqbalance is not running on my machinery.

--
Andrew Howard
[email protected]
_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc

Reply via email to