User guide

Installing custom DPDK version

You should install a custom DPDK version if:

  • Your distribution does not propose any DPDK package (obsly).
  • You want to use a different version of what is proposed in your distro.
  • Your NICs are not supported by your distro package (which can be the case for vendors like Mellanox/Broadcom etc).
  • Or, you want to tune :ref:DPDK options.

First, note that dpdk-burst-replay is compatible (ie, checked) with DPDK LTS versions. Please refer to DPDK compatible versions section.

Please also note that this doc section is not intended to replace the official DPDK compiling guide, but is more focused on giving additional tips related to dpdk-burst-replay purposes.

Get DPDK

Once you have choose the version you want to use, get its tarball from download section or directly from GIT repository.

For example:

$> wget https://fast.dpdk.org/rel/dpdk-18.11.1.tar.xz && tar xvf dpdk-18.11.1.tar.xz

Customize DPDK

DPDK build options are mainly located on config/common_base file. Here are some example that could be helpful:

  • In lasts versions of DPDK the memory management have changed and there is an hardcoded limit of memory size that can be allocated. And, as dpdk-burst-replay put in cache all pcap packets before sending them it could be an issue if you want to replay big pcap dumps. To be able to use up to 128Go (instead of 32Go by default), set 131272 here:

    CONFIG_RTE_MAX_MEM_MB_PER_LIST=32768
    
  • By default DPDK libs are compiled in static, if you want them to be shared ones, set to ‘y’ this line:

    CONFIG_RTE_BUILD_SHARED_LIB=n
    

Build DPDK

Once your configurations have been made, you can follow the official DPDK compiling guide. For example:

$> make config T=x86_64-native-linux-gcc
$> make -j99 T=x86_64-native-linux-gcc

Install DPDK

To install compiled DPDK version into /usr/local, just type:

$> sudo make install

NOTE: You can change the destination folder by specifying a different DESTDIR:

$> make DESTDIR=~/dpdk-18.11.1 install

Linking custom DPDK version

Autotools way

You can specify your custom DPDK version location on configure step, for example:

$> ./configure CFLAGS=-I/home/user/dpdk-18.11.1/usr/local/include/dpdk LDFLAGS=-L/home/user/dpdk-18.11.1/usr/local/lib

Then, compile and install as usual:

$> make && sudo make install

Static way

Using a static makefile with DPDK’s env and conf:

RTE_SDK=<DPDK_PATH> make -f DPDK_Makefile && sudo cp build/dpdk-replay /usr/bin

Troubleshooting

TODO :)