wiki:DPDKNotes

Version 1 (modified by rjs51, 7 years ago) (diff)

--

Notes on Libtrace Intel Data Plane Development Kit Support

This format is considered experimental and has limitations that should be understood before using

The Intel Data Plane Development Kit format allows packets to be captured in a truly zero copy manner and provides direct access to every packet with almost zero overhead. This means more CPU is left for your application to process the packet. Libtraces Intel DPDK capture format works in a very similar way to the DAG capture format. The format supports most Intel NIC's see the release notes pdf.

Documentation and source code for the Intel DPDK can be downloaded from [www.intel.com/go/DPDK] the links are in a box at the bottom of the page.

Basic Setup Guide for Intel DPDK for libtrace

It is strongly recommended that you build and test Intel DPDK with it's included samples and verify they are functioning correctly before attempting to use build libtrace with DPDK

  1. Read the DPDK Getting Started Guide and make sure the prerequisites are met such as hugepages.
  2. Download DPDK from the Intel website
  3. Extract the archive:
    ~unzip IntelDPDK.L.1.3.1_7.zip -d IntelDPDK
    ~cd IntelDPDK
  1. Apply the patch named DPDK_libtrace.patch included within libtrace, assuming we have copied this into the newly created IntelDPDK folder. This is required to allow libtrace to create shared libraries otherwise building libtrace will fail.
    ~patch -p0 < DPDKLibtracePatch.diff

5.Apply optional patches (For a specific card HW timestamping etc.. make sure changes are also made to libtrace defines where needed)

6.Make the DPDK library

    ~cd DPDK
    ~make install T=x86_64-default-linuxapp-gcc

7.Export RTE_SDK and RTE_TARGET

    ~export RTE_SDK=`pwd`
    ~export RTE_TARGET=x86_64-default-linuxapp-gcc
  1. Load the DPDK modules
    ~cd $RTE_TARGET/kmod
    ~sudo modprobe uio
    ~sudo insmod ./igb_uio.ko
  1. Set any advance options within libtrace if required (defines at top of ./lib/format_dpdk.c)
  2. Configure and build - RTE_SDK and RTE_TARGET must be set in the environment for Intel DPDK to be detected
    ~cd ../../libtrace-svn/
    ~./configure
    ~make
    ~sudo make install