Skip to content

Commit

Permalink
dpdk: Update to use DPDK 18.11.
Browse files Browse the repository at this point in the history
This commit adds support for DPDK v18.11, it includes the following
changes.

1. Enable compilation and linkage with dpdk 18.11.0
   The following dpdk commits which were introduced after dpdk 17.11.x
   require OVS updates to accommodate to the dpdk changes.
   - ce17edd ("ethdev: introduce Rx queue offloads API")
   - ab3ce1e ("ethdev: remove old offload API")
   - c06ddf9 ("meter: add configuration profile")
   - e58638c ("ethdev: fix TPID handling in flow API")
   - cd8c7c7 ("ethdev: replace bus specific struct with generic dev")
   - ac8d22d ("ethdev: flatten RSS configuration in flow API")

2. Limit configured rss hash functions to only those supported
   by the eth device.

3. Set default RSS key in struct action_rss_data, required by OVS
   commit- e8a2b5b ("netdev-dpdk: implement flow offload with rte flow")
   when configured with "other_config:hw-offload=true".

4. DEV_RX_OFFLOAD_CRC_STRIP has been removed from DPDK 18.11.
   DEV_RX_OFFLOAD_KEEP_CRC can now be used to keep the CRC.
   Use the correct flag and check it is supported.

5. rte_eth_dev_attach/detach have been removed from DPDK 18.11.
   Replace them with rte_dev_probe/remove.

6. Update docs and travis to use DPDK18.11.

This commit squashes the following commits present on the dpdk-latest
branch:

7f021f9 ("netdev-dpdk: Upgrade to dpdk v18.08")
270d921 ("netdev-dpdk: Set scatter based on capabilities")
bef2cdc ("netdev-dpdk: Fix returning the field of malloced struct.")
73c1a65 ("redhat: change variable used for non-root user support")
eb485f6 ("dpdk: Update to use DPDK 18.11.")

For credit all authors of the original commits above have been added as
co-authors for this commmit.

From: Ophir Munk <[email protected]>
Signed-off-by: Ophir Munk <[email protected]>
Signed-off-by: Kevin Traynor <[email protected]>
Co-authored-by: Kevin Traynor <[email protected]>
Signed-off-by: Ilya Maximets <[email protected]>
Co-authored-by: Ilya Maximets <[email protected]>
Signed-off-by: Timothy Redaelli <[email protected]>
Co-authored-by: Timothy Redaelli <[email protected]>
Signed-off-by: Ian Stokes <[email protected]>
  • Loading branch information
4 people authored and istokes committed Dec 13, 2018
1 parent af4a88f commit 03f3f9c
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 79 deletions.
8 changes: 4 additions & 4 deletions .travis/linux-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ function install_dpdk()
cd dpdk-$1
git checkout tags/v$1
else
wget http://fast.dpdk.org/rel/dpdk-$1.tar.gz
tar xzvf dpdk-$1.tar.gz > /dev/null
DIR_NAME=$(tar -tf dpdk-$1.tar.gz | head -1 | cut -f1 -d"/")
wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
tar xvf dpdk-$1.tar.xz > /dev/null
DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
if [ $DIR_NAME != "dpdk-$1" ]; then mv $DIR_NAME dpdk-$1; fi
cd dpdk-$1
fi
Expand All @@ -83,7 +83,7 @@ fi

if [ "$DPDK" ]; then
if [ -z "$DPDK_VER" ]; then
DPDK_VER="17.11.4"
DPDK_VER="18.11"
fi
install_dpdk $DPDK_VER
if [ "$CC" = "clang" ]; then
Expand Down
11 changes: 6 additions & 5 deletions Documentation/intro/install/dpdk.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 17.11.4
- DPDK 18.11

- A `DPDK supported NIC`_

Expand Down Expand Up @@ -71,9 +71,9 @@ Install DPDK
#. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``::

$ cd /usr/src/
$ wget http://fast.dpdk.org/rel/dpdk-17.11.4.tar.xz
$ tar xf dpdk-17.11.4.tar.xz
$ export DPDK_DIR=/usr/src/dpdk-stable-17.11.4
$ wget http://fast.dpdk.org/rel/dpdk-18.11.tar.xz
$ tar xf dpdk-18.11.tar.xz
$ export DPDK_DIR=/usr/src/dpdk-18.11
$ cd $DPDK_DIR

#. (Optional) Configure DPDK as a shared library
Expand Down Expand Up @@ -672,7 +672,8 @@ Limitations
The latest list of validated firmware versions can be found in the `DPDK
release notes`_.

.. _DPDK release notes: http://dpdk.org/doc/guides/rel_notes/release_17_11.html
.. _DPDK release notes:
https://doc.dpdk.org/guides/rel_notes/release_18_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
Expand Down
3 changes: 2 additions & 1 deletion Documentation/topics/dpdk/ring.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,5 @@ DPDK. However, this functionality was removed because:
- :doc:`vhost-user interfaces <vhost-user>` are the de facto DPDK-based path to
guests

.. _DPDK documentation: https://dpdk.readthedocs.io/en/v17.11/prog_guide/ring_lib.html
.. _DPDK documentation:
https://doc.dpdk.org/guides-18.11/prog_guide/ring_lib.html
8 changes: 4 additions & 4 deletions Documentation/topics/dpdk/vhost-user.rst
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,9 @@ To begin, instantiate a guest as described in :ref:`dpdk-vhost-user` or
DPDK sources to VM and build DPDK::

$ cd /root/dpdk/
$ wget http://fast.dpdk.org/rel/dpdk-17.11.4.tar.xz
$ tar xf dpdk-17.11.4.tar.xz
$ export DPDK_DIR=/root/dpdk/dpdk-stable-17.11.4
$ wget http://fast.dpdk.org/rel/dpdk-18.11.tar.xz
$ tar xf dpdk-18.11.tar.xz
$ export DPDK_DIR=/root/dpdk/dpdk-18.11
$ export DPDK_TARGET=x86_64-native-linuxapp-gcc
$ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
$ cd $DPDK_DIR
Expand Down Expand Up @@ -502,4 +502,4 @@ Because of this limitation, this feature is considered 'experimental'.

Further information can be found in the
`DPDK documentation
<http://dpdk.readthedocs.io/en/v17.11/prog_guide/vhost_lib.html>`__
<https://doc.dpdk.org/guides-18.11/prog_guide/vhost_lib.html>`__
1 change: 1 addition & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Post-v2.10.0
- DPDK:
* Add option for simple round-robin based Rxq to PMD assignment.
It can be set with pmd-rxq-assign.
* Add support for DPDK 18.11
- Add 'symmetric_l3' hash function.
- OVS now honors 'updelay' and 'downdelay' for bonds with LACP configured.
- ovs-vswitchd:
Expand Down
Loading

0 comments on commit 03f3f9c

Please sign in to comment.