Story:
I am working on porting a package parsing / processing program from FreeBSD to Linux (specifically, Debian-jessie). This program implements a bidirectional bridge between two physical interfaces when performing parsing / manipulation prior to TX operations.
On FreeBSD, this application used Pcap for RX / TX. On Linux, so far I have tested Pcap, PACKET_MMAP (using TPACKET_V2) and Vanilla PF_RING.
Test results:
Using the same hardware and laboratory environment, I observed the following (approximate) throughput results of several tests performed using iperf:
- FreeBSD Kernel Bridge: 880 Mbps
- FreeBSD Pcap Bridge (User Space): 700 Mbps
- Debian Kernel Bridge: 880 Mbps
- Debian Pcap Bridge (user space): 120Kb / s
- Debian Vanilla PF_RING (user space): 980Kb / s
- Debian PACKET_MMAP (user space): 480Kb / s
Thoughts and question:
Debian user space loading speed seems ridiculous to me. They are unsuitable for use - and I suspect that I am missing something. Is there a system parameter that I need to enable ("go fast", lol)?
Or is it just with the Linux Linux space bridge?
Change / Update
I have a lingering suspicion that there is an administrative constraint affecting Debian tests. I am looking for system documentation for (something / nothing) to no avail. Any ideas on what this might limit?