dpdk.git
4 years agomempool: introduce indexed memory pool
Xueming Li [Thu, 17 Oct 2019 06:55:01 +0000 (06:55 +0000)]
mempool: introduce indexed memory pool

Indexed memory pool manages memory entries by index, allocation from
pool returns both memory pointer and index(ID). users save ID as u32
or less(u16) instead of traditional 8 bytes pointer. Memory could be
retrieved from pool or returned to pool later by index.

Pool allocates backend memory in chunk on demand, pool size grows
dynamically. Bitmap is used to track entry usage in chunk, thus
management overhead is one bit per entry.

Standard rte_malloc demands malloc overhead(64B) and minimal data
size(64B). This pool aims to such cost saving also pointer size.
For scenario like creating millions of rte_flows each consists
of small pieces of memories, the difference is huge.

Like standard memory pool, this lightweight pool only support fixed
size memory allocation. Pools should be created for each different
size.

To facilitate memory allocated by index, a set of ILIST_XXX macro
defined to operate entries as regular LIST.

By setting entry size to zero, pool can be used as ID generator.

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
4 years agoservice: don't walk out of bounds when checking services
Aaron Conole [Tue, 3 Dec 2019 21:15:44 +0000 (16:15 -0500)]
service: don't walk out of bounds when checking services

The service_valid call is used without properly bounds checking the
input parameter.  Almost all instances of the service_valid call are
inside a for() loop that prevents excessive walks, but some of the
public APIs don't bounds check and will pass invalid arguments.

Prevent this by using SERVICE_GET_OR_ERR_RET where it makes sense,
and adding a bounds check to one service_valid() use.

Fixes: 8d39d3e237c2 ("service: fix race in service on app lcore function")
Fixes: e9139a32f6e8 ("service: add function to run on app lcore")
Fixes: e30dd31847d2 ("service: add mechanism for quiescing")
Cc: stable@dpdk.org
Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agotest/common: fix log2 check
David Marchand [Fri, 20 Dec 2019 14:01:49 +0000 (15:01 +0100)]
test/common: fix log2 check

We recently started to get random failures on the common_autotest ut with
clang on Ubuntu 16.04.6.

Example: https://travis-ci.com/DPDK/dpdk/jobs/263177424

Wrong rte_log2_u64(0) val 0, expected ffffffff
Test Failed

The ut passes 0 to log2() to get an expected value.

Quoting log2 / log(3) manual:
If x is zero, then a pole error occurs, and the functions return
-HUGE_VAL, -HUGE_VALF, or -HUGE_VALL, respectively.

rte_log2_uXX helpers handle 0 as a special value and return 0.
Let's have dedicated tests for this case.

Fixes: 05c4345ef5c2 ("test: add unit test for integer log2 function")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
4 years agobuild: fix soname info for 19.11 compatibility
Bruce Richardson [Thu, 12 Dec 2019 11:58:26 +0000 (11:58 +0000)]
build: fix soname info for 19.11 compatibility

The soname for each stable ABI version should be just the ABI version major
number without the minor number. Unfortunately both major and minor were
used causing version 20.1 to be incompatible with 20.0.

This patch fixes the issue by switching from 2-part to 3-part ABI version
numbers so that we can keep 20.0 as soname and using the final digits to
identify the 20.x releases which are ABI compatible. This requires changes
to both make and meson builds to handle the three-digit version and shrink
it to 2-digit for soname.

The final fix needed in this patch is to adjust the library version number
for the ethtool example library, which needs to be upped to 2-digits, as
external libraries using the DPDK build system also use the logic in this
file.

Fixes: cba806e07d6f ("build: change ABI versioning to global")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Ray Kinsella <mdr@ashroe.eu>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Kevin Laatz <kevin.laatz@intel.com>
Tested-by: David Marchand <david.marchand@redhat.com>
4 years agodevtools: fix debug build test
Thomas Monjalon [Mon, 16 Dec 2019 14:45:32 +0000 (15:45 +0100)]
devtools: fix debug build test

When testing build with +debug options, the statistics are enabled.
It was wrongly matching CONFIG_RTE_IBVERBS_LINK_STATIC.
The pattern is fixed to match only statistics config options.

Fixes: 2c0dd7b69fb0 ("config: add static linkage of mlx dependency")
Cc: stable@dpdk.org
Reported-by: Ali Alnubani <alialnu@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agonet/mlx: fix build with clang 9
Ali Alnubani [Wed, 11 Dec 2019 06:49:25 +0000 (06:49 +0000)]
net/mlx: fix build with clang 9

This rewrites the MKSTR macro appending an empty string to its arguments
to resolve build failures similar to:

  drivers/net/mlx4/mlx4.c:461:14: fatal error: format string is not a
  string literal [-Wformat-nonliteral]
          MKSTR(path, "%s/device/uevent", device->ibdev_path);

  drivers/net/mlx4/mlx4_utils.h:82:30: note: expanded from macro 'MKSTR'
          char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \

  drivers/net/mlx5/mlx5_stats.c:144:15: fatal error: format string is not a
  string literal [-Wformat-nonliteral]
   MKSTR(path, "%s/ports/%d/hw_counters/%s",

  drivers/net/mlx5/mlx5_utils.h:149:30: note: expanded from macro 'MKSTR'
   char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \

The errors reproduce with clang version 9.0.0, and the release notes
don't mention what could have caused them.

Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")
Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters")
Cc: stable@dpdk.org
Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
4 years agodoc: fix build with python 3.8
Thomas Monjalon [Mon, 9 Dec 2019 20:43:12 +0000 (21:43 +0100)]
doc: fix build with python 3.8

After upgrading to python-3.8.0, a syntax mismatch is revealed:

doc/guides/conf.py:240: SyntaxWarning: "is not" with a literal.
    Did you mean "!="?
    if value is not '':

Removing "is not ''" seems the right thing to do.

A patch may also be needed in the RTD theme package:
https://github.com/readthedocs/sphinx_rtd_theme/commit/a49a812c.diff
(not included in release 0.4.3)

Fixes: 9db3f52126fb ("doc: generate NIC overview table from ini files")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agoeal/linux: fix build error on RHEL 7.6
David Marchand [Wed, 4 Dec 2019 13:16:22 +0000 (14:16 +0100)]
eal/linux: fix build error on RHEL 7.6

Previous fix gives hiccups to gcc on RHEL 7.6:

== Build lib/librte_eal/linux/eal
  CC eal_interrupts.o
...lib/librte_eal/linux/eal/eal_interrupts.c: In function
  ‘eal_intr_thread_main’:
...lib/librte_eal/linux/eal/eal_interrupts.c:1048:9: error: missing
  initializer for field ‘events’ of ‘struct epoll_event’
  [-Werror=missing-field-initializers]
  struct epoll_event ev = { };
         ^
In file included from ...lib/librte_eal/linux/eal/eal_interrupts.c:15:0:
/usr/include/sys/epoll.h:89:12: note: ‘events’ declared here
   uint32_t events; /* Epoll events */
            ^
...lib/librte_eal/linux/eal/eal_interrupts.c: At top level:
cc1: error: unrecognized command line option
  "-Wno-address-of-packed-member" [-Werror]
cc1: all warnings being treated as errors

Fixes: e0ab8020ac2a ("eal/linux: fix uninitialized data valgrind warning")
Cc: stable@dpdk.org
Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agoeal/linux: fix uninitialized data valgrind warning
Stephen Hemminger [Wed, 27 Nov 2019 22:32:32 +0000 (14:32 -0800)]
eal/linux: fix uninitialized data valgrind warning

Valgrind reports that eal interrupt thread is calling epoll_ctl
with uninitialized data.
This is a false positive, because the kernel is not going to care about
the unused bits in the union but trivial to fix by initializing it.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoversion: 20.02-rc0
Thomas Monjalon [Mon, 2 Dec 2019 14:49:08 +0000 (15:49 +0100)]
version: 20.02-rc0

Start a new release cycle with empty release notes.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agoversion: 19.11.0
Thomas Monjalon [Thu, 28 Nov 2019 22:13:49 +0000 (23:13 +0100)]
version: 19.11.0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agoconfig: add pkgconfig for arm64
Ali Alnubani [Thu, 28 Nov 2019 07:24:38 +0000 (07:24 +0000)]
config: add pkgconfig for arm64

Meson fails to find a pkg-config executable if pkgconfig
isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
is useless in this case, and meson fails to locate dependencies
that are built in non-standard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agodoc: update arm64 cross build tool version
Joyce Kong [Thu, 28 Nov 2019 06:32:59 +0000 (14:32 +0800)]
doc: update arm64 cross build tool version

Update the cross build tool version to gcc8.3.

Fixes: 01add9da25cd ("doc: add cross compiling guide")
Cc: stable@dpdk.org
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agodoc: update libnuma dependency on arm64
Ali Alnubani [Wed, 27 Nov 2019 15:23:18 +0000 (15:23 +0000)]
doc: update libnuma dependency on arm64

Previous versions of numactl may produce the following error
on some systems (at least on Fedora 30 and RHEL7.4):

  ./.libs/libnuma.so: undefined reference to `minor'
  ./.libs/libnuma.so: undefined reference to `major'
  collect2: error: ld returned 1 exit status

This was fixed in upstream commit:
https://github.com/numactl/numactl/commit/25691a084a2012a339395ade567dbae814e237e9
The fix is available in v2.0.13.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
4 years agodoc: update example output in FreeBSD guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:50 +0000 (16:33 +0000)]
doc: update example output in FreeBSD guide

The output of running the helloworld example on FreeBSD was a little
out-of-date and can be shortened by using the latest version of DPDK.
Update appropriately.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agodoc: remove reference to old version of FreeBSD
Bruce Richardson [Thu, 28 Nov 2019 16:33:49 +0000 (16:33 +0000)]
doc: remove reference to old version of FreeBSD

FreeBSD 10 is now EOL and all testing with DPDK takes place on BSD versions
11 and 12, so we can just remove the note. The BSD ports are supported on
all non-EOL versions of BSD.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agodoc: reorder meson and make build instructions for Arm
Bruce Richardson [Thu, 28 Nov 2019 16:33:48 +0000 (16:33 +0000)]
doc: reorder meson and make build instructions for Arm

Since the meson instructions are the simpler of the two sets, and also the
ones most future-proof, put those first in the user documentation with make
instructions following them.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
4 years agodoc: add building with meson to Linux guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:47 +0000 (16:33 +0000)]
doc: add building with meson to Linux guide

Add instructions on building DPDK and using the pkg-config file to the
linux GSG.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agodoc: update system requirements in Linux guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:46 +0000 (16:33 +0000)]
doc: update system requirements in Linux guide

Update the system requirements section of the doc to cover builds with
meson and ninja. This involves updating the package dependencies to include
meson, ninja and python 3.5, and also updating the optional dependencies
section to explain that the components are enabled/disabled automatically
by meson.

As part of this update, the relevant sections were simplified to keep the
document shorter. For mandatory requirements, we can refer to the various
distro's development tools package groups rather than requiring gcc, core
tools etc. individually. The optional package list was very incomplete, and
if complete would duplicate information in the individual driver's guides.
Therefore we can simplify it by listing only the library optional
requirements and referring users to the driver docs to find details on
their dependencies.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agodoc: clarify path selection in virtio guide
Yinan Wang [Thu, 28 Nov 2019 14:30:21 +0000 (15:30 +0100)]
doc: clarify path selection in virtio guide

Add virtio paths selection and usage introduction for better
virtio usability.

Signed-off-by: Yinan Wang <yinan.wang@intel.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agodoc: update offload dependencies in mlx5 guide
Raslan Darawsheh [Thu, 28 Nov 2019 11:40:58 +0000 (11:40 +0000)]
doc: update offload dependencies in mlx5 guide

Fix OFED and rdma-core versions for current offloads.
Add new offloads minimum versions.

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agodoc: add tested platforms with Mellanox NICs
Raslan Darawsheh [Thu, 28 Nov 2019 09:30:45 +0000 (09:30 +0000)]
doc: add tested platforms with Mellanox NICs

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
4 years agodevtools: control location of test builds
Bruce Richardson [Wed, 27 Nov 2019 23:00:55 +0000 (00:00 +0100)]
devtools: control location of test builds

By default, both test-build.sh and test-meson-builds.sh scripts create the
builds they generate in the current working directory, leading to a large
number of build directories being present when testing patches. This
patchset modifies both scripts to use a DPDK_BUILD_TEST_DIR environment
variable to control where the build outputs are put.

For example, doing:
    export DPDK_BUILD_TEST_DIR=__builds
    ./devtools/test-meson-builds.sh && ./devtools/test-build.sh \
            x86_64-native-linux-clang+shared i686-native-linux-gcc

gives a "__builds" directory with 14 meson and 2 make builds (with the
meson build count depending on compiler availability)

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agodevtools: move ABI scripts from buildtools
David Marchand [Thu, 28 Nov 2019 13:46:29 +0000 (14:46 +0100)]
devtools: move ABI scripts from buildtools

Those scripts are only used by developers and not part of the build
process.
Move them to devtools so they are not installed.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
4 years agoexamples/fips_validation: fix vectors for AES-GCM
Sucharitha Sarananaga [Wed, 27 Nov 2019 05:00:48 +0000 (10:30 +0530)]
examples/fips_validation: fix vectors for AES-GCM

Test vectors for AES-GCM need to be populated by using aead member
and not cipher_auth. Using incorrect member would result in failures
when AES-GCM with non-zero AAD is tried.

Bugzilla ID: 360
Fixes: 4aaad2995e13 ("examples/fips_validation: support GCM parsing")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Sucharitha Sarananaga <ssarananaga@marvell.com>
4 years agodrivers: update copyright for NXP files
Sachin Saxena [Wed, 6 Nov 2019 10:43:46 +0000 (16:13 +0530)]
drivers: update copyright for NXP files

Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agokni: fix build with Linux 4.9.x
Ferruh Yigit [Thu, 28 Nov 2019 12:15:26 +0000 (12:15 +0000)]
kni: fix build with Linux 4.9.x

The 'get_user_pages_remote()' API is updated in kernel 4.10.0 [1],
but the check added as > 4.9.0,
this logic is broken for kernels 4.9.x, because they justify
> 4.9.0 check but have the old API.

Fixing the check as >= 4.10.0

[1]
commit 5b56d49fc31d ("mm: add locked parameter to get_user_pages_remote()")

Fixes: d965af9e8ae1 ("kni: increase kernel version requirement for VA")

Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agousertools: fix typo in SPDX tag of telemetry script
Bruce Richardson [Fri, 8 Nov 2019 14:26:27 +0000 (14:26 +0000)]
usertools: fix typo in SPDX tag of telemetry script

There is a typo in the SPDX tag, which is down as an "SPDK" tag.
One-character change should be all that is needed.

Fixes: d1b94da4a4e0 ("usertools: add client script for telemetry")
Cc: stable@dpdk.org
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
4 years agoeal/windows: remove tail queue license boilerplate
Stephen Hemminger [Wed, 25 Sep 2019 15:51:31 +0000 (08:51 -0700)]
eal/windows: remove tail queue license boilerplate

The BSD license is already handled by SPDX tag.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoeal: remove reciprocal divide license boilerplate
Stephen Hemminger [Wed, 25 Sep 2019 15:51:30 +0000 (08:51 -0700)]
eal: remove reciprocal divide license boilerplate

No need for extra language, covered by SPDX tag.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agoeal: remove uuid license boilerplate
Stephen Hemminger [Wed, 25 Sep 2019 15:51:29 +0000 (08:51 -0700)]
eal: remove uuid license boilerplate

License type is already clear from SPDX tag.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoexamples/l2fwd-event: add missing SPDX license header
Stephen Hemminger [Fri, 8 Nov 2019 17:09:25 +0000 (09:09 -0800)]
examples/l2fwd-event: add missing SPDX license header

Add same tag as other files in this example.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agodoc: use SPDX license tag for vhost PMD guide
Tetsuya Mukawa [Fri, 30 Aug 2019 03:57:04 +0000 (12:57 +0900)]
doc: use SPDX license tag for vhost PMD guide

Signed-off-by: Tetsuya Mukawa <mtetsuyah@gmail.com>
4 years agodoc: fix copyright notice in AVP guide
Allain Legacy [Thu, 7 Nov 2019 20:37:44 +0000 (14:37 -0600)]
doc: fix copyright notice in AVP guide

Aligning the Wind River copyright notices to be consistent with the
other files which bare the Wind River copyright notice.

Fixes: 32113d352d3b ("doc: replace license text with SPDX tag in AVP guide")

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
4 years agotest/cfgfile: replace license text with SPDX tag
Allain Legacy [Thu, 7 Nov 2019 20:37:43 +0000 (14:37 -0600)]
test/cfgfile: replace license text with SPDX tag

Replacing full license text with SPDX tag.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agotest/thash: replace license text with SPDX tag
Vladimir Medvedkin [Sun, 11 Aug 2019 19:01:17 +0000 (22:01 +0300)]
test/thash: replace license text with SPDX tag

Signed-off-by: Vladimir Medvedkin <medvedkinv@gmail.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoport: replace license text with SPDX tag
Xiaolong Ye [Fri, 26 Jul 2019 16:43:41 +0000 (00:43 +0800)]
port: replace license text with SPDX tag

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Ethan Zhuang <zhuangwj@gmail.com>
4 years agonet/nfp: replace license text with SPDX tag
Hemant Agrawal [Fri, 27 Sep 2019 08:33:41 +0000 (14:03 +0530)]
net/nfp: replace license text with SPDX tag

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Heinrich Kuhn <heinrich.kuhn@netronome.com>
4 years agodoc: add tested Marvell integrated NIC platforms
Jerin Jacob [Wed, 27 Nov 2019 10:58:47 +0000 (16:28 +0530)]
doc: add tested Marvell integrated NIC platforms

Add tested Marvell integrated NIC platforms to v19.11 release notes.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
4 years agodoc: add tested Intel platforms with Intel NICs
Wenjie Li [Wed, 27 Nov 2019 13:21:11 +0000 (21:21 +0800)]
doc: add tested Intel platforms with Intel NICs

Add tested Intel platforms with Intel NICs to v19.11 release notes.

Signed-off-by: Wenjie Li <wenjiex.a.li@intel.com>
4 years agodoc: add codespell config in contributing guide
Kevin Traynor [Wed, 20 Nov 2019 13:27:13 +0000 (13:27 +0000)]
doc: add codespell config in contributing guide

Document the config to use codespell with checkpatches.sh.

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
4 years agomaintainers: update armv8 crypto PMD
Ruifeng Wang [Wed, 27 Nov 2019 08:47:08 +0000 (16:47 +0800)]
maintainers: update armv8 crypto PMD

It is expected to update this PMD to be in line with Arm's crypto library.
Update the maintainership to refect the change.

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agomaintainers: update for NFP
Heinrich Kuhn [Wed, 27 Nov 2019 11:36:15 +0000 (13:36 +0200)]
maintainers: update for NFP

As Alejandro is no longer with Netronome we appointed two new
maintainers for the Netronome PMD

Signed-off-by: Heinrich Kuhn <heinrich.kuhn@netronome.com>
4 years agodevtools: check coverity and bugzilla tags
David Marchand [Tue, 8 Oct 2019 15:52:29 +0000 (17:52 +0200)]
devtools: check coverity and bugzilla tags

Let's try to check for discrepancies in coverity and bugzilla tags.
The contributing guide specifies that:
- for coverity issues, the tag is 'Coverity issue:'
- for bugzilla issues, the tag is 'Bugzilla ID:'

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
4 years agodevtools: reset compilation flags for each target
David Marchand [Wed, 2 Oct 2019 16:55:47 +0000 (18:55 +0200)]
devtools: reset compilation flags for each target

Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
for cross compilation or libraries that won't provide a pkg-config file.

Fixes: 272236741258 ("devtools: load target-specific compilation environment")

Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agogit: ignore more build directories
Thomas Monjalon [Sat, 14 Sep 2019 15:05:09 +0000 (17:05 +0200)]
git: ignore more build directories

Build directories commonly have compiler in their names.
In order to filter build directories not starting with "build-"
(common with make), patterns for gcc and clang are added to .gitignore.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agotest/service: fix wait for service core
Harry van Haaren [Wed, 27 Nov 2019 13:20:27 +0000 (13:20 +0000)]
test/service: fix wait for service core

This commit fixes a sporadic failure of the service_autotest
unit test, as seen in the DPDK CI. The failure occurs as the main test
thread did not wait on the service-thread to return, and allowing it
to read a flag before the service was able to write to it.

The fix changes the wait API call to specific the service-core ID,
and this waits for cores with both ROLE_RTE and ROLE_SERVICE.

The rte_eal_mp_wait_lcore() call does not (and should not) wait
for service cores, so must not be used to wait on service-cores.

Fixes: f038a81e1c56 ("service: add unit tests")
Cc: stable@dpdk.org
Reported-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoevent/octeontx: fix partial Rx packet handling
Pavan Nikhilesh [Wed, 27 Nov 2019 12:36:47 +0000 (18:06 +0530)]
event/octeontx: fix partial Rx packet handling

When net/octeontx is connected to event/octeontx as an event Rx adapter,
PKI aka 'net/octeontx' can forward packets directly to SSO aka
'event/octeontx'.
When pumping traffic to PKI if flow control is disabled internal FIFOs
might be overrun causing partial l2 packets to be enqueued.
SSO receives <31:0> TAG tag calculated by PKI, in normal cases <31:28>
is always 0 which signifies RTE_EVENT_TYPE_ETHDEV. But in case of
partial received packets PKI sets the <31:0> TAG as 0xFFFFFFFF which
is an invalid event type.

Add a check to see if TAG is 0xFFFFFFFF and free the partial receive
packet.

Fixes: d0d654986018 ("net/octeontx: support event Rx adapter")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/mlx5: fix legacy inline multi-packet performance
Viacheslav Ovsiienko [Wed, 27 Nov 2019 13:06:16 +0000 (13:06 +0000)]
net/mlx5: fix legacy inline multi-packet performance

The legacy multi-packet write is the feature allowing to
put multiple packets into one transmitting descriptor,
this feature is supported by only NIC ConnectX-4LX.
The number of packets should be limited to provide
optimal size descriptor and better performance.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agonet/mlx5: fix legacy non-inline multi-packet performance
Viacheslav Ovsiienko [Wed, 27 Nov 2019 12:33:12 +0000 (12:33 +0000)]
net/mlx5: fix legacy non-inline multi-packet performance

The legacy multi-packet write is the feature allowing to
put multiple packets into one transmitting descriptor,
this feature is supported by only NIC ConnectX-4LX.
The number of packets should be limited to provide
optimal size descriptor and better performance.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agonet/mlx5: fix default mark copy flow
Viacheslav Ovsiienko [Wed, 27 Nov 2019 13:36:43 +0000 (13:36 +0000)]
net/mlx5: fix default mark copy flow

In extensive metadata mode the MARK copy table is engaged,
if the application creates the flow with zero MARK ID action:

flow create 1 ingress pattern eth / ... / end actions mark id 0 / .. end

And then destroys that, the traffic to the port stops. This happens
due to default flow for the copy table has the zero ID and is removed
with the application rule. The patch extends internal ID variable
to 64 bits and provide the UINT64_MAX ID for the copy table default
rule.

Fixes: dd3c774f6ffb ("net/mlx5: add metadata register copy table")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agoethdev: limit maximum number of queues
Thomas Monjalon [Wed, 27 Nov 2019 12:22:56 +0000 (13:22 +0100)]
ethdev: limit maximum number of queues

A buffer overflow happens in testpmd with some drivers
since the queue arrays are limited to RTE_MAX_QUEUES_PER_PORT.

The advertised capabilities of mlx4, mlx5 and softnic
for the number of queues were the maximum number: UINT16_MAX.
They must be limited by the configured RTE_MAX_QUEUES_PER_PORT
that applications expect to be respected.

The limitation is applied at ethdev level (function rte_eth_dev_info_get),
in order to force the configured limit for all drivers.

Fixes: 14b53e27b30e ("ethdev: fix crash with multiprocess")
Cc: stable@dpdk.org
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agoversion: 19.11-rc4
Thomas Monjalon [Tue, 26 Nov 2019 23:43:18 +0000 (00:43 +0100)]
version: 19.11-rc4

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agomaintainers: claim maintainership of ptpclient example
Kirill Rybalchenko [Tue, 15 Oct 2019 13:45:35 +0000 (14:45 +0100)]
maintainers: claim maintainership of ptpclient example

Claim maintainership of examples/ptpclient/

Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
4 years agomaintainers: replace for AVP
Allain Legacy [Thu, 7 Nov 2019 20:48:34 +0000 (14:48 -0600)]
maintainers: replace for AVP

Resigning my maintainership of the AVP driver and adding Steve Webster
as a new maintainer.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
4 years agomaintainers: update for ifpga
Xiaolong Ye [Mon, 28 Oct 2019 05:47:16 +0000 (13:47 +0800)]
maintainers: update for ifpga

Add raw/ifpga to next-net-intel tree.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
4 years agodoc: update release notes for 19.11
John McNamara [Mon, 25 Nov 2019 12:38:13 +0000 (12:38 +0000)]
doc: update release notes for 19.11

Fix grammar, spelling and formatting of DPDK 19.11 release notes.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
4 years agodoc: sort features in 19.11 release notes
Thomas Monjalon [Tue, 26 Nov 2019 22:11:36 +0000 (23:11 +0100)]
doc: sort features in 19.11 release notes

Move cryptodev feature near other crypto features.

Group ethdev features together.
Sort drivers/net features with new PMDs first.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agodoc: add ABI policy changes to release notes
Ray Kinsella [Mon, 18 Nov 2019 13:15:28 +0000 (13:15 +0000)]
doc: add ABI policy changes to release notes

Add some pointers to the releases notes on the changes to the abi policy,
the introduction of project-level ABI management and the deprecation of
library-level management.

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: John McNamara <john.mcnamara@intel.com>
4 years agousertools: fix device binding module detection
Pavan Nikhilesh [Sat, 2 Nov 2019 14:23:15 +0000 (19:53 +0530)]
usertools: fix device binding module detection

Some kernel modules use '-' in their name when registering through
`pci_register_driver` and the same name  is populated in
'/sys/bus/pci/drivers/'.
But the kernel always populates modules names replacing '-' with '_'
in '/sys/module/'.

Example:
# ./usertools/dpdk-devbind.py -b octeontx2-nicpf 0002:03:00.0
Error: Driver 'octeontx2-nicpf' is not loaded.

# ls /sys/bus/pci/drivers/octeontx2-nicpf
bind  module  new_id  remove_id  uevent  unbind
# ls /sys/module/octeontx2_nicpf/
drivers  uevent  version

The patch addresses it by always replacing '-' with '_' when looking in
'/sys/module/'

Signed-off-by: Phanendra Vukkisala <pvukkisala@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agoci: add minimal check on testpmd
David Marchand [Fri, 22 Nov 2019 15:54:29 +0000 (16:54 +0100)]
ci: add minimal check on testpmd

Try to start testpmd with two vdevs without hugepages.
This is a really basic check, but better than nothing.

Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agonet/mlx5: fix crash on GRE flow rule parsing
Suanming Mou [Tue, 26 Nov 2019 14:08:35 +0000 (16:08 +0200)]
net/mlx5: fix crash on GRE flow rule parsing

When set the GRE item, GRE key should follow after GRE header, or the
header gre_item pointer used by the key will be invalid.

Currently in the mlx5_flow_validate_item_gre_key() function, the header
gre_item pointer is access before checking if the key is after the
header or not. Once the key item is before the header, invalid gre_item
pointer access happens.

Move the gre_item pointer access after the GRE header check to avoid the
crash issue.

Fixes: a7a0365565a4 ("net/mlx5: match GRE key and present bits")
Cc: stable@dpdk.org
Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/mlx5: add GENEVE in tunnel offloads capabilities
Suanming Mou [Tue, 26 Nov 2019 14:06:05 +0000 (16:06 +0200)]
net/mlx5: add GENEVE in tunnel offloads capabilities

GENEVE is available in tunnel offloads. Add it as the default support
option.

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/mlx5: fix build with dlopen linkage
Ali Alnubani [Tue, 26 Nov 2019 08:35:24 +0000 (08:35 +0000)]
net/mlx5: fix build with dlopen linkage

The header mlx5_glue.h includes rte_byteorder.h, which isn't
pulled by global_inc. This patch adds the missing include directory
and fixes the build error:

  In file included from drivers/net/mlx5/mlx5_glue.c:31:
  drivers/net/mlx5/mlx5_glue.h:12:10: fatal error:
  rte_byteorder.h: No such file or directory

The build failure can be triggered with:
  meson -Dibverbs_link=dlopen build && ninja -C build

Fixes: 400d985eb586 ("net/mlx5: add VLAN push/pop DR commands to glue")

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
4 years agonet/mlx5: fix legacy multi-packet Tx descriptors
Viacheslav Ovsiienko [Tue, 26 Nov 2019 10:45:03 +0000 (10:45 +0000)]
net/mlx5: fix legacy multi-packet Tx descriptors

ConnectX-4LX supports multiple packets within the single Tx
descriptor. This feature is named as "Legacy Multi-Packet Write"
and imposes a lot of limitations:

  - no ACLs, it means no NIC Tx Flows are supported and Tx metadata
    become meaningless
  - the required minimal inline data must be zero
  - no SR-IOV, it means no support in E-Switch configurations,
  - no priority and dscp forcing
  - no VLAN insertion
  - no TSO
  - all packets within MPW session must have the same size

This legacy MPW feature is mainly intended for test purposes.
To explicitly engage the feature on ConnectX-4LX the devargs
should be specified:

  - txq_mpw_en=1

This feature was dropped in 19.08, this patch reverts it back.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agonet/kni: fix crash caused by double stop
Ferruh Yigit [Tue, 26 Nov 2019 10:50:07 +0000 (10:50 +0000)]
net/kni: fix crash caused by double stop

'close()' calls 'stop()' and 'stop()' cancels pthread without any check.
Calling 'stop()' & 'close()' sequentially tries to cancel pthread twice
which will cause a crash.

Adding a state check in 'stop()' before canceling the pthread to prevent
multiple stop.

Fixes: 696fbc7bb4fc ("net/kni: remove resources when port is closed")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Yinan Wang <yinan.wang@intel.com>
4 years agoethdev: fix item expansion for RSS flow
Matan Azrad [Tue, 26 Nov 2019 09:04:10 +0000 (09:04 +0000)]
ethdev: fix item expansion for RSS flow

When the last item in flow pattern includes "next protocol" field which
is relevant for RSS flow expansion, a new item is added to the pattern
according to the "next protocol" field. This field is called missed
field.

The missed field wrongly was not initialized what caused to some of the
flow item fields to contain garbage values.

As a result, the PMDs internal flow engine may crash.

For example, the spec value may include garbage pointer and to cause
crash.

Initialize the missed field with zeroes.

Fixes: fc2dd8dd492f ("ethdev: fix expand RSS flows")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/ifc: check VFIO query error
Xiao Wang [Tue, 26 Nov 2019 14:59:31 +0000 (09:59 -0500)]
net/ifc: check VFIO query error

It's possible that we fail to get the IOMMU group of ifcvf device, this
patch adds a check on the return value.

Coverity issue: 349894
Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
Cc: stable@dpdk.org
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
4 years agonet/mlx5: fix flow engine choice
Dekel Peled [Tue, 26 Nov 2019 08:34:22 +0000 (10:34 +0200)]
net/mlx5: fix flow engine choice

Commit in fixes line sets the DV (Direct Verbs) flow engine as default.
Newer versions of DV flow engine use the DR (Direct Rules) features.
DR is supported from RDMA Core library version rdma-core-24.0.
This cause failure to start port when using older rdma-core version,
without DR support.

This patch selects DV flow engine if rdma-core version is v24.0 or
higher. Verbs flow engine is selected otherwise.

Fixes: cd4569d2bf3c ("net/mlx5: change default flow engine to DV")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/octeontx2: fix loopback config return for VF
Sunil Kumar Kori [Tue, 26 Nov 2019 07:03:58 +0000 (12:33 +0530)]
net/octeontx2: fix loopback config return for VF

loopback mode is not supported for VFs so returning error if
VF is being configured with loopback mode.

Fixes: 920717e4d8ba ("net/octeontx2: add device start operation")
Cc: stable@dpdk.org
Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/e1000: fix link status
Lunyuan Cui [Wed, 13 Nov 2019 12:46:59 +0000 (12:46 +0000)]
net/e1000: fix link status

The link status got from link status register was not correct,
because register has been reset when ports reset.
After port reset, set the link status down.

Fixes: c431ec66c54c ("net/igb: support setting link up or down")
Cc: stable@dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
4 years agonet/ixgbe: fix link status
Lunyuan Cui [Mon, 18 Nov 2019 15:37:44 +0000 (15:37 +0000)]
net/ixgbe: fix link status

The link status for 82599eb got from link status register was not
correct. Check the enable/disable flag of tx laser, set the link
status down if tx laser disabled. Then, we can get correct status.
But after port reset, tx laser register will be reset enable.
Link status will always be up. So set tx laser disable when port resets.

When hw->mac.autotry_restart is true, whether tx laser is disable or
enable, it will be set enable in ixgbe_flap_tx_laser_multispeed_fiber().
hw->mac.autotry_restart can be set true in both port init and port start.
Because we don't need this treatment before port starts, set
hw->mac.autotry_restart false when port init.

Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")
Cc: stable@dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
4 years agonet/e1000: fix link status update
Lunyuan Cui [Wed, 20 Nov 2019 09:22:03 +0000 (09:22 +0000)]
net/e1000: fix link status update

Meaningless to judge the link state according to the memset'ed
link variable, this patch fixes this logical issue.

In addition, this patch changes the variable from link_check to link_up
according to its real meaning.

Fixes: 80ba61115e77 ("net/e1000: use link status helper functions")
Cc: stable@dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
4 years agoethdev: remove deprecation notice about RSS hash flag
Andrew Rybchenko [Tue, 19 Nov 2019 12:12:15 +0000 (12:12 +0000)]
ethdev: remove deprecation notice about RSS hash flag

The offload flag was added, but the deprecation notice was not removed.

Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoethdev: remove deprecation notice for packet type set
Andrew Rybchenko [Tue, 19 Nov 2019 12:12:14 +0000 (12:12 +0000)]
ethdev: remove deprecation notice for packet type set

The functionality is added, but the deprecation notice is not
removed.

Fixes: 5d4813acda2c ("ethdev: add packet type range function")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/hns3: fix checking enough Tx BDs
Wei Hu (Xavier) [Mon, 25 Nov 2019 09:00:53 +0000 (17:00 +0800)]
net/hns3: fix checking enough Tx BDs

In .tx_pkt_burst ops implementation function of hns3 PMD driver,
there is one check whether there are enough BDs in the TX queue.
If not, driver will stop sending the packets.

Currently in the 'for' process loop, the next_to_use member of
TX queue is not updated in time after processing BDs of one packet,
which results in the invalid action of checking whether there are
enough BDs and failure in sending packets.

This patch fixes it by moving the assignment statment of the
next_to_use member of TX queue to the place after porcessing TX BDs
in the 'for' loop.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
Cc: stable@dpdk.org
Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agodoc: update qede guide
Rasesh Mody [Fri, 22 Nov 2019 23:31:18 +0000 (15:31 -0800)]
doc: update qede guide

- Add note for sharing an adapter between DPDK and Linux drivers.
- Update the firmware version in example.
- Add Config note for potential error due to lack of memzone descriptor
  count.

Signed-off-by: Rasesh Mody <rmody@marvell.com>
4 years agonet/octeontx2: fix packet type parsing disabled by default
Pavan Nikhilesh [Sat, 23 Nov 2019 08:58:31 +0000 (14:28 +0530)]
net/octeontx2: fix packet type parsing disabled by default

Enable packet type parsing by default, only disable when
`rte_eth_dev_set_ptypes()` is called with ptype_mask as 0.
This would enable applications that are dependent on packet type parsing
like l3fwd.

Also this patch preserves configuration set by `rte_eth_dev_set_ptypes`
across multiple calls of `rte_eth_dev_configure()`

Fixes: d2706e15e6fb ("net/octeontx2: support reduced set of packet types")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agodoc: update metadata feature in mlx5 guide
Viacheslav Ovsiienko [Mon, 18 Nov 2019 11:20:34 +0000 (11:20 +0000)]
doc: update metadata feature in mlx5 guide

Legacy Verbs supports MARK and FLAG metadata actions only.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
4 years agonet/mlx5: fix getting metadata register for E-Switch domain
Viacheslav Ovsiienko [Thu, 21 Nov 2019 17:59:42 +0000 (17:59 +0000)]
net/mlx5: fix getting metadata register for E-Switch domain

The metadata register used for META item/action within E-Switch
steering domain should be altered depending on dv_xmeta_en
devarg value.

Fixes: 3e8edd0ef848 ("net/mlx5: update metadata register ID query")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agonet/mlx5: fix chosen L3/L4 layer with tunnel
Suanming Mou [Thu, 21 Nov 2019 12:09:30 +0000 (14:09 +0200)]
net/mlx5: fix chosen L3/L4 layer with tunnel

For tunnel mode, there may be two L3/L4 layer match pattern items, one
for inner and one for outer layers. The L3 TTL and L4 port header
modify actions should handle the outermost layer items.

Currently flow_dv_attr_init() doesn't distinguish between outer and
inner layers, since inner layer comes later than the outer layer, this
may cause inner layer values also set to the flow attributes and may
lead actions to use inner L3/L4 pattern items.

Adding a check in flow_dv_attr_init() to prevent inner layer to set the
flow attribute if the previous L3/L4 outer pattern exist.

Fixes: 4bb14c83df95 ("net/mlx5: support modify header using Direct Verbs")
Cc: stable@dpdk.org
Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agoapp/testpmd: use better randomness for Tx split
Pavan Nikhilesh [Thu, 21 Nov 2019 19:34:06 +0000 (01:04 +0530)]
app/testpmd: use better randomness for Tx split

Use rte_rand() instead of random() for better randomness.

Coverity issue: 337666
Fixes: 79bec05b32b7 ("app/testpmd: add ability to split outgoing packets")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/hns3: fix duplicated VLAN entry
Min Hu (Connor) [Fri, 22 Nov 2019 12:06:24 +0000 (20:06 +0800)]
net/hns3: fix duplicated VLAN entry

When setting vlan, hns3 driver will add vlan entry to vlan linked list
each time, and this is unreasonable.

This patch adds a check whether the VLAN to be added already exists
in the linked list and prevents adding duplicated vlan.

Fixes: 411d23b9eafb ("net/hns3: support VLAN")
Cc: stable@dpdk.org
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agonet/hns3: fix VF link status
Huisong Li [Fri, 22 Nov 2019 12:06:23 +0000 (20:06 +0800)]
net/hns3: fix VF link status

Currently, port link status is "up" in VF driver after user calling the
rte_eth_dev_stop API. This is unreasonable.

Therefore, this patch adjusts the strategy of getting link status from
PF driver for VF. VF driver should stop getting link status from PF by
canceling the alarm that VF driver send mailbox message to PF driver,
when the rte_eth_dev_stop API is called. And VF driver should restore
the alarm when the rte_eth_dev_start API is called.

Fixes: a5475d61fa34 ("net/hns3: support VF")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agonet/hns3: fix mailbox response length
Chengchang Tang [Fri, 22 Nov 2019 12:06:22 +0000 (20:06 +0800)]
net/hns3: fix mailbox response length

Remove the macro 'HNS3_REG_MSG_DATA_OFFSET' which is used to prevent
access violation for response array by limiting the response data length
to 4.
But the limit value is too short to get some longer information such as
6 byte MAC address.

This patch modifies the length of response data from mailbox to allow
the response data length to be 8. So that the VF driver could get more
data from PF driver by mailbox.

Fixes: 463e748964f5 ("net/hns3: support mailbox")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@hisilicon.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agonet/hns3: fix sending packets less than 60 bytes
Wei Hu (Xavier) [Fri, 22 Nov 2019 12:06:21 +0000 (20:06 +0800)]
net/hns3: fix sending packets less than 60 bytes

Ethernet minimum packet length is 64 bytes. If upper application
sends packets with less than 60 bytes in length(no CRC), driver
adds padding processing to avoid failure.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agonet/hns3: fix VF configuration after abnormal exit
Wei Hu (Xavier) [Fri, 22 Nov 2019 12:06:20 +0000 (20:06 +0800)]
net/hns3: fix VF configuration after abnormal exit

When the application using VF device exits abnormally, for example,
when it is killed by 'kill -9', kernel PF netdev driver also stores
the corresponding configuration table entries of VF device.

This patch fixes it by adding message of deleting VF configuration
table entry corresponds to the revision of kernel hns3 netdev
driver, the new message is added to notify the kernel PF netdev
driver to clean up the VF configuration initialization during VF
initialization.

This revision is compatible with the old version of kernel hns3
netdev driver. The old version of kernel pf netdev driver will
ignore this message.

Fixes: a5475d61fa34 ("net/hns3: support VF")
Cc: stable@dpdk.org
Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agonet/hns3: fix RSS hardware configuration restore
Hao Chen [Fri, 22 Nov 2019 12:06:19 +0000 (20:06 +0800)]
net/hns3: fix RSS hardware configuration restore

This patch fixes the bug that hardware configuration called
tc_size doesn't restore to the initial value when starting
the app, configuring PFC and then restarting the app,
because of the tc_mode didn't initial when rss is disabled.

Fixes: c37ca66f2b27 ("net/hns3: support RSS")
Cc: stable@dpdk.org
Signed-off-by: Hao Chen <chenhao164@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
4 years agoapp/testpmd: reduce memory consumption
David Marchand [Fri, 22 Nov 2019 10:43:23 +0000 (11:43 +0100)]
app/testpmd: reduce memory consumption

Following [1], testpmd memory consumption has skyrocketted.
The rte_port structure has gotten quite fat.

struct rte_port {
[...]
  struct rte_eth_rxconf rx_conf[65536];            /* 266280 3145728 */
  /* --- cacheline 53312 boundary (3411968 bytes) was 40 bytes ago --- */
  struct rte_eth_txconf tx_conf[65536];            /* 3412008 3670016 */
  /* --- cacheline 110656 boundary (7081984 bytes) was 40 bytes ago --- */
[...]
  /* size: 8654936, cachelines: 135234, members: 31 */
[...]

testpmd handles RTE_MAX_ETHPORTS ports (32 by default) which means that it
needs ~256MB just for this internal representation.

The reason is that a testpmd rte_port (the name is quite confusing, as
it is a local type) maintains configurations for all queues of a port.
But where you would expect testpmd to use RTE_MAX_QUEUES_PER_PORT as the
maximum queue count, the rte_port uses MAX_QUEUE_ID set to 64k.

Prefer the ethdev maximum value.

After this patch:
struct rte_port {
[...]
  struct rte_eth_rxconf      rx_conf[1025];        /*  8240 49200 */
  /* --- cacheline 897 boundary (57408 bytes) was 32 bytes ago --- */
  struct rte_eth_txconf      tx_conf[1025];        /* 57440 57400 */
  /* --- cacheline 1794 boundary (114816 bytes) was 24 bytes ago --- */
[...]
  /* size: 139488, cachelines: 2180, members: 31 */
[...]

With this, we can ask for less memory in test-null.sh.

[1]: https://git.dpdk.org/dpdk/commit/?id=436b3a6b6e62

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
4 years agonet/bnxt: fix freeing all VNICs during port stop
Somnath Kotur [Thu, 21 Nov 2019 07:57:40 +0000 (13:27 +0530)]
net/bnxt: fix freeing all VNICs during port stop

Now that vnics are created only as part of the flow creation cmds
and not during init, we cannot rely on iterating only through
'nr_vnics'. We need to sweep all the vnics by using 'max_vnics'
otherwise a vnic with a stale 'rx_queue_cnt' might be left lingering
post a port stop/start operation. This could lead to a segfault.
This change is required because of the recent fix made by commit to
"fix flow creation with non-consecutive group ids".

Fixes: fcdd7210aa1f ("net/bnxt: fix flow creation with non-consecutive group ids")

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agodoc: update release notes for bnxt
Ajit Khaparde [Tue, 19 Nov 2019 01:18:37 +0000 (17:18 -0800)]
doc: update release notes for bnxt

Update release doc briefly describing updates to bnxt PMD for
19.11 release.

The support for these was added in the following commits:
1) b150a7e7ee66 ("net/bnxt: support LRO on Thor adapters")
2) be14720def9c ("net/bnxt: support FW reset")
3) df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW")
4) 698aa7e95325 ("net/bnxt: add code to determine the Tx COS queue")
5) 04102f2ffc8c ("net/bnxt: update HWRM API to version 1.10.1.6")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agodoc: update bnxt feature list
Ajit Khaparde [Tue, 19 Nov 2019 23:32:30 +0000 (15:32 -0800)]
doc: update bnxt feature list

Updating bnxt.ini file.
These features were added earlier under the following commits.
1) 94d4afd2d167 ("net/bnxt: advertise scatter Rx offload capability")
2) 57d5e5bc86e4 ("net/bnxt: add statistics")
3) 88920136688c ("net/bnxt: support xstats get by id")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agonet/mlx5: fix selection between encap and decap
Ori Kam [Thu, 21 Nov 2019 13:18:31 +0000 (13:18 +0000)]
net/mlx5: fix selection between encap and decap

The current raw_encap function selects if to decap or encap
based on the egress/ingress attribute. This concepts doesn't work
in case of FDB since all flows are considered ingress.

To solve this issue we moved to check the encap size.
if the encap size is larger then eth + ipv4 it means we are
trying to encap.

Fixes: 8ba9eee4ce32 ("net/mlx5: add raw data encap/decap to Direct Verbs")
Cc: stable@dpdk.org
Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agodoc: fix tap guide
Andrzej Ostruszka [Thu, 21 Nov 2019 13:27:01 +0000 (14:27 +0100)]
doc: fix tap guide

Corrected one typo and IP address according RFC5735.

Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/ixgbe: fix performance drop caused by MACsec
Shougang Wang [Thu, 21 Nov 2019 07:32:05 +0000 (07:32 +0000)]
net/ixgbe: fix performance drop caused by MACsec

Currently macsec offload will be enabled every time when device starts.
It will cause QoS sample application performance drop issue. This patch
adds check in dev_start ops to make sure macsec is only enabled when
required explicitly.

Fixes: 50556c88104c ("net/ixgbe: fix MACsec setting")
Cc: stable@dpdk.org
Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
4 years agonet/mlx5: fix flow tag hash list conversion
Matan Azrad [Thu, 21 Nov 2019 11:27:57 +0000 (11:27 +0000)]
net/mlx5: fix flow tag hash list conversion

When DR is not supported and DV is supported, tag action still can be
used by the metadata feature.

Wrongly, the tag hash list was not created what caused failure in
metadata action creation.

Create the tag hash list for each DV case.

Fixes: 860897d2895a ("net/mlx5: reorganize flow tables with hash list")

Signed-off-by: Matan Azrad <matan@mellanox.com>
4 years agonet/virtio-user: drop attribute unused for memory callback
Tiwei Bie [Tue, 19 Nov 2019 07:12:24 +0000 (15:12 +0800)]
net/virtio-user: drop attribute unused for memory callback

The "addr" param has been used since the event callbacks are enabled
for external memory. So the "__rte_unused" should be dropped.

Besides, slightly refine the coding style by consistently assuming
tabs are 8 characters.

Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agoapp/testpmd: fix memory leak on detach
Stephen Hemminger [Wed, 20 Nov 2019 23:26:28 +0000 (15:26 -0800)]
app/testpmd: fix memory leak on detach

The RTE_FOREACH_MATCHING_DEV iterator requires that
if a break is done before the end of the loop,
the function rte_eth_iterator_cleanup() must be called.

Fixes: 55e51c962432 ("app/testpmd: add device related commands")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
4 years agonet/ice: support flow director for normal GTPU
Yahui Cao [Thu, 21 Nov 2019 11:20:15 +0000 (19:20 +0800)]
net/ice: support flow director for normal GTPU

Add FDIR support for normal GTP-U packet, which doesn't contain GTP_PSC
extension header.

Fixes: efc16c621415 ("net/ice: support flow director GTPU tunnel")

Signed-off-by: Yahui Cao <yahui.cao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/ice: fix pattern name of GTPU with extension header
Yahui Cao [Thu, 21 Nov 2019 11:20:14 +0000 (19:20 +0800)]
net/ice: fix pattern name of GTPU with extension header

Pattern name of GTP-U flow with extension header should be
xxx_gtpu_eh_xxx. So it will not conflict with the pattern name of a
GTP-U flow that does not contains extension header.

Fixes: 3e4eab9c2192 ("net/ice: add pattern manifest")

Signed-off-by: Yahui Cao <yahui.cao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>