dpdk-doc.README.Debian revision 199e427d
1dpdk for Debian
2---------------
3
4This package is currently compiled for the lowest possible CPU requirements.
5Which still requires at least SSE3 to be supported by the CPU.
6
7dpdk (runtime) / libdpdk0:
8
9For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
10to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
11number of hugepages to be reserved at boot.
12The runtime environment is not required to build applications that use
13DPDK but if those applications get packaged they should depend on the
14runtime.
15
16Since DPDK technically would be able to use all of your compatible card/driver
17combination it is required that you take care of blacklisting / whitelisting
18network cards to tell dpdk which it has to to initialize (especially true for
19virtio-pci as the normal kernel driver is considered compatible).
20
21If you are working with virtio-pci network cards it isn't a hard requirement to
22assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
23have to at least unbind them from the default kernel driver (virtio-pci) to
24avoid bugs by dpdk and the kernel working on them simultaneously. It is
25recommended to reassign them to dpdk compatible drivers using
26/etc/dpdk/interfaces (just as you would with any physical card).
27
28libdpdk0 contains the shared object needed to run a program in terms of symbol
29resolution, but none of the other runtime environment pieces.
30
31dpdk-dev / libdpdk-dev:
32
33The minimum requirement for developing external applications is libdpdk-dev,
34which brings the headers and library files.
35
36In dpdk-dev is the upstream makefile environment. Sample applications, which
37are shipped in dpdk-doc, are providing makefiles.
38Those makefiles need to find the dpdk build system. To do so they need some
39environment variables defined:
40 export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
41 export RTE_SDK="/usr/share/dpdk/"
42 export RTE_INCLUDE="/usr/include/dpdk"
43Those can be set by the user to overwrite with a custom path/config. If no
44custom environment is used it is recommended to source the file
45/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
46If the paths ever change or there will be more/less variables needed to build
47against dpdk-dev that file will be adjusted for you.
48
49Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
50CFLAGS  += -I/usr/include/dpdk -irte_config.h
51
52 -- Christian Ehrhardt <christian.ehrhardt@canonical.com>  Thu, 04 Feb 2016 09:16:11 +0100
53