aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DEPENDENCIES37
-rwxr-xr-xscripts/build-pktio-dpdk40
2 files changed, 28 insertions, 49 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES
index 6b345b9c3..abe6d7411 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -166,23 +166,42 @@ Prerequisites for building the OpenDataPlane (ODP) API
Use DPDK for ODP packet I/O.
+ Note: only packet I/O is accelerated with DPDK. Use
+ https://github.com/Linaro/odp-dpdk.git
+ for fully accelerated odp dpdk platform.
+
+3.4.1 DPDK pktio requirements
+
DPDK pktio adds a depency to NUMA library.
# Debian/Ubuntu
$ sudo apt-get install libnuma-dev
# CentOS/RedHat/Fedora
$ sudo yum install numactl-devel
- Note: only packet I/O is accelerated with DPDK. Use
- https://github.com/Linaro/odp-dpdk.git
- for fully accelerated odp dpdk platform.
+3.4.2 Native DPDK install
+ # Debian/Ubuntu starting from 18.04
+ $ sudo apt-get install dpdk-dev
+
+3.4.2 Built DPDK from src
+ git clone --branch=17.11 http://dpdk.org/git/dpdk-stable dpdk
+
+ #Make and edit DPDK configuration
+ TARGET="x86_64-native-linuxapp-gcc"
+ make config T=${TARGET} O=${TARGET}
+ pushd ${TARGET}
-3.4.1 Building DPDK and ODP with DPDK pktio support
+ #To use I/O without DPDK supported NIC's enable pcap pmd:
+ sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config
+ popd
- DPDK packet I/O has been tested to work with DPDK v17.11.
+ #Build DPDK
+ make build O=${TARGET} EXTRA_CFLAGS="-fPIC"
+ make install O=${TARGET} DESTDIR=${TARGET}
- Follow steps in ./scripts/build-pktio-dpdk
+ #compile ODP
+ ./configure --with-dpdk-path=`pwd`/dpdk/${TARGET}/usr/local
-3.4.2 Setup system
+3.4.3 Setup system
# Load DPDK modules
$ sudo /sbin/modprobe uio
@@ -194,13 +213,13 @@ Prerequisites for building the OpenDataPlane (ODP) API
512 x 2MB hugepages. All this can be done with the DPDK setup script
(<dpdk-dir>/tools/dpdk-setup.sh).
-3.4.3 Running ODP with DPDK pktio
+3.4.4 Running ODP with DPDK pktio
ODP applications will try use DPDK for packet I/O by default. If some other
I/O type is desired instead, DPDK I/O can be disabled by setting the
environment variable ODP_PKTIO_DISABLE_DPDK.
- DPDK interfaces are accessed using indices. For example, two first DPDK
+ DPDK interfaces are accessed using indexes. For example, two first DPDK
interfaces can be used with the odp_l2fwd example as follows:
$ cd <odp_dir>
$ sudo ./test/performance/odp_l2fwd -i 0,1 -c 2 -m 0
diff --git a/scripts/build-pktio-dpdk b/scripts/build-pktio-dpdk
deleted file mode 100755
index b0c0a4d0e..000000000
--- a/scripts/build-pktio-dpdk
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-TARGET=${TARGET:-"x86_64-native-linuxapp-gcc"}
-
-export ROOT_DIR=$(readlink -e $(dirname $0) | sed 's|/scripts||')
-pushd ${ROOT_DIR}
-
-echo '#include "pcap.h"' | cpp -H -o /dev/null 2>&1
-if [ "$?" != "0" ]; then
- echo "Error: pcap is not installed. You may need to install libpcap-dev"
-fi
-
-echo '#include "numa.h"' | cpp -H -o /dev/null 2>&1
-if [ "$?" != "0" ]; then
- echo "Error: NUMA library is not installed. You need to install libnuma-dev"
- exit 1
-fi
-
-git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=17.11 http://dpdk.org/git/dpdk-stable dpdk
-pushd dpdk
-git log --oneline --decorate
-
-#Make and edit DPDK configuration
-make config T=${TARGET} O=${TARGET}
-pushd ${TARGET}
-#To use I/O without DPDK supported NIC's enable pcap pmd:
-sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config
-popd
-
-#Build DPDK
-make build O=${TARGET} EXTRA_CFLAGS="-fPIC"
-make install O=${TARGET} DESTDIR=${TARGET}
-popd
-
-#Build ODP
-./bootstrap;
-./configure --enable-test-vald --enable-test-perf --enable-test-cpp \
- --enable-debug --enable-debug-print \
- --with-dpdk-path=`pwd`/dpdk/${TARGET}/usr/local
-make