Update librte-pmd-bond1.symbols with new symbol.
[deb_dpdk.git] / debian / dpdk-doc.README.Debian
1 dpdk for Debian
2 ---------------
3
4 This package is currently compiled for the lowest possible CPU requirements.
5 Which still requires at least SSE3 to be supported by the CPU.
6
7 dpdk (runtime) / libdpdk0:
8
9 For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
10 to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
11 number of hugepages to be reserved at boot.
12 The runtime environment is not required to build applications that use
13 DPDK but if those applications get packaged they should depend on the
14 runtime.
15
16 Since DPDK technically would be able to use all of your compatible card/driver
17 combination it is required that you take care of blacklisting / whitelisting
18 network cards to tell dpdk which it has to initialize (especially true for
19 virtio-pci as the normal kernel driver is considered compatible).
20
21 If you are working with virtio-pci network cards it isn't a hard requirement to
22 assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
23 have to at least unbind them from the default kernel driver (virtio-pci) to
24 avoid bugs by dpdk and the kernel working on them simultaneously. It is
25 recommended to reassign them to dpdk compatible drivers using
26 /etc/dpdk/interfaces (just as you would with any physical card).
27
28 libdpdk0 contains the shared object needed to run a program in terms of symbol
29 resolution, but none of the other runtime environment pieces.
30
31 dpdk-dev / libdpdk-dev:
32
33 The minimum requirement for developing external applications is libdpdk-dev,
34 which brings the headers and library files.
35
36 In dpdk-dev is the upstream makefile environment. Sample applications, which
37 are shipped in dpdk-doc, are providing makefiles.
38 Those makefiles need to find the dpdk build system. To do so they need some
39 environment 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"
43 Those can be set by the user to overwrite with a custom path/config. If no
44 custom environment is used it is recommended to source the file
45 /usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
46 If the paths ever change or there will be more/less variables needed to build
47 against dpdk-dev that file will be adjusted for you.
48
49 Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
50 CFLAGS  += -I/usr/include/dpdk -irte_config.h
51
52 librte-pmd-* and DPDK PMD autoloading:
53
54 PMD driver autoloading. DPDK since its split into several libraries does not
55 have all PMD drivers available by default. One always can use EAL argument -d
56 to provide a path to an extra .so file.
57 TO ease daily usage RTE_EAL_PMD_PATH is set to
58 /usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)/dpdk-pmds/.
59 Each librte-pmd-* package will place a symlink in there which makes DPDK load
60 and register it as PMD on startup.
61 This can also be used to globally enable extra PMD drivers as you can link
62 self-provided .so files in there to be considered.
63
64  -- Christian Ehrhardt <christian.ehrhardt@canonical.com>  Thu, 29 Sep 2016 13:04:47 +0200