blob: a0b8090a026ee0d3b0cd49b78d9069adbb61dd52 [file] [log] [blame]
PF_RING is a Linux kernel module and user-space framework that allows
you to process packets at high-rates while providing you a consistent
API for packet processing applications.
Compilation
-----------
You need to have installed the basic compilation tools and libraries.
On Ubuntu you can do
# apt-get install build-essential bison flex linux-headers-$(uname -r)
At this point you can compile the module
# make
Installation
------------
# sudo su
# cd kernel; make install
# cd ../userland/lib; make install
PF_RING-aware drivers
---------------------
In order to fully exploit PF_RING you need to use PF_RING aware drivers
instead of vanilla ones. You can find these drivers in the drivers/
directory. For exploiting their acceleration you need to play with
the transparent mode as explained in
http://www.ntop.org/blog/pf_ring/pf_ring-and-transparent_mode/
Testing PF_RING
---------------
In PF_RING/userland/examples we have coded several applications you can use
for testing PF_RING. In particular
- pfcount allows you to capture packets
- pfsend to replay (or generate) traffic
You can look at the application source code for learning how you can use
the PF_RING API.
Remember that before running any appliction, you need to load the pf_ring.ko
kernel modules:
# sudo su
# insmod ./kernel/pf_ring.ko
DNA and PF_RING
---------------
DNA allows you to manipulate packets at wire speed in both 1 and 10 Gbit
networks. In order to exploit it you need to use a DNA-aware driver such
as the Intel 10 Gbit driver (see drivers/intel/ixgbe/ixgbe-xxxx-DNA). Once
you have loaded the driver (you need to load the PF_RING kernel module
prior to load the DNA-ixgbe module), PF_RING allows you to exploit DNA.
Documentation
-------------
If you need an extensive documentation, you can refer to the manual that
is stored in the doc/ directory.
-------------------------------------
June 2011 - Luca Deri <deri@ntop.org>