> This commit adds support for DPDK v17.11:
> - minor updates to accomodate DPDK API changes
> - update references to DPDK version in Documentation
> - update DPDK version in travis' linux-build script
> - document DPDK v17.11 virtio driver bug
> 
> Signed-off-by: Mark Kavanagh <[email protected]>
> Acked-by: Maxime Coquelin <[email protected]>
> Acked-by: Ciara Loftus <[email protected]>
> Acked-by: Jan Scheurich <[email protected]>
> Tested-by: Jan Scheurich <[email protected]>
> Tested-by: Guoshuai Li <[email protected]>
> ---
>  .travis/linux-build.sh                   |  2 +-
>  Documentation/faq/releases.rst           |  1 +
>  Documentation/intro/install/dpdk.rst     | 24 +++++++++++++++++++-----
>  Documentation/topics/dpdk/ring.rst       |  2 +-
>  Documentation/topics/dpdk/vhost-user.rst |  5 +++++
>  NEWS                                     |  2 ++
>  lib/netdev-dpdk.c                        |  5 +++--
>  7 files changed, 32 insertions(+), 9 deletions(-)
> 
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh index
> 4d6459f..ed28ee4 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -81,7 +81,7 @@ fi
> 
>  if [ "$DPDK" ]; then
>      if [ -z "$DPDK_VER" ]; then
> -        DPDK_VER="17.05.2"
> +        DPDK_VER="17.11"
>      fi
>      install_dpdk $DPDK_VER
>      if [ "$CC" = "clang" ]; then
> diff --git a/Documentation/faq/releases.rst
> b/Documentation/faq/releases.rst index d903b06..62a1957 100644
> --- a/Documentation/faq/releases.rst
> +++ b/Documentation/faq/releases.rst
> @@ -164,6 +164,7 @@ Q: What DPDK version does each Open vSwitch release
> work with?
>      2.6.x        16.07.2
>      2.7.x        16.11.3
>      2.8.x        17.05.2
> +    2.9.x        17.11
>      ============ =======
> 
>  Q: I get an error like this when I configure Open vSwitch:
> diff --git a/Documentation/intro/install/dpdk.rst
> b/Documentation/intro/install/dpdk.rst
> index bb69ae5..8c036dc 100644
> --- a/Documentation/intro/install/dpdk.rst
> +++ b/Documentation/intro/install/dpdk.rst
> @@ -40,7 +40,7 @@ Build requirements
>  In addition to the requirements described in :doc:`general`, building
> Open  vSwitch with DPDK will require the following:
> 
> -- DPDK 17.05.2
> +- DPDK 17.11
> 
>  - A `DPDK supported NIC`_
> 
> @@ -69,9 +69,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.05.2.tar.xz
> -       $ tar xf dpdk-17.05.2.tar.xz
> -       $ export DPDK_DIR=/usr/src/dpdk-stable-17.05.2
> +       $ wget http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
> +       $ tar xf dpdk-17.11.tar.xz
> +       $ export DPDK_DIR=/usr/src/dpdk-17.11
>         $ cd $DPDK_DIR
> 
>  #. (Optional) Configure DPDK as a shared library @@ -583,7 +583,21 @@
> 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_05.html
> +.. _DPDK release notes:
> +http://dpdk.org/doc/guides/rel_notes/release_17_11.html
> +
> +- The DPDK v17.11 virtio net driver contains a bug that prevents guest
> +DPDK
> +  applications from receiving packets. This only occurs when
> +guest-bound traffic
> +  is live before a DPDK application is started within the guest, and
> +where two
> +  or more forwarding cores are used. As such, it is not recommended for
> +guests
> +  which execute DPDK applications to upgrade to DPDK v17.11.
> +
> +  Note that this issue does not occur when guest network devices are
> + controlled  by the guest kernel.
> +
> +  Details regarding the virtio driver bug are available on the `DPDK
> + mailing  list`_.
> +
> +.. _DPDK mailing list:
> +http://dpdk.org/ml/archives/dev/2017-December/082801.html
> 

Minor Nit above, checkpatch utility complains

== Checking 
"/home/istokes/patch_reviews/ovs-dev-V5-1-2-netdev-dpdk-DPDK-v17.11-upgrade.patch"
 ==
WARNING: Line length is >79-characters long
#82 FILE: Documentation/intro/install/dpdk.rst:589:
  applications from receiving packets. This only occurs when guest-bound traffic

I'd like to see this fixed in the rework.

WARNING: Line length is >79-characters long
#93 FILE: Documentation/intro/install/dpdk.rst:600:
.. _DPDK mailing list: http://dpdk.org/ml/archives/dev/2017-December/082801.html

WARNING: Line length is >79-characters long
#106 FILE: Documentation/topics/dpdk/ring.rst:80:
.. _DPDK documentation: 
https://dpdk.readthedocs.io/en/v17.11/prog_guide/ring_lib.html

Lines checked: 159, Warnings: 3, Errors: 0

The two http doc links above surpass the 79 char boundary, but they follow and 
replace existing link examples in the doc. I think it makes sense in terms of 
formatting and readability to leave them as is.

>  Reporting Bugs
>  --------------
> diff --git a/Documentation/topics/dpdk/ring.rst
> b/Documentation/topics/dpdk/ring.rst
> index ad9d7a5..8d0ede8 100644
> --- a/Documentation/topics/dpdk/ring.rst
> +++ b/Documentation/topics/dpdk/ring.rst
> @@ -77,4 +77,4 @@ DPDK. However, this functionality was removed because:
>  - :doc:`vhost-user interfaces <vhost-user>` are the defacto DPDK-based
> path to
>    guests
> 
> -.. _DPDK documentation:
> https://dpdk.readthedocs.io/en/v17.05/prog_guide/ring_lib.html
> +.. _DPDK documentation:
> +https://dpdk.readthedocs.io/en/v17.11/prog_guide/ring_lib.html
> diff --git a/Documentation/topics/dpdk/vhost-user.rst
> b/Documentation/topics/dpdk/vhost-user.rst
> index 74ac06e..1a5de24 100644
> --- a/Documentation/topics/dpdk/vhost-user.rst
> +++ b/Documentation/topics/dpdk/vhost-user.rst
> @@ -287,6 +287,11 @@ application in the VM.
> 
>    Support for DPDK in the guest requires QEMU >= 2.2
> 
> +.. important::
> +
> +  DPDK v17.11 virtio PMD contains a bug that affects testpmd/DPDK guest
> + applications. As such, guests should not upgrade to 17.11.
> +
>  To begin, instantiate a guest as described in :ref:`dpdk-vhost-user` or
> :ref:`dpdk-vhost-user-client`. Once started, connect to the VM, download
> the  DPDK sources to VM and build DPDK::
> diff --git a/NEWS b/NEWS
> index 427c8f8..d4a1c9a 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -13,6 +13,8 @@ Post-v2.8.0
>       * ovn-ctl: New commands run_nb_ovsdb and run_sb_ovsdb.
>     - Linux kernel 4.13
>       * Add support for compiling OVS with the latest Linux 4.13 kernel
> +   - DPDK:
> +     * Add support for DPDK v17.11
> 
>  v2.8.0 - 31 Aug 2017
>  --------------------
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index faff842..f552444
> 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -26,6 +26,7 @@
>  #include <sys/socket.h>
>  #include <linux/if.h>
> 
> +#include <rte_bus_pci.h>
>  #include <rte_config.h>
>  #include <rte_cycles.h>
>  #include <rte_errno.h>
> @@ -140,8 +141,8 @@ static struct vlog_rate_limit rl =
> VLOG_RATE_LIMIT_INIT(5, 20);
> 
>  #define DPDK_ETH_PORT_ID_INVALID    RTE_MAX_ETHPORTS
> 
> -/* DPDK library uses uint8_t for port_id. */ -typedef uint8_t
> dpdk_port_t;
> +/* DPDK library uses uint16_t for port_id. */ typedef uint16_t
> +dpdk_port_t;
> 
>  #define VHOST_ENQ_RETRY_NUM 8
>  #define IF_NAME_SZ (PATH_MAX > IFNAMSIZ ? PATH_MAX : IFNAMSIZ)
> --
> 1.9.3

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to