aboutsummaryrefslogtreecommitdiffstats
path: root/debian/dpdk-doc.README.Debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian/dpdk-doc.README.Debian')
-rw-r--r--debian/dpdk-doc.README.Debian52
1 files changed, 52 insertions, 0 deletions
diff --git a/debian/dpdk-doc.README.Debian b/debian/dpdk-doc.README.Debian
new file mode 100644
index 00000000..669bf396
--- /dev/null
+++ b/debian/dpdk-doc.README.Debian
@@ -0,0 +1,52 @@
+dpdk for Debian
+---------------
+
+This package is currently compiled for the lowest possible CPU requirements.
+Which still requires at least SSE3 to be supported by the CPU.
+
+dpdk (runtime) / libdpdk0:
+
+For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
+to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
+number of hugepages to be reserved at boot.
+The runtime environment is not required to build applications that use
+DPDK but if those applications get packaged they should depend on the
+runtime.
+
+Since DPDK technically would be able to use all of your compatible card/driver
+combination it is required that you take care of blacklisting / whitelisting
+network cards to tell dpdk which it has to to initialize (especially true for
+virtio-pci as the normal kernel driver is considered compatible).
+
+If you are working with virtio-pci network cards it isn't a hard requirement to
+assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
+have to at least unbind them from the default kernel driver (virtio-pci) to
+avoid bugs by dpdk and the kernel working on them simultaneously. It is
+recommended to reassign them to dpdk compatible drivers using
+/etc/dpdk/interfaces (just as you would with any physical card).
+
+libdpdk0 contains the shared object needed to run a program in terms of symbol
+resolution, but none of the other runtime environment pieces.
+
+dpdk-dev / libdpdk-dev:
+
+The minimum requirement for developing external applications is libdpdk-dev,
+which brings the headers and library files.
+
+In dpdk-dev is the upstream makefile environment. Sample applications, which
+are shipped in dpdk-doc, are providing makefiles.
+Those makefiles need to find the dpdk build system. To do so they need some
+environment variables defined:
+ export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
+ export RTE_SDK="/usr/share/dpdk/"
+ export RTE_INCLUDE="/usr/include/dpdk"
+Those can be set by the user to overwrite with a custom path/config. If no
+custom environment is used it is recommended to source the file
+/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
+If the paths ever change or there will be more/less variables needed to build
+against dpdk-dev that file will be adjusted for you.
+
+Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
+CFLAGS += -I/usr/include/dpdk -irte_config.h
+
+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 04 Feb 2016 09:16:11 +0100