summaryrefslogtreecommitdiff
path: root/Documentation/intro
diff options
context:
space:
mode:
authorIan Stokes <ian.stokes@intel.com>2020-12-15 16:41:28 +0000
committerIan Stokes <ian.stokes@intel.com>2020-12-16 17:44:06 +0000
commit252e1e5764439085e32f07695b45848a079ba4df (patch)
treefbc93b6e95c4b27ee00c6168dcf59220b49fb64a /Documentation/intro
parentaf06184705072804a4c1374f9c824c9e4c241c26 (diff)
downloadopenvswitch-252e1e5764439085e32f07695b45848a079ba4df.tar.gz
dpdk: Update to use DPDK v20.11.
This commit adds support for DPDK v20.11, it includes the following changes. 1. travis: Remove explicit DPDK kmods configuration. 2. sparse: Fix build with 20.05 DPDK tracepoints. 3. netdev-dpdk: Remove experimental API flag. http://patchwork.ozlabs.org/project/openvswitch/list/?series=173216&state=* 4. sparse: Update to DPDK 20.05 trace point header. http://patchwork.ozlabs.org/project/openvswitch/list/?series=179604&state=* 5. sparse: Fix build with DPDK 20.08. http://patchwork.ozlabs.org/project/openvswitch/list/?series=200181&state=* 6. build: Add support for DPDK meson build. http://patchwork.ozlabs.org/project/openvswitch/list/?series=199138&state=* 7. netdev-dpdk: Remove usage of RTE_ETH_DEV_CLOSE_REMOVE flag. http://patchwork.ozlabs.org/project/openvswitch/list/?series=207850&state=* 8. netdev-dpdk: Fix build with 20.11-rc1. http://patchwork.ozlabs.org/project/openvswitch/list/?series=209006&state=* 9. sparse: Fix __ATOMIC_* redefinition errors http://patchwork.ozlabs.org/project/openvswitch/list/?series=209452&state=* 10. build: Remove DPDK make build references. http://patchwork.ozlabs.org/project/openvswitch/list/?series=216682&state=* For credit all authors of the original commits to 'dpdk-latest' with the above changes have been added as co-authors for this commit. Signed-off-by: David Marchand <david.marchand@redhat.com> Co-authored-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com> Co-authored-by: Sunil Pai G <sunil.pai.g@intel.com> Signed-off-by: Eli Britstein <elibr@nvidia.com> Co-authored-by: Eli Britstein <elibr@nvidia.com> Tested-by: Harry van Haaren <harry.van.haaren@intel.com> Tested-by: Govindharajan, Hariprasad <hariprasad.govindharajan@intel.com> Tested-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Acked-by: Ilya Maximets <i.maximets@ovn.org> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Diffstat (limited to 'Documentation/intro')
-rw-r--r--Documentation/intro/install/afxdp.rst2
-rw-r--r--Documentation/intro/install/dpdk.rst68
2 files changed, 39 insertions, 31 deletions
diff --git a/Documentation/intro/install/afxdp.rst b/Documentation/intro/install/afxdp.rst
index 3c8f78825..aad0aeebe 100644
--- a/Documentation/intro/install/afxdp.rst
+++ b/Documentation/intro/install/afxdp.rst
@@ -396,7 +396,7 @@ PVP using vhostuser device
--------------------------
First, build OVS with DPDK and AFXDP::
- ./configure --enable-afxdp --with-dpdk=<dpdk path>
+ ./configure --enable-afxdp --with-dpdk=shared|static
make -j4 && make install
Create a vhost-user port from OVS::
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst
index fe11571d2..a595417ce 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -42,7 +42,7 @@ Build requirements
In addition to the requirements described in :doc:`general`, building Open
vSwitch with DPDK will require the following:
-- DPDK 19.11.2
+- DPDK 20.11
- A `DPDK supported NIC`_
@@ -59,8 +59,10 @@ vSwitch with DPDK will require the following:
Detailed system requirements can be found at `DPDK requirements`_.
-.. _DPDK supported NIC: http://dpdk.org/doc/nics
-.. _DPDK requirements: http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html
+.. _DPDK supported NIC: https://doc.dpdk.org/guides-20.11/nics/index.html
+.. _DPDK requirements: https://doc.dpdk.org/guides-20.11/linux_gsg/sys_reqs.html
+
+.. _dpdk-install:
Installing
----------
@@ -71,38 +73,44 @@ Install DPDK
#. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``::
$ cd /usr/src/
- $ wget https://fast.dpdk.org/rel/dpdk-19.11.2.tar.xz
- $ tar xf dpdk-19.11.2.tar.xz
- $ export DPDK_DIR=/usr/src/dpdk-stable-19.11.2
+ $ wget https://fast.dpdk.org/rel/dpdk-20.11.tar.xz
+ $ tar xf dpdk-20.11.tar.xz
+ $ export DPDK_DIR=/usr/src/dpdk-20.11
$ cd $DPDK_DIR
-#. (Optional) Configure DPDK as a shared library
+#. Configure and install DPDK using Meson
- DPDK can be built as either a static library or a shared library. By
- default, it is configured for the former. If you wish to use the latter, set
- ``CONFIG_RTE_BUILD_SHARED_LIB=y`` in ``$DPDK_DIR/config/common_base``.
+ Build and install the DPDK library::
- .. note::
+ $ export DPDK_BUILD=$DPDK_DIR/build
+ $ meson build
+ $ ninja -C build
+ $ sudo ninja -C build install
+ $ sudo ldconfig
- Minor performance loss is expected when using OVS with a shared DPDK
- library compared to a static DPDK library.
+ Detailed information can be found at `DPDK documentation`_.
-#. Configure and install DPDK
+#. (Optional) Configure and export the DPDK shared library location
- Build and install the DPDK library::
+ Since DPDK is built both as static and shared library by default, no extra
+ configuration is required for the build.
- $ export DPDK_TARGET=x86_64-native-linuxapp-gcc
- $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
- $ make install T=$DPDK_TARGET DESTDIR=install
+ Exporting the path to library is not necessary if the DPDK libraries are
+ system installed. For libraries installed using a prefix, export the path
+ to this library and also update the $PKG_CONFIG_PATH for use
+ before building OVS::
-#. (Optional) Export the DPDK shared library location
+ $ export LD_LIBRARY_PATH=/path/to/installed/DPDK/libraries
+ $ export PKG_CONFIG_PATH=/path/to/installed/".pc" file/for/DPDK
- If DPDK was built as a shared library, export the path to this library for
- use when building OVS::
+ .. note::
- $ export LD_LIBRARY_PATH=$DPDK_DIR/x86_64-native-linuxapp-gcc/lib
+ Minor performance loss is expected when using OVS with a shared DPDK
+ library compared to a static DPDK library.
.. _DPDK sources: http://dpdk.org/rel
+.. _DPDK documentation:
+ https://doc.dpdk.org/guides-20.11/linux_gsg/build_dpdk.html
Install OVS
~~~~~~~~~~~
@@ -121,16 +129,16 @@ has to be configured to build against the DPDK library (``--with-dpdk``).
#. Bootstrap, if required, as described in :ref:`general-bootstrapping`
-#. Configure the package using the ``--with-dpdk`` flag::
+#. Configure the package using the ``--with-dpdk`` flag:
+
+ If OVS must consume DPDK static libraries
+ (also equivalent to ``--with-dpdk=yes`` )::
- $ ./configure --with-dpdk=$DPDK_BUILD
+ $ ./configure --with-dpdk=static
- where ``DPDK_BUILD`` is the path to the built DPDK library. This can be
- skipped if DPDK library is installed in its default location.
+ If OVS must consume DPDK shared libraries::
- If no path is provided to ``--with-dpdk``, but a pkg-config configuration
- for libdpdk is available the include paths will be generated via an
- equivalent ``pkg-config --cflags libdpdk``.
+ $ ./configure --with-dpdk=shared
.. note::
While ``--with-dpdk`` is required, you can pass any other configuration
@@ -703,7 +711,7 @@ Limitations
release notes`_.
.. _DPDK release notes:
- https://doc.dpdk.org/guides-19.11/rel_notes/release_19_11.html
+ https://doc.dpdk.org/guides-20.11/rel_notes/release_20_11.html
- Upper bound MTU: DPDK device drivers differ in how the L2 frame for a
given MTU value is calculated e.g. i40e driver includes 2 x vlan headers in