Hi,
I've been looking for the fastest way to receive packets at wire line speed.
It looks like using the mmap with the packet socket interface in the kernel is
the best way to save 1 data copy per packet. I have a quad-port 82575GB Intel
NIC. Does the current igb driver (or whatever I should use) support the chip's
capability to read/write directly to the NIC's memory from userspace?
I'm developing an application to hairpin UDP packets from one host to
another, and I need as quick operation as possible. I've seen mention of
PF_RING and DNA, but it appears the kernel already has the support I need (via
mmap) minus direct access to the NIC's memory.
Ideally, I want to have the ability to assign an IP address to, say, eth0 and
read from eth0 only the UDP packets destined to my application's port. With
PF_RING DNA, I would have to process all the packets that arrived on that
interface, including ARP, since the kernel is no longer in the loop.
Is there a way to do this with the stock kernel and igb driver, or do I need
to implement some sort of zero-copy logic in the kernel? If there's a better
way to do this, please let me know. Thanks.
-Brian
Brian C. Wiles | Director of Software Development
O1 Communications
5190 Golden Foothill Pkwy,
El Dorado Hills, CA 95762
office: 916.235.2032
email: bwi...@o1.com<mailto:bwi...@o1.com> | web: www.o1.com<http://www.o1.com/>
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired