Compiling and Installing DPDK with the Napatech PMD

Getting Started with Napatech Link-Virtualization™ Software

Platform
Napatech SmartNIC
Content Type
Getting Started
Getting Started Guide
Capture Software Version
Link-Virtualization™ Software 4.5

Build and install DPDK with the Napatech PMD.

About this task

This describes commands to build, install DPDK with Napatech PMD, configure the environment variable and activate the path to libraries.

Procedure

  1. Locate the DPDK directory in the unpacked Link-Virtualization™ Software package directory and change to that directory.
    For example:
    cd <package_root_directory>/dpdk-driver/dpdk_<version>
    where:
    • package_root_directory is the directory to the unpacked Napatech package.
    • version is the version identifier of the included DPDK package with the Napatech PMD.
  2. Install packages required to build DPDK.
    # Enable the powertools repository.
    subscription-manager repos --enable codeready-builder*-rpms
    # Install EPEL on RHEL 8
    dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    
    # Install meson and ninja-build.
    dnf install meson ninja-build
  3. Compile and install DPDK.
    meson build
    ninja -C build
    ninja -C build install
  4. Set the pkgconfig path to the PKG_CONFIG_PATH environment variable. The path can be found running the following command.
    meson configure
    The path to the installed DPDK libraries is <prefix>/<libdir> where prefix and libdir can be found in the meson configure output as shown in the following example:
    ...
    Directories     Default Value    Possible Values    Description
    -----------     -------------    ---------------    -----------
    prefix          /usr/local                          Installation prefix
    ...
    libdir          lib64                               Library directory
    ...
    
    Set PKG_CONFIG_PATH.
    export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
  5. Activate the path to the libraries.
    ldconfig
    
    # Verify
    ldconfig -p | grep librte_net_ntnic
    An output example:
    librte_net_ntnic.so.22 (libc6,x86-64) => /usr/local/lib64/librte_net_ntnic.so.22
    librte_net_ntnic.so (libc6,x86-64) => /usr/local/lib64/librte_net_ntnic.so
    Note: On some Linux distributions, such as CentOS, Fedora or RHEL, paths in /usr/local are not in the default path for the dynamic loader. Therefore, add /usr/local/lib and the path to the DPDK libraries to the /etc/ld.so.conf.d/dpdk.conf file before running ldconfig on these distributions. For example:
    echo -e "/usr/local/lib64\n/usr/local/lib64/dpdk" >> \
     /etc/ld.so.conf.d/dpdk.conf
    
    ldconfig
    The path to the DPDK libraries may vary depending on the Linux distribution. See step 4 about how to find the path.