dpdk.git
6 years agonet/mlx5: disable ConnectX-4 Lx Multi Packet Send by default
Shahaf Shuler [Mon, 13 Aug 2018 06:47:57 +0000 (09:47 +0300)]
net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default

On ConnectX-4 Lx the Multi Packet Send (MPW) feature is considered
un-secure, as on some cases were the application provides incorrect mbufs
on the Tx burst the host or NIC can get stuck.

Hence, disabling the feature by default for this specific NIC.
Users can still enable this feature and enjoy the performance gain
(mostly for low number of cores) by using the txq_mpw_en devarg.

This patch will impact the out of the box performance of some application
using ConnectX-4 Lx for the sack of security and robustness.

Since we need different defaults based on the underlying device the mpw
field in the configuration struct was extended to contain also the
MLX5_ARG_UNSET option.

Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix artificial L4 limitation on switch flow rules
Adrien Mazarguil [Mon, 6 Aug 2018 14:25:42 +0000 (16:25 +0200)]
net/mlx5: fix artificial L4 limitation on switch flow rules

Partial bit-masks are in fact supported on TCP/UDP source/destination
ports. Remove unnecessary check.

Fixes: 2bfc777e07 ("net/mlx5: add L2-L4 pattern items to switch flow rules")
Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agovhost: suppress error if NUMA is not available
Ilya Maximets [Fri, 10 Aug 2018 07:24:54 +0000 (10:24 +0300)]
vhost: suppress error if NUMA is not available

It's a common case that 'get_mempolicy' fails on systems
without NUMA support. No need to flag an error in log for
this situation.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agodoc: fix style and syntax in flow API guide
Ilya Maximets [Thu, 23 Aug 2018 08:05:54 +0000 (11:05 +0300)]
doc: fix style and syntax in flow API guide

Fixes: 3e0ceb9f17ff ("doc: add basic howto for flow API")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/octeontx: fix packet corruption on Tx
Jerin Jacob [Fri, 17 Aug 2018 14:30:22 +0000 (20:00 +0530)]
net/octeontx: fix packet corruption on Tx

LMTST does not guarantee packet content get synced with L2C when
HW access the packet for transmitting.

Adding coherent IO write barrier will make sure HW sees the correct
packet if its modified.

Fixes: 9e747589bd4c ("net/octeontx: add packet transmit burst function")
Cc: stable@dpdk.org
Reported-by: Vikas Aggarwal <vikas.aggarwal@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
6 years agonet/netvsc: resize event buffer as needed
Stephen Hemminger [Tue, 14 Aug 2018 16:45:25 +0000 (09:45 -0700)]
net/netvsc: resize event buffer as needed

The event buffer was changed to be a fixed size value,
had a couple of issues. The big one is that rte_free was still
being called for a pointer that was not setup with rte_malloc().

The event buffer was also too small to handle heavy receive
traffic; and running the event buffer out would crash
the application.

Fix by going back to a dynamically resized event buffer.
And grow it by 25% to avoid lots of realloc's.

Fixes: 530af95a7849 ("bus/vmbus: avoid signalling host on read")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: implement free Tx mbuf on demand
Stephen Hemminger [Thu, 9 Aug 2018 17:50:08 +0000 (10:50 -0700)]
net/netvsc: implement free Tx mbuf on demand

Add tx_done_cleanup ethdev hook to allow application to
control if/when it wants completions to be handled.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: set lower host latency
Stephen Hemminger [Thu, 9 Aug 2018 17:50:07 +0000 (10:50 -0700)]
net/netvsc: set lower host latency

Tune the vmbus connection so the host scans faster. This improves
transmit performance. The host default value is 100us but setting
to 50us reduces packet loss significantly.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agobus/vmbus: add host latency tuning function
Stephen Hemminger [Thu, 9 Aug 2018 17:50:06 +0000 (10:50 -0700)]
bus/vmbus: add host latency tuning function

Add vmbus API to allow tuning the scan interval on the host side.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: fix chimney buffer size error handling
Stephen Hemminger [Thu, 9 Aug 2018 17:50:05 +0000 (10:50 -0700)]
net/netvsc: fix chimney buffer size error handling

Fix the error handling in setting up transmit buffer.
If setting up chimney buffer fails, then it is not connected so
no need to send disconnect.

Allow for some unused area if full area is not used.

Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/bonding: support matching QinQ ethertype
Yunjian Wang [Tue, 7 Aug 2018 08:10:46 +0000 (16:10 +0800)]
net/bonding: support matching QinQ ethertype

We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
but it could be 0x88A8 if QinQ is supported.

Fixes: 06fe78b98ccd ("bond: add mode 6")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Chas Williams <chas3@att.com>
6 years agoethdev: change vtune profiling approach
Ilia Kurakin [Thu, 19 Jul 2018 12:21:42 +0000 (15:21 +0300)]
ethdev: change vtune profiling approach

The patch changes rx_burst profiling approach:
1. VTune's instrumentation is removed
2. empty hook callback for profiling is added
This way all VTune-specific logic moves to the VTune side.
Hook is enabled only when CONFIG_RTE_ETHDEV_PROFILE_WITH_VTUNE option
is turned on. VTune uses this hook to attach to the polling cycle. It
is not possible to attach to the rx_burst directly, as it is inline.

Signed-off-by: Ilia Kurakin <ilia.kurakin@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoacl: forbid rule with priority zero
Konstantin Ananyev [Fri, 24 Aug 2018 16:47:06 +0000 (17:47 +0100)]
acl: forbid rule with priority zero

If user specifies priority=0 for some of ACL rules
that can cause rte_acl_classify to return wrong results.
The reason is that priority zero is used internally for no-match nodes.
See more details at: https://bugs.dpdk.org/show_bug.cgi?id=79.
The simplest way to overcome the issue is just not allow zero
to be a valid priority for the rule.

Fixes: dc276b5780c2 ("acl: new library")
Cc: stable@dpdk.org
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobus/vdev: fix error log on secondary device scan
Qi Zhang [Mon, 3 Sep 2018 08:49:29 +0000 (16:49 +0800)]
bus/vdev: fix error log on secondary device scan

When a secondary process handles VDEV_SCAN_ONE mp action, it is possible
the device is already be inserted. This happens when we have multiple
secondary processes which cause multiple broadcasts from primary during
bus->scan. So we don't need to log any error for -EEXIST.

Bugzilla ID: 84
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")
Cc: stable@dpdk.org
Reported-by: Gage Eads <gage.eads@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Gage Eads <gage.eads@intel.com>
6 years agomalloc: fix potential null pointer dereference
Tiwei Bie [Wed, 15 Aug 2018 07:20:15 +0000 (15:20 +0800)]
malloc: fix potential null pointer dereference

We need to do the NULL pointer check first after malloc().

Fixes: 07dcbfe0101f ("malloc: support multiprocess memory hotplug")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agobuild: enable ARM NEON flag when __aarch64__ defined
Honnappa Nagarahalli [Sun, 2 Sep 2018 18:35:28 +0000 (13:35 -0500)]
build: enable ARM NEON flag when __aarch64__ defined

GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not
optional for ArmV8. Hence NEON related code can be enabled
when __aarch64__ is defined.

Bugzilla ID: 82
Cc: stable@dpdk.org
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Reported-by: Thomas F Herbert <therbert@redhat.com>
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agomk: disable OcteonTx for buggy compilers only on arm64
Jerin Jacob [Mon, 3 Sep 2018 09:31:10 +0000 (15:01 +0530)]
mk: disable OcteonTx for buggy compilers only on arm64

Disable octeontx for gcc 4.8.5 as the compiler is emitting "internal
compiler error" for aarch64. The GCC "internal compiler error" was
observed only for arm64 architecture so disable the PMD only
for arm64.

Fixes: 4f760550a093 ("mk: disable OcteonTx for buggy compilers")
Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agobus/fslmc: fix undefined reference of memsegs
Hemant Agrawal [Mon, 27 Aug 2018 08:52:23 +0000 (14:22 +0530)]
bus/fslmc: fix undefined reference of memsegs

This patch fix the undefined reference issue with rte_dpaa2_memsegs
when compiled in shared lib mode with EXTRA_CFLAGS="-g -O0"

Bugzilla ID: 61
Fixes: 365fb925d3b3 ("bus/fslmc: optimize physical to virtual address search")
Cc: stable@dpdk.org
Reported-by: Keith Wiles <keith.wiles@intel.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agodevtools: relax rule for identifying symbol section
Neil Horman [Thu, 16 Aug 2018 11:08:01 +0000 (07:08 -0400)]
devtools: relax rule for identifying symbol section

It was reported recently that some patches that add symbols to an
existing EXPERIMENTAL section of a version map file generate errors
because the check-symbol-change script was identifying the section as
"@@" rather than EXPERIMENTAL.  This was fairly clearly due to the fact
that the rule identifying the version section expected the whole section
to be added, rather than having it already exist, with only new symbols
being added to the existing section. This led the match rule to misread
the format of that line and pull the wrong word out of it.

The fix is to relax the rule slightly.  Rather than assume that the
section must exist on a line that was added, allow the section name to
be set by any line that ends in a '{', which should be correct, given
our coding practices.  The section name is then extracted as the next to
the last word on the line ( $(NF-1) ).

Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
Cc: stable@dpdk.org
Reported-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Nikhil Rao <nikhil.rao@intel.com>
6 years agoversion: 18.11-rc0
Thomas Monjalon [Sat, 11 Aug 2018 21:58:03 +0000 (23:58 +0200)]
version: 18.11-rc0

Start version numbering for a new release cycle,
and introduce a template file for release notes.

The release notes comments have a new block to suggest
the order of items, inspired by Ferruh's proposal.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agoversion: 18.08.0
Thomas Monjalon [Thu, 9 Aug 2018 21:11:26 +0000 (23:11 +0200)]
version: 18.08.0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: update release notes for 18.08
John McNamara [Thu, 9 Aug 2018 12:08:43 +0000 (13:08 +0100)]
doc: update release notes for 18.08

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

Signed-off-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: add SPDX and copyright to release notes
Hemant Agrawal [Fri, 27 Jul 2018 04:54:18 +0000 (10:24 +0530)]
doc: add SPDX and copyright to release notes

using "The DPDK Contributors" as decided by techboard.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: add SPDX and copyright to contributing guide
Hemant Agrawal [Tue, 5 Jun 2018 07:50:24 +0000 (13:20 +0530)]
doc: add SPDX and copyright to contributing guide

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoexamples/performance-thread: convert to SPDX tags
Pablo de Lara [Fri, 20 Apr 2018 09:53:38 +0000 (10:53 +0100)]
examples/performance-thread: convert to SPDX tags

Convert dual license headers with Intel and Dmitry Vyukov
names to SPDX.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Dmitry Vyukov <dvyukov@gmail.com>
6 years agohash: add more accurate thread-safety comments
Yipeng Wang [Thu, 26 Jul 2018 17:56:01 +0000 (10:56 -0700)]
hash: add more accurate thread-safety comments

Describing the thread-safety support more accurately for
API documentation.

Fixes: f2e3001b53ec ("hash: support read/write concurrency")

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agodoc: add multithread description to hash library
Yipeng Wang [Thu, 26 Jul 2018 17:56:00 +0000 (10:56 -0700)]
doc: add multithread description to hash library

Added multithreading related description into programmer
guide of hash library.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agodoc: describe --builtin-net-driver option in vhost app
Marvin Liu [Tue, 31 Jul 2018 16:00:39 +0000 (00:00 +0800)]
doc: describe --builtin-net-driver option in vhost app

Very simple version of vhost-user driver in vhost sample will be used if
builtin-net-driver option is enabled. This driver is based on generic
vhost lib APIs. Unfortunately, the implementation is incompatible with
QEMU as protocol feature is not supported.

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: move and update experimental API process
Shreyansh Jain [Fri, 25 May 2018 12:07:33 +0000 (17:37 +0530)]
doc: move and update experimental API process

Experimental API text has been moved into a sub-section of ABI Policy.
A paragraph has been added to explain the process for removal of an
experimental tag.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agomaintainers: claim maintainership for ARM v7 and v8
Gavin Hu [Thu, 9 Aug 2018 01:58:03 +0000 (09:58 +0800)]
maintainers: claim maintainership for ARM v7 and v8

Claim the maintainership as Jianbo Liu is not working on this any more.
Aslo remove the co-maintainership for Marvel mvpp2 amd mrvl crypto driver
and doc.

Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agomk: fix permissions when using make install
Bruce Richardson [Thu, 9 Aug 2018 15:22:35 +0000 (16:22 +0100)]
mk: fix permissions when using make install

When using make install, the permissions of the resulting file should be
those of the user using make install, not those of the user who ran the
build. This would not be the case when a user explicitly runs:

   "make && sudo make install"

Fix this by changing "cp -a", which preserves all attributes, to
"cp -dR --preserve=timestamp", and by adding the flags
"--no-same-owner --no-same-permissions" to the calls to tar.

Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule")
Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree")
Fixes: 576de42b83e5 ("doc: render and install man pages")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodevtools: fix symbol check for dash
Thomas Monjalon [Sun, 5 Aug 2018 09:38:47 +0000 (11:38 +0200)]
devtools: fix symbol check for dash

The script check-symbol-change.sh was not running when
/bin/sh redirects to dash.

Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
Cc: nhorman@tuxdriver.com
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
6 years agoethdev: fix a doxygen comment for port allocation
Rami Rosen [Sun, 5 Aug 2018 20:03:28 +0000 (23:03 +0300)]
ethdev: fix a doxygen comment for port allocation

This patch fixes a doxygen comment of the rte_eth_dev_allocate()
method. There is no parameter named "type" for this
method; so this patch removes the doxygen comment about it.

Fixes: 6751f6deb798 ("ethdev: get rid of device type")
Cc: stable@dpdk.org
Signed-off-by: Rami Rosen <rami.rosen@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agobus/pci: remove unneeded EAL private include
Rami Rosen [Wed, 8 Aug 2018 18:40:54 +0000 (21:40 +0300)]
bus/pci: remove unneeded EAL private include

This trivial patch removes an uneeded include
from drivers/bus/pci/linux/pci.c.

Signed-off-by: Rami Rosen <rami.rosen@intel.com>
6 years agobus/pci: remove useless forward declaration
Rami Rosen [Tue, 7 Aug 2018 19:09:14 +0000 (22:09 +0300)]
bus/pci: remove useless forward declaration

This patch removes the forward declaration of rte_pci_remove_device()
method. In the past, this forward decalaration was needed for
rte_pci_detach(), which is now removed from pci_common.c.

Fixes: e690338a7b85 ("bus/pci: remove unused function to detach by address")

Signed-off-by: Rami Rosen <rami.rosen@intel.com>
6 years agokni: fix build on RHEL 7.5
Drocula Lambda [Thu, 9 Aug 2018 12:09:06 +0000 (12:09 +0000)]
kni: fix build on RHEL 7.5

This patch fixes compilation errors on Centos 7.5 when
CONFIG_RTE_KNI_KMOD_ETHTOOL is set to 'y'.
On RHEL75 ndo_change_mtu has changed to ndo_change_mtu_rh74.

See commit 37d477b6863e5c06 ("kni: fix build on RHEL 7.5")

Signed-off-by: Drocula Lambda <quzeyao@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agokni: fix crash with null name
Dan Gora [Thu, 28 Jun 2018 22:58:38 +0000 (15:58 -0700)]
kni: fix crash with null name

Fix a segmentation fault which occurs when the kni_autotest is run
in the 'test' application.

This segmenation fault occurs when rte_kni_get() is called with a
NULL value for 'name'.

Fixes: 0c6bc8ef70ba ("kni: memzone pool for alloc and release")
Cc: stable@dpdk.org
Signed-off-by: Dan Gora <dg@adax.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agodoc: announce deprecation of flow copy function
Adrien Mazarguil [Fri, 3 Aug 2018 14:37:52 +0000 (16:37 +0200)]
doc: announce deprecation of flow copy function

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agodoc: update deprecation notice about devargs
Thomas Monjalon [Wed, 8 Aug 2018 22:28:57 +0000 (00:28 +0200)]
doc: update deprecation notice about devargs

The devargs parsing function has changed in 18.08.
The devargs rework should be completed in 18.11.

Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: remove experimental tag for user mbuf pool ops
Olivier Matz [Tue, 7 Aug 2018 21:34:43 +0000 (23:34 +0200)]
eal: remove experimental tag for user mbuf pool ops

Remove experimental tag from rte_eal_mbuf_user_pool_ops().

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agoeal: remove deprecated function for mbuf pool ops
Olivier Matz [Tue, 7 Aug 2018 21:34:42 +0000 (23:34 +0200)]
eal: remove deprecated function for mbuf pool ops

rte_eal_mbuf_default_mempool_ops() is replaced by
rte_mbuf_best_mempool_ops().

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agodoc: fix PDF build
Thomas Monjalon [Wed, 8 Aug 2018 18:37:36 +0000 (20:37 +0200)]
doc: fix PDF build

The SVG images must be referenced without their extension,
because it is converted to PNG for PDF.

Fixes: 54c4cbb6ccf1 ("doc: add graphics to bbdev guide")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agodoc: add tested Intel platforms with Intel NICs
Lijuan Tu [Mon, 6 Aug 2018 10:56:31 +0000 (18:56 +0800)]
doc: add tested Intel platforms with Intel NICs

Add tested Intel platforms with Intel NICs to the release note.

Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
6 years agodoc: add tested platforms with Mellanox NICs
Raslan Darawsheh [Wed, 8 Aug 2018 15:32:57 +0000 (18:32 +0300)]
doc: add tested platforms with Mellanox NICs

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
6 years agodoc: update release notes for Mellanox drivers
Shahaf Shuler [Sun, 5 Aug 2018 11:13:17 +0000 (14:13 +0300)]
doc: update release notes for Mellanox drivers

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agonet/mlx5: fix minimum size of multi-packet Rx queue
Yongseok Koh [Wed, 8 Aug 2018 19:32:47 +0000 (12:32 -0700)]
net/mlx5: fix minimum size of multi-packet Rx queue

The size of Rx queue is determined by dividing the number of descriptors by
the number of strides. As device can't support single slot queue, if the
number of descriptors is same as the number of strides, MPRQ shouldn't be
enabled. Otherwise, this will cause HW fault. For example, if rxd is set to
512 with testpmd on ConnectX-4 Lx, PMD can't receive more than 512 packets
because the minimum number of strides for ConnectX-4 Lx is 512. Users have
to configure larger number of descriptors in this case.

Fixes: 7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/qede: bump version to 2.9.0.1
Rasesh Mody [Wed, 8 Aug 2018 05:38:35 +0000 (22:38 -0700)]
net/qede: bump version to 2.9.0.1

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
6 years agonet/qede: fix ntuple filter configuration
Shahed Shaikh [Wed, 8 Aug 2018 05:38:34 +0000 (22:38 -0700)]
net/qede: fix ntuple filter configuration

PMD did not pass down the intended queue id while
configuring the ntuple filter.

Fixes: 622075356e8f ("net/qede: support ntuple and flow director filter")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
6 years agoexamples/ip_pipeline: fix RSS
Cristian Dumitrescu [Mon, 6 Aug 2018 15:24:16 +0000 (16:24 +0100)]
examples/ip_pipeline: fix RSS

After adding RSS hash offload checks, flags that are not supported by
the current device result in RSS configuration failing as opposed to
unsupported flags being silently discarded. This fix is making sure
that only device supported flags are passed to RSS configuration.

Fixes: aa1a6d87f15d ("ethdev: force RSS offload rules again")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
6 years agonet/tap: fix zeroed flow mask configurations
Matan Azrad [Mon, 6 Aug 2018 10:58:47 +0000 (10:58 +0000)]
net/tap: fix zeroed flow mask configurations

The rte_flow meaning of zero flow mask configuration is to match all
the range of the item value.
For example, the flow eth / ipv4 dst spec 1.2.3.4 dst mask 0.0.0.0
should much all the ipv4 traffic from the rte_flow API perspective.

>From some kernel perspectives the above rule means to ignore all the
ipv4 traffic (e.g. Ubuntu 16.04, 4.15.10).

Due to the fact that the tap PMD should provide the rte_flow meaning,
it is necessary to ignore the spec in case the mask is zero when it
forwards such like flows to the kernel.
So, the above rule should be translated to eth / ipv4 to get the
correct meaning.

Ignore spec configurations when the mask is zero.

Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agohash: fix doxygen of return values
Pablo de Lara [Tue, 7 Aug 2018 02:00:04 +0000 (03:00 +0100)]
hash: fix doxygen of return values

rte_hash_lookup_data() and rte_hash_lookup_with_hash_data()
functions return the index of the table where the key is stored
when this is found, and not 0 as the Doxygen currently states.

Also, these functions, and rte_hash_get_key_with_position()
return negative values when keys are not found (-EINVAL and -ENOENT),
where the minus sign was missing.

Bugzilla ID: 78
Fixes: 473d1bebce43 ("hash: allow to store data in hash table")
Fixes: 6dc34e0afe7a ("hash: retrieve a key given its position")
Cc: stable@dpdk.org
Reported-by: Petr Houska <t-pehous@microsoft.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agodoc: clarify usage of netvsc PMD
Stephen Hemminger [Mon, 6 Aug 2018 16:31:07 +0000 (09:31 -0700)]
doc: clarify usage of netvsc PMD

Since netvsc PMD does not support SR-IOV accelerated networking,
it is not recommended for use on Azure. Make this clear in the
guide.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: report checksum failures
Stephen Hemminger [Mon, 6 Aug 2018 18:22:44 +0000 (11:22 -0700)]
net/netvsc: report checksum failures

The host will notify netvsc device about failed UDP and TCP
checksum. Propagate that information into the mbuf.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: support packet type
Stephen Hemminger [Mon, 6 Aug 2018 18:22:43 +0000 (11:22 -0700)]
net/netvsc: support packet type

The Netvsc PMD was not filling in the packet type information.

Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agobus/vmbus: handle EOF on IRQ read
Stephen Hemminger [Mon, 6 Aug 2018 18:11:08 +0000 (11:11 -0700)]
bus/vmbus: handle EOF on IRQ read

This function is not used by netvsc driver yet.
Still the code should handle case where device driver returns
zero (due to rescind).

Coverity issue: 302871
Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agobus/vmbus: make sure path is null terminated
Stephen Hemminger [Mon, 6 Aug 2018 18:11:07 +0000 (11:11 -0700)]
bus/vmbus: make sure path is null terminated

Use strlcpy rather than strncpy to avoid any issues about
null termination.

Coverity issue 302859
Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agobus/vmbus: close directory in error path
Stephen Hemminger [Mon, 6 Aug 2018 18:11:06 +0000 (11:11 -0700)]
bus/vmbus: close directory in error path

Fix bug reported by Coverity where directory being scanned was
not closed in error path (leaking file descriptor).

Coverity issue: 302848
Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agoethdev: bump library version
Thomas Monjalon [Mon, 6 Aug 2018 10:51:19 +0000 (12:51 +0200)]
ethdev: bump library version

The old offload API is removed in 18.08,
so the library version must be increased,
in order to show the incompatibility with 18.05 one.

Fixes: ab3ce1e0c193 ("ethdev: remove old offload API")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agoversion: 18.08-rc3
Thomas Monjalon [Sun, 5 Aug 2018 23:45:20 +0000 (01:45 +0200)]
version: 18.08-rc3

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: add deprecation notice for external memory
Anatoly Burakov [Wed, 1 Aug 2018 12:07:16 +0000 (13:07 +0100)]
doc: add deprecation notice for external memory

Due to the upcoming external memory support [1], some API and ABI
changes will be required. In addition, although the changes called
out in the deprecation notice are not yet present in form of code
in the published RFC itself, they are based on consensus on the
mailing list [2] on how to best implement this feature.

[1] http://patches.dpdk.org/project/dpdk/list/?series=453&state=*
[2] https://mails.dpdk.org/archives/dev/2018-July/108002.html

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Zhihong Wang <zhihong.wang@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agometer: remove experimental tag from profile API
Kevin Traynor [Wed, 1 Aug 2018 15:30:49 +0000 (16:30 +0100)]
meter: remove experimental tag from profile API

As per guideline that new APIs must be experimental
for at least one release, it is now possible to remove
the experimental tag from:

rte_meter_srtcm_profile_config()
rte_meter_trtcm_profile_config()

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoeal: deprecate device attach and detach functions
Andrew Rybchenko [Wed, 11 Jul 2018 14:14:10 +0000 (15:14 +0100)]
eal: deprecate device attach and detach functions

Hotplug functions should be used directly to add and remove devices.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
6 years agoethdev: deprecate attach and detach functions
Andrew Rybchenko [Wed, 11 Jul 2018 14:14:09 +0000 (15:14 +0100)]
ethdev: deprecate attach and detach functions

These functions are buggy from the very beginning and should not be used.
Generic EAL hotplug mechanisms should be used instead.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
6 years agoapp/pdump: use EAL hotplug instead of ethdev attach
Andrew Rybchenko [Wed, 11 Jul 2018 14:14:08 +0000 (15:14 +0100)]
app/pdump: use EAL hotplug instead of ethdev attach

rte_eth_dev_attach() is to be deprecated.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
6 years agomempool: fold memory size calculation helper
Andrew Rybchenko [Fri, 27 Jul 2018 13:46:05 +0000 (14:46 +0100)]
mempool: fold memory size calculation helper

rte_mempool_calc_mem_size_helper() was introduced to avoid
code duplication and used in deprecated rte_mempool_mem_size() and
rte_mempool_op_calc_mem_size_default(). Now the first one is removed
and it is better to fold the helper into the second one to make it
more readable.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agomempool: remove deprecated functions
Andrew Rybchenko [Fri, 27 Jul 2018 13:46:04 +0000 (14:46 +0100)]
mempool: remove deprecated functions

Functions rte_mempool_populate_phys(), rte_mempool_virt2phy() and
rte_mempool_populate_phys_tab() are just wrappers for corresponding
IOVA functions and were deprecated in v17.11.

Functions rte_mempool_xmem_create(), rte_mempool_xmem_size(),
rte_mempool_xmem_usage() and rte_mempool_populate_iova_tab() were
deprecated in v18.05 and removal was announced earlier in v18.02.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agoexamples/flow_filtering: add flow director config for i40e
Rosen Xu [Tue, 31 Jul 2018 12:52:40 +0000 (20:52 +0800)]
examples/flow_filtering: add flow director config for i40e

Rte_fdir_conf of rte_eth_conf should be initialized before
port initialization. It is a workaround solution when working
with Intel I40e.

Fixes: 4a3ef59a10c8 ("examples/flow_filtering: add simple demo of flow API")
Cc: stable@dpdk.org
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Ori Kam <orika@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoexamples/multi_process: remove l2fwd fork example
Gage Eads [Mon, 30 Jul 2018 15:10:00 +0000 (10:10 -0500)]
examples/multi_process: remove l2fwd fork example

l2fwd_fork relies on a multiprocess model that DPDK does not support
(calling rte_eal_init() before fork()), in particular in light of recent
EAL changes like the multiproess communication channel.

This example can mislead users into thinking this is a supported
multiprocess model; hence, this commit removes this example and the
corresponding user guide documentation as well.

This patch was made following this mailing list discussion:
http://mails.dpdk.org/archives/dev/2018-July/108106.html

Signed-off-by: Gage Eads <gage.eads@intel.com>
6 years agodoc: add PCI address naming in IP pipeline guide
Kevin Laatz [Fri, 20 Jul 2018 13:09:06 +0000 (14:09 +0100)]
doc: add PCI address naming in IP pipeline guide

Add a note to the 'link' command in the IP Pipeline documentation
specifying the PCI device name format required to run the application.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoeal: fix bitmap documentation
Jerin Jacob [Tue, 17 Jul 2018 17:14:17 +0000 (22:44 +0530)]
eal: fix bitmap documentation

n_bits comes as first argument, align doxygen comment.

n_bit need to not be multiple of 512 as n_bits
are rounding to RTE_BITMAP_CL_BIT_SIZE.

Fixes: 14456f59e9f7 ("doc: fix doxygen warnings in QoS API")
Fixes: de3cfa2c9823 ("sched: initial import")
Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoring: clarify preemptible nature of algorithm
Honnappa Nagarahalli [Tue, 17 Jul 2018 04:52:44 +0000 (23:52 -0500)]
ring: clarify preemptible nature of algorithm

rte_ring implementation is not preemptible only under certain
circumstances. This clarification is helpful for data plane and
control plane communication using rte_ring.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
6 years agomempool: check for zero size creation
Pablo de Lara [Thu, 2 Aug 2018 00:35:04 +0000 (01:35 +0100)]
mempool: check for zero size creation

Currently, a mempool can be created if the number of
objects is zero. However, in this scenario,
rte_mempool_create should return NULL,
as the mempool created is useless otherwise.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agoethdev: decrease log level for unneeded actions
Kevin Traynor [Thu, 2 Aug 2018 18:39:41 +0000 (19:39 +0100)]
ethdev: decrease log level for unneeded actions

Change log level of messages from ERR to INFO where
the post condition of the API is success, but no action
was actually needed as the condition already existed.
e.g. calling rte_eth_dev_start() for a device that is
already started.

Fixes: bea1e0c70cfc ("ethdev: convert static log type usage to dynamic")

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agocommon/qat: fix offset greater than first segment
Tomasz Jozwiak [Thu, 2 Aug 2018 15:09:26 +0000 (17:09 +0200)]
common/qat: fix offset greater than first segment

This patch fixes sgl filling to handle offset
greater than first sgl segment

Fixes: 1947bd18580b ("compress/qat: support scatter-gather buffers")

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agocompress/qat: fix buffer lengths in offset case
Tomasz Jozwiak [Thu, 2 Aug 2018 15:09:25 +0000 (17:09 +0200)]
compress/qat: fix buffer lengths in offset case

Fixed lengths for src and dest buffers

Fixes: 32842f2a6d7d ("compress/qat: create FW request and process response")

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agoapp/crypto-perf: fix auth IV offset
Pablo de Lara [Thu, 2 Aug 2018 08:44:39 +0000 (09:44 +0100)]
app/crypto-perf: fix auth IV offset

Auth IV offset was not being set when creating the crypto session.

Fixes: acf8616901b5 ("cryptodev: add auth IV")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocompress/isal: fix offset check
Lee Daly [Wed, 1 Aug 2018 13:23:43 +0000 (14:23 +0100)]
compress/isal: fix offset check

This commit fixes an offset check in decompression which was checking
destination offset size against dst data_len rather than checking
against dst pkt_len as required, to support single and multi-segment
buffers.

Fixes: 788e748d3845 ("compress/isal: support chained mbufs")

Signed-off-by: Lee Daly <lee.daly@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agoevent: fix ring init failure handling
Harry van Haaren [Thu, 2 Aug 2018 14:43:29 +0000 (15:43 +0100)]
event: fix ring init failure handling

This commit fixes a bug in a 32-bit environment where the
generic ring_init() would fail, but given the interaction
with memzones the next iteration of the event_ring_autotest
would actually *pass* because the ring in question would
exist already an be looked-up.

This commit rightly error checks the result of ring_init(),
and calls rte_free() on the memory as required.

Fixes: dc39e2f359b5 ("eventdev: add ring structure for events")
Cc: stable@dpdk.org
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agonet/mlx5: fix minimum number of Multi-Packet RQ buffers
Yongseok Koh [Thu, 2 Aug 2018 21:00:07 +0000 (14:00 -0700)]
net/mlx5: fix minimum number of Multi-Packet RQ buffers

If MPRQ is enabled, a PMD-private mempool is allocated. For ConnectX-4 Lx,
the minimum number of strides is 512 which ConnectX-5 supports 8. This
results in quite small number of elements for the MPRQ mempool. For
example, if the size of Rx ring is configured as 512, only one MPRQ buffer
can cover the whole ring. If there's only one Rx queue is configured. In
the following code in mlx5_mprq_alloc_mp(), desc is 1 and obj_num will be
36 as a result.

desc *= 4;
obj_num = desc + MLX5_MPRQ_MP_CACHE_SZ * priv->rxqs_n;

However, rte_mempool_create_empty() has a sanity check to refuse large
per-lcore cache size compared to the number of elements. Cache flush
threshold should not exceed the number of elements of a mempool. For the
above example, the threshold is 32 * 1.5 = 48 which is larger than 36 and
it fails to create the mempool.

Fixes: 7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: fix check for MPLS-in-GRE
Yongseok Koh [Fri, 3 Aug 2018 22:00:56 +0000 (15:00 -0700)]
net/mlx5: fix check for MPLS-in-GRE

Multiple tunnel isn't allowed but MPLS over GRE should be accepted.

Fixes: a4a5cd21d20a ("net/mlx5: add flow MPLS item")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: preserve allmulticast flag for flow isolation mode
Yongseok Koh [Thu, 2 Aug 2018 21:06:32 +0000 (14:06 -0700)]
net/mlx5: preserve allmulticast flag for flow isolation mode

mlx5_dev_ops_isolate doesn't have APIs for enabling/disabling allmulti
mode as it can't be enabled in flow isolation mode. If the function
pointers are null, librte APIs such as
rte_eth_allmulticast_enable/disable() fail to set the flag
(dev->data->all_multicast). The flag is used when starting traffic by
mlx5_traffic_enable(). When switching out of flow isolation mode, allmulti
mode will not be set even though it has been enabled.

Fixes: 0887aa7f27f3 ("net/mlx5: add new operations for isolated mode")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
6 years agonet/mlx5: preserve promiscuous flag for flow isolation mode
Yongseok Koh [Thu, 2 Aug 2018 21:06:31 +0000 (14:06 -0700)]
net/mlx5: preserve promiscuous flag for flow isolation mode

mlx5_dev_ops_isolate doesn't have APIs for enabling/disabling promiscuous
mode as it can't be enabled in flow isolation mode. If the function
pointers are null, librte APIs such as rte_eth_promiscuous_enable/disable()
fail to set the flag (dev->data->promiscuous). The flag is used when
starting traffic by mlx5_traffic_enable(). When switching out of flow
isolation mode, promiscuous mode will not be set even though it has been
enabled.

Fixes: 0887aa7f27f3 ("net/mlx5: add new operations for isolated mode")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
6 years agoapp/testpmd: fix commands for some offloads
Wei Dai [Fri, 3 Aug 2018 12:55:32 +0000 (20:55 +0800)]
app/testpmd: fix commands for some offloads

Without this patch, testpmd command to config Rx offload keep_crc
would fail and report "Bad argument".
This patch also fix the command to config the Tx offload mbuf_fast_free.

Fixes: 70815c9ecadd ("ethdev: add new offload flag to keep CRC")
Fixes: c73a9071877a ("app/testpmd: add commands to test new offload API")
Cc: stable@dpdk.org
Signed-off-by: Wei Dai <wei.dai@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
6 years agoapp/testpmd: update softnic mode documentation
Jasvinder Singh [Tue, 24 Jul 2018 15:50:25 +0000 (16:50 +0100)]
app/testpmd: update softnic mode documentation

Update tespmd documentation with softnic forwarding mode description.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
6 years agodoc: add softnic documentation
Jasvinder Singh [Tue, 24 Jul 2018 15:50:24 +0000 (16:50 +0100)]
doc: add softnic documentation

Add softnic documentation to NIC drivers guide.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agobus/vmbus: avoid signalling host on read
Stephen Hemminger [Tue, 24 Jul 2018 21:08:53 +0000 (14:08 -0700)]
bus/vmbus: avoid signalling host on read

Don't signal host that receive ring has been read until all events
have been processed. This reduces the number of guest exits and
therefore improves performance.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: add queue info
Stephen Hemminger [Tue, 24 Jul 2018 21:08:52 +0000 (14:08 -0700)]
net/netvsc: add queue info

This helps when diagnosing ring issues in testpmd.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: avoid over filling Rx descriptor ring
Stephen Hemminger [Tue, 24 Jul 2018 21:08:51 +0000 (14:08 -0700)]
net/netvsc: avoid over filling Rx descriptor ring

If the number of packets requested are already present in the
rx_ring then skip reading the ring buffer from the host.

If the ring between the poll and receive side is full, then don't
poll (let incoming packets stay on host).

If no more transmit descriptors are available, then still try and
flush any outstanding data.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: change Rx descriptor setup and sizing
Stephen Hemminger [Tue, 24 Jul 2018 21:08:50 +0000 (14:08 -0700)]
net/netvsc: change Rx descriptor setup and sizing

Increase the size of the ring used to hold mbuf's received
but not processed.  The default is now based off the size
of the receive mbuf pool not the number of sections from the host.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/netvsc: fix ring freeing
Stephen Hemminger [Wed, 1 Aug 2018 23:18:33 +0000 (16:18 -0700)]
net/netvsc: fix ring freeing

The internal receive ring should be freed with rte_ring_free
not rte_free.

Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
6 years agonet/bonding: fix slave add for mode 4
Radu Nicolau [Wed, 18 Jul 2018 13:21:17 +0000 (14:21 +0100)]
net/bonding: fix slave add for mode 4

Moved the link status validity check from the slave add to the slave
activation step. Otherwise slave add will fail for mode 4 if
the ports are all stopped but only one of them checked.

Removed activate slave call from slave add function.

Bugzilla ID: 52
Fixes: b77d21cc2364 ("ethdev: add link status get/set helper functions")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
6 years agonet/bonding: fix race condition
Radu Nicolau [Wed, 25 Jul 2018 09:39:40 +0000 (10:39 +0100)]
net/bonding: fix race condition

Race condition can appear in the bond_mode_8023ad_periodic_cb()
callback when bonding port is stopped, reconfigured and restarted.

Re-ordered calls in bond_ethdev_start() to have callback alarm set
after slave ports are reconfigured.

Fixes: 2efb58cbab6e ("bond: new link bonding library")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Chas Williams <chas3@att.com>
6 years agovhost: flush IOTLB cache on new mem table handling
Maxime Coquelin [Thu, 2 Aug 2018 17:21:22 +0000 (19:21 +0200)]
vhost: flush IOTLB cache on new mem table handling

IOTLB entries contain the host virtual address of the guest
pages. When receiving a new VHOST_USER_SET_MEM_TABLE request,
the previous regions get unmapped, so the IOTLB entries, if any,
will be invalid. It does cause the vhost-user process to
segfault.

This patch introduces a new function to flush the IOTLB cache,
and call it as soon as the backend handles a VHOST_USER_SET_MEM
request.

Fixes: 69c90e98f483 ("vhost: enable IOMMU support")
Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
6 years agonet/tap: call probe finish for tun secondary
Vipin Varghese [Tue, 24 Jul 2018 05:05:47 +0000 (10:35 +0530)]
net/tap: call probe finish for tun secondary

Invoke rte_eth_dev_probing_finish for rte_pmd_tun_probe.

Fixes: fbe90cdd776c ("ethdev: add probing finish function")
Cc: stable@dpdk.org
Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
6 years agonet/avf: fix offload capabilities
Xiaoyun Li [Wed, 25 Jul 2018 07:14:30 +0000 (15:14 +0800)]
net/avf: fix offload capabilities

There are several tx/rx offload capabilities missing in AVF.
Add them in this patch since AVF supports them.

Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
6 years agonet/i40e: revert fix of flow director check
Wei Zhao [Wed, 1 Aug 2018 02:54:50 +0000 (10:54 +0800)]
net/i40e: revert fix of flow director check

This reverts commit 7546dc4a1331340ecb665af9af0a005bb8b657c8.

In i40e FDIR PMD code for checking programming status,
when the action of add FDIR filter is ok, i40e NIC will
not write back to programming status descriptor, so if
PMD code check DD is not done after period of time dealy,
it means the add or remove filter action is ok. It only write
back descriptor when fail. So, there is no issue for the original
code.

Fixes: 7546dc4a1331 ("net/i40e: fix check of flow director programming status")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agonet/i40e: fix rearm check in AVX2 Rx
Harry van Haaren [Mon, 30 Jul 2018 17:34:19 +0000 (18:34 +0100)]
net/i40e: fix rearm check in AVX2 Rx

This commit fixes an infinite loop bug that could occur
if the i40e AVX2 driver is used, and high traffic rates
cause the mempool from which the rxq pulls mbufs to become
empty.

The result would be an infinite loop of checking if we
should perform an rx rearm, calling the function and an
error return due the the mempool being emtpy.

The fix is to align the code in the AVX2 driver with the
SSE driver, where an if() is used instead of a while(),
allowing the thread to return from i40e rx function even
if the mempool is empty.

Fixes: dafadd73762e ("net/i40e: add AVX2 Rx function")
Cc: stable@dpdk.org
Reported-by: David Coyle <david.coyle@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Brendan Ryan <brendan.ryan@intel.com>
Tested-by: David Coyle <david.coyle@intel.com>
6 years agodoc: add recommended versions for i40e
Xiaoyun Li [Wed, 25 Jul 2018 03:27:35 +0000 (11:27 +0800)]
doc: add recommended versions for i40e

Add suggested DPDK/kernel driver/firmware version matching list for i40e.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
6 years agonet/i40e: fix maximum frame size check
Yanglong Wu [Fri, 27 Jul 2018 04:40:00 +0000 (12:40 +0800)]
net/i40e: fix maximum frame size check

Check packet size according to TSO or no-TSO.

Fixes: bfeed0262b0c ("net/i40e: check illegal packets")

Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agonet/i40e: fix device parameter parsing
Beilei Xing [Thu, 26 Jul 2018 02:19:15 +0000 (10:19 +0800)]
net/i40e: fix device parameter parsing

There's parsing error when using device argument
support-multi-driver or queue-num-per-vf or both.
Error log is "PMD: Error parsing device, invalid
key <support-multi-driver>" and "PMD: Error parsing
device, invalid key <queue-num-per-vf>". The root
cause is that device argument will be parsed in
different parsing functions with local valid key .
This patch fixes the issue by combine all supported
arguments's valid keys.

Fixes: cfdfca493cae ("net/i40e: fix multiple driver support")
Fixes: ee653bd80044 ("net/i40e: determine number of queues per VF at run time")
Cc: stable@dpdk.org
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>