summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/src/introduction.rst19
-rw-r--r--docs/src/user-guide.rst85
2 files changed, 93 insertions, 11 deletions
diff --git a/docs/src/introduction.rst b/docs/src/introduction.rst
index 50de12c..570e942 100644
--- a/docs/src/introduction.rst
+++ b/docs/src/introduction.rst
@@ -16,10 +16,9 @@ The tool usage tend to looks like tcpreplay in term of simplicity. Only two args
one pcap file and one DPDK port address to replay on:
::
-
+
$> dpdk-replay foo.pcap 04:00.0
-
What can it do?
---------------
@@ -32,7 +31,21 @@ What can it do?
* At the end, some stats are displayed for each ports (time spent, pkts-per-sec, total bitrate etc...)
* Abstract DPDK stack: All EAL/mempool/ports initializations are automatically handled.
-
+.. _dpdk_compatible_versions:
+
+DPDK compatible versions
+------------------------
+
+dpdk-burst-replay releases are compatible with DPDK LTS versions.
+
++----------------------------+---------------------------+
+| dpdk-burst-replay releases | Tested with DPDK versions |
++============================+===========================+
+| v1.1.0 | 16.11.9/17.11.5/18.11.1 |
++----------------------------+---------------------------+
+
+NB: Other intermediate versions should also works. Last versions can need some adaptation.
+
Ok, let's start!
----------------
diff --git a/docs/src/user-guide.rst b/docs/src/user-guide.rst
index c017a35..3dbf9df 100644
--- a/docs/src/user-guide.rst
+++ b/docs/src/user-guide.rst
@@ -6,30 +6,99 @@
User guide
==========
-TODO
-
.. _installing_custom_dpdk_version:
Installing custom DPDK version
------------------------------
-TODO
+You should install a custom DPDK version if:
+
+* Your distribution does not propose any DPDK package (obsly).
+* You want to use a different version of what is proposed in your distro.
+* Your NICs are not supported by your distro package (which can be the case for vendors
+ like Mellanox/Broadcom etc).
+* Or, you want to tune :ref:DPDK options.
+
+First, note that dpdk-burst-replay is compatible (ie, checked) with DPDK LTS versions.
+Please refer to :ref:`dpdk_compatible_versions` section.
+
+Please also note that this doc section is not intended to replace the
+`official DPDK compiling guide <https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html>`_,
+but is more focused on giving additional tips related to dpdk-burst-replay purposes.
+
+Get DPDK
+^^^^^^^^
+
+Once you have choose the version you want to use, get its tarball from `download section <https://core.dpdk.org/download/>`_ or directly from `GIT repository <https://git.dpdk.org/dpdk-stable/>`_.
+
+For example::
+
+ $> wget https://fast.dpdk.org/rel/dpdk-18.11.1.tar.xz && tar xvf dpdk-18.11.1.tar.xz
+
+
+.. _customize_dpdk:
+
+Customize DPDK
+^^^^^^^^^^^^^^
+
+DPDK build options are mainly located on **config/common_base** file. Here are some example that could be helpful:
+
+* In lasts versions of DPDK the memory management have changed and there is an hardcoded limit of memory
+ size that can be allocated. And, as dpdk-burst-replay put in cache all pcap packets before sending them
+ it could be an issue if you want to replay big pcap dumps. To be able to use up to 128Go (instead of 32Go
+ by default), set **131272** here::
+
+ CONFIG_RTE_MAX_MEM_MB_PER_LIST=32768
+
+* By default DPDK libs are compiled in static, if you want them to be shared ones, set to 'y' this line::
+
+ CONFIG_RTE_BUILD_SHARED_LIB=n
+
+Build DPDK
+^^^^^^^^^^
+
+Once your configurations have been made, you can follow the
+`official DPDK compiling guide <https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html>`_. For example::
+
+ $> make config T=x86_64-native-linux-gcc
+ $> make -j99 T=x86_64-native-linux-gcc
+
+Install DPDK
+^^^^^^^^^^^^
+
+To install compiled DPDK version into /usr/local, just type::
+
+ $> sudo make install
+
+NOTE: You can change the destination folder by specifying a different **DESTDIR**::
+
+ $> make DESTDIR=~/dpdk-18.11.1 install
+
.. _linking_custom_dpdk_version:
Linking custom DPDK version
---------------------------
-TODO
+Autotools way
+^^^^^^^^^^^^^
+
+You can specify your custom DPDK version location on **configure** step, for example::
+ $> ./configure CFLAGS=-I/home/user/dpdk-18.11.1/usr/local/include/dpdk LDFLAGS=-L/home/user/dpdk-18.11.1/usr/local/lib
-.. Using a static makefile with DPDK's env and conf::
- RTE_SDK=<RTE_SDK_PATH> make -f DPDK_Makefile && sudo cp build/dpdk-replay /usr/bin
+Then, compile and install as usual::
+ $> make && sudo make install
+Static way
+^^^^^^^^^^
+
+Using a static makefile with DPDK's env and conf::
+
+ RTE_SDK=<DPDK_PATH> make -f DPDK_Makefile && sudo cp build/dpdk-replay /usr/bin
Troubleshooting
---------------
-TODO
-
+TODO :)