Released PF_RING 5.1 and TNAPIv2

Posted · Add Comment

PF_RING 5.1 is a maintenance release that addresses some issues we identified in 5.0 that we released early this month. We have listen to your comments and tried to improve our software applications both in terms of stability and speed.

In this release we introduce (PF_RING 5.0 was lacking TNAPI as we were busy coding this new TNAPIv2) a new version of TNAPI (v2) that has been completely rewritten based on the lessons learnt with DNA. The performance improvement with respect to v1 has been major. Just to give you an idea with a low end Core2Duo and a single RX queue, you can achieve wire-rate 1 Gbit packet capture (with v1 we stopped at 750 Kpps) and over 2.8 Mpps at 10 Gbit (with v1 we could’t go above 1 Mpps). TNAPI is now able to both receive and send packets; unfortunately we need to work a bit more on the PF_RING side in order to exploit TX, thus even if TNAPIv2 features packet transmission, we have not yet enabled until we complete developments on the PF_RING side.

We remind you that beside speed, the fundamental difference between DNA and TNAPI is that on DNA the interface is piloted by a single (i.e. quality one) user-space application, whereas TNAPI can be used to capture packets that will be dispatched to multiple PF_RING-based applications. The cost of dispatching is paid on performance as with DNA you can have wire speed with any packet size, whereas TNAPI features wire-rate at 1 Gbit and over 5 Mpps packet capture at 10 Gbit on low-end Xeon boxes. Please note that in order to use TNAPIv2 you must use PF_RING 5.1.

Finally, in order to figure out immediately what interface type we’re using, we have renamed the interfaces. The new standard for network interfaces is:

  • ethX: vanilla or PF_RING-aware driver
  • tnapiX: TNAPI driver
  • dnaX: DNA driver

For instance:

tnapi0    Link encap:Ethernet  HWaddr 00:1b:21:a1:cc:20
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Memory:e0320000-e0340000 

tnapi1    Link encap:Ethernet  HWaddr 00:1b:21:a1:cc:21
          inet6 addr: fe80::21b:21ff:fea1:cc21/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Memory:e0340000-e0360000