Direct NIC Access

Gigabit and 10 Gigabit Ethernet Line-Rate Packet Capture and Injection


PF_RING DNA (Direct NIC Access) is a way to map NIC memory and registers to userland so that packet copy from the NIC to the DMA ring is done by the NIC NPU (Network Process Unit) and not by NAPI. This results in better performance as CPU cycles are used uniquely for consuming packets and not for moving them off the adapter. The drawback is that only one application at time can open the DMA ring (note that modern NICs can have multiple RX/TX queues thus you can start simultaneously one application per queue), or in other words that applications in userland need to talk each other in order to distribute packets.

 

 

In a nutshell if you like flexibility you should use PF_RING, if you want pure speed PF_RING DNA is the solution. Please note that in DNA mode NAPI polling does not take place, hence PF_RING features such as reflection and packet filtering are not supported.

Testing DNA


The DNA driver is available for Intel-based 1 and 10 Gbit adapters in source format.

If you want to test the DNA driver, you just need to replace the driver you are using with a DNA driver you can find in the PF_RING/drivers/DNA directory and run your application. Example “pfcount -i dna:dna0″.

 

Get It


If after testing the DNA driver, you decide to use it permanently, you need a license. The 1 Gbit DNA driver is available from the ntop web site as specified on the table below. If you are interested in large quantities or if you need a volume discount please contact us.

We are very grateful to Silicom who has subsidized the development of the 10 Gbit DNA driver. In case you want to use the DNA driver and you need a NIC, you can also contact Silicom for getting a free evaluation card. If you need a license for the 10 Gbit DNA driver please click on the link on the table below, or contact us.

 

e1000e igb ixgbe
get it Request License
Capture Rate (Line-Rate) 1 Gigabit/sec 10 Gigabit/sec
Supported Cards Intel 82563/82566/
82567/82571/82572/
82573/82574/82577/
82578/82579/82583
-based
Intel 82575/82576/
82580/I350-based
Intel 82598/82599
-based
Operating System Linux (kernel 2.6.26 or better)
Traffic Reception included
Traffic Injection included
Hw packet filtering Intel
82599-based/Silicom Director only
Hw timestamping (nsec) Intel
82580/I350-based only