dpdk.git
7 years agoconfig: fix comment
Herakliusz Lipiec [Mon, 29 May 2017 14:56:50 +0000 (15:56 +0100)]
config: fix comment

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")

Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoapp/testpmd: remove duplicated license
Ferruh Yigit [Tue, 9 May 2017 10:35:05 +0000 (11:35 +0100)]
app/testpmd: remove duplicated license

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoeal: remove duplicated license
Ferruh Yigit [Tue, 9 May 2017 10:35:04 +0000 (11:35 +0100)]
eal: remove duplicated license

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: change line length limit in contributors guide
John McNamara [Thu, 11 May 2017 14:09:40 +0000 (15:09 +0100)]
doc: change line length limit in contributors guide

The DPDK documentation guidelines state that lines should be wrapped as
follows:

* The recommended style for the DPDK documentation is to put sentences on
  separate lines. This allows for easier reviewing of patches. ...
* Long sentences should be wrapped at 120 characters +/- 10 characters.
  They should be wrapped at words.

  http://dpdk.org/doc/guides/contributing/documentation.html#line-length

However, in practice, users almost never submit doc patches in this format.
Instead most users wrap their doc patches at 80 characters.

This patch updates the documentation contributors guide to reflect this
as the recommended guideline.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agomaintainers: update email address
Yuanhan Liu [Fri, 2 Jun 2017 13:34:36 +0000 (21:34 +0800)]
maintainers: update email address

Signed-off-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agoversion: 17.08-rc0
Thomas Monjalon [Mon, 15 May 2017 10:19:45 +0000 (12:19 +0200)]
version: 17.08-rc0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agodoc: add template release notes for 17.08
John McNamara [Thu, 11 May 2017 12:57:45 +0000 (13:57 +0100)]
doc: add template release notes for 17.08

Add template release notes for DPDK 17.08 with inline
comments and explanations of the various sections.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
7 years agoversion: 17.05.0
Thomas Monjalon [Thu, 11 May 2017 01:11:34 +0000 (03:11 +0200)]
version: 17.05.0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agodoc: announce API change for table library
Cristian Dumitrescu [Tue, 2 May 2017 18:22:53 +0000 (19:22 +0100)]
doc: announce API change for table library

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: announce crypto structures rework
Pablo de Lara [Fri, 28 Apr 2017 18:06:44 +0000 (19:06 +0100)]
doc: announce crypto structures rework

The current crypto operation and symmetric crypto operation
structures will be reworked for correctness and improvement,
reducing also their sizes, to fit into less cache lines,
as stated in the following RFC:

http://dpdk.org/dev/patchwork/patch/24011/

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agodoc: announce API changes for crypto sessions
Tomasz Kulasek [Thu, 4 May 2017 15:37:23 +0000 (17:37 +0200)]
doc: announce API changes for crypto sessions

API changes are planned for 17.08 to made sessions agnostic to the
underlaying devices, removing coupling with crypto PMDs, so a single
session can be used on multiple devices.

It requires to change "struct rte_cryptodev_sym_session" to store more
than one private data for devices, as well as remove redundant dev_id
and dev_type.

Effected public functions:

 - rte_cryptodev_sym_session_pool_create
 - rte_cryptodev_sym_session_create
 - rte_cryptodev_sym_session_free

While session will not be directly associated with device, followed API
will be changed adding uint8_t dev_id to the argument list:

 - rte_cryptodev_queue_pair_attach_sym_session
 - rte_cryptodev_queue_pair_detach_sym_session

Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agodoc: announce crypto device type enumeration removal
Slawomir Mrozowicz [Fri, 5 May 2017 11:24:19 +0000 (13:24 +0200)]
doc: announce crypto device type enumeration removal

Refer to RFC patch - cryptodev: remove crypto device type enumeration

It is planned to remove device type enumeration rte_cryptodev_type from
library to remove the coupling between crypto PMD and the librte_cryptodev.

In this case following stuctures will be changed: rte_cryptodev_session,
rte_cryptodev_sym_session, rte_cryptodev_info, rte_cryptodev.

It is planned to change the function rte_cryptodev_count_devtype().
The function prototype doesn’t clearly show the operation.
>From next release 17.08 the dev_type will be changed to driver_id.
So the function name will change to rte_cryptodev_device_count_by_driver().

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
7 years agodoc: announce public crypto PMD names removal
Slawomir Mrozowicz [Thu, 4 May 2017 09:39:19 +0000 (11:39 +0200)]
doc: announce public crypto PMD names removal

The following PMD names definitions will be moved to the individual PMDs
to remove the coupling between crypto PMDs and the librte_cryptodev:
CRYPTODEV_NAME_NULL_PMD
CRYPTODEV_NAME_AESNI_MB_PMD
CRYPTODEV_NAME_AESNI_GCM_PMD
CRYPTODEV_NAME_OPENSSL_PMD
CRYPTODEV_NAME_QAT_SYM_PMD
CRYPTODEV_NAME_SNOW3G_PMD
CRYPTODEV_NAME_KASUMI_PMD
CRYPTODEV_NAME_ZUC_PMD
CRYPTODEV_NAME_ARMV8_PMD
CRYPTODEV_NAME_SCHEDULER_PMD
CRYPTODEV_NAME_DPAA2_SEC_PMD

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agodoc: postpone unaccomplished deprecation notices
Thomas Monjalon [Wed, 10 May 2017 23:56:58 +0000 (01:56 +0200)]
doc: postpone unaccomplished deprecation notices

Some work remains for VDEV bus move.
Not sure if there will be some API or ABI changes.
The notice is kept and postponed until the end of this rework.

The PCI fields must be removed from cryptodev and the newly
introduced eventdev, in order to complete the bus rework.

The VLAN flags rework should be completed in 17.08.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agodoc: remove outdated deprecation notices
Thomas Monjalon [Wed, 10 May 2017 23:39:31 +0000 (01:39 +0200)]
doc: remove outdated deprecation notices

Some VFIO functions have been exported without any rename,
thus no breakage.

The struct eth_driver has been removed, but rte_pci_driver
is still used in rte_cryptodev_driver.

Fixes: a016873eb3c2 ("vfio: export utility functions in map file")
Fixes: 9dca21fb80b6 ("ethdev: remove ethdev driver")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agodoc: postpone deprecation of bypass in ethdev
Bernard Iremonger [Tue, 18 Apr 2017 15:48:56 +0000 (16:48 +0100)]
doc: postpone deprecation of bypass in ethdev

The deprecation of the bypass functions in the ethdev has not been
done in 17.05. Let's postpone to 17.08.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agodoc: postpone ABI change for callbacks in ethdev
Bernard Iremonger [Tue, 18 Apr 2017 15:48:30 +0000 (16:48 +0100)]
doc: postpone ABI change for callbacks in ethdev

The change of _rte_eth_dev_callback_process has not been done in 17.05.
Let's postpone to 17.08.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agodoc: announce ABI change for Tx offload
Shahaf Shuler [Mon, 1 May 2017 06:58:12 +0000 (09:58 +0300)]
doc: announce ABI change for Tx offload

This is an ABI change notice for DPDK 17.08 in ethdev
about changes in rte_eth_txmode structure.

Currently Tx offloads are enabled by default, and can be disabled
using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
the Rx side where the Rx offloads are disabled by default and enabled
according to bit field in rte_eth_rxmode structure.

The proposal is to disable the Tx offloads by default, and provide
a way for the application to enable them in rte_eth_txmode structure.
Besides of making the Tx configuration API more consistent for
applications, PMDs will be able to provide a better out of the
box performance.
Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
be superseded as well.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agodoc: announce ABI change for device parameters
Gaetan Rivet [Wed, 10 May 2017 15:46:10 +0000 (17:46 +0200)]
doc: announce ABI change for device parameters

The PCI and virtual bus are planned to be moved to the generic
drivers/bus directory in v17.08. For this change to be possible, the EAL
must be made completely independent.

The rte_devargs structure currently holds device representation internal
to those two busses. It must be made generic before this work can be
completed.

Instead of using either a driver name for a vdev or a PCI address for a
PCI device, a devargs structure will have to be able to describe any
possible device on all busses, without introducing dependencies on
any bus-specific device representation. This will break the ABI for this
structure.

Additionally, an evolution will occur regarding the device parsing
from the command-line. A user must be able to set which bus will handle
which device, and this setting is integral to the definition of a
device.

The format has not yet been formally defined, but a proposition will
follow soon for a new command line parameter format for all devices.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: David Marchand <david.marchand@6wind.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
7 years agomaintainers: add drivers features files
Ferruh Yigit [Wed, 10 May 2017 13:33:50 +0000 (14:33 +0100)]
maintainers: add drivers features files

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agodoc: add tested platforms with Mellanox NICs
Shahaf Shuler [Wed, 10 May 2017 13:56:56 +0000 (16:56 +0300)]
doc: add tested platforms with Mellanox NICs

Update release notes with Mellanox tested platforms.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add tested Intel platforms with Intel NICs
Yulong Pei [Thu, 4 May 2017 04:42:53 +0000 (12:42 +0800)]
doc: add tested Intel platforms with Intel NICs

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

Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: update release notes for 17.05
John McNamara [Wed, 10 May 2017 19:01:14 +0000 (20:01 +0100)]
doc: update release notes for 17.05

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

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agodoc: update bonding device name in prog guide
Herakliusz Lipiec [Wed, 10 May 2017 13:38:52 +0000 (14:38 +0100)]
doc: update bonding device name in prog guide

Fixes: 35b09d76f89e ("doc: use corelist instead of coremask")
Fixes: 58c82067f1ae ("app/testpmd: use consistent vdev names")

Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add details about MDD with ixgbe kernel PF
Wenzhuo Lu [Wed, 10 May 2017 01:39:41 +0000 (09:39 +0800)]
doc: add details about MDD with ixgbe kernel PF

Add a better explanation about how to disable MDD (Malicious Driver
Detection) in a kernel PF.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agonet/mlx5: fix rollback when starting device
Yongseok Koh [Wed, 10 May 2017 17:30:16 +0000 (10:30 -0700)]
net/mlx5: fix rollback when starting device

In mlx5_dev_start(), the spinlock isn't released when returning error.

Fixes: c8d4ee50cc85 ("net/mlx5: fix startup when flow cannot be applied")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agoexamples/vhost: fix socket path parsing
Gang Jiang [Sun, 16 Apr 2017 11:39:40 +0000 (19:39 +0800)]
examples/vhost: fix socket path parsing

The return value of strnlen(s, maxlen) is never bigger than maxlen.

Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application")

Signed-off-by: Gang Jiang <jiangg@mail.ustc.edu.cn>
7 years agoapp/procinfo: fix xstats by ID on 32-bit
Michal Jastrzebski [Tue, 9 May 2017 05:23:29 +0000 (07:23 +0200)]
app/procinfo: fix xstats by ID on 32-bit

Coverity reported that an argument for sizeof was used improperly.
We should allocate memory for value size that pointer points to,
instead of pointer size itself.

Coverity issue: 144523, 144521
Fixes: 7ac16a3660c0 ("app/proc-info: support xstats by ID and by name")

Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoapp/testpmd: print all or no events
Gaetan Rivet [Sat, 6 May 2017 22:35:46 +0000 (00:35 +0200)]
app/testpmd: print all or no events

Adds the "all" option to the print-event and mask-event parameters. This
option will enable or disable all event notifications from being
displayed.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoapp/testpmd: fix mempool creation by socket id
Shahaf Shuler [Tue, 9 May 2017 07:28:37 +0000 (10:28 +0300)]
app/testpmd: fix mempool creation by socket id

The test assumes the socket ids are contiguous. This
is not necessarily the case on all servers and may cause
mempool creation to fail.

Fixing it by detecting the list of valid socket ids and
use it for the mempool creation.

Fixes: 7acf894d07d1 ("app/testpmd: detect numa socket count")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agombuf: fix bulk allocation when debug enabled
Gregory Etelson [Wed, 10 May 2017 15:13:10 +0000 (17:13 +0200)]
mbuf: fix bulk allocation when debug enabled

The debug assertions when allocating a raw mbuf are not correct since
commit 8f094a9ac5d7 ("mbuf: set mbuf fields while in pool"),
which triggers a panic when using this function in debug mode

Change the expected number of segments to 1 instead of 0, and
factorize these sanity checks.

Fixes: 8f094a9ac5d7 ("mbuf: set mbuf fields while in pool")

Signed-off-by: Gregory Etelson <gregory@weka.io>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agonet/qede: fix RSS table entries for 100G adapter
Rasesh Mody [Sun, 7 May 2017 22:53:12 +0000 (15:53 -0700)]
net/qede: fix RSS table entries for 100G adapter

With the change in base APIs the logic for 100G handling needs to be
adjusted to pass cid values instead for queue ids. The current API
works assuming its queue id.

Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
7 years agonet/mlx5: change error-prone code on Tx path
Yongseok Koh [Tue, 9 May 2017 20:49:31 +0000 (13:49 -0700)]
net/mlx5: change error-prone code on Tx path

In the main loop of mlx5_tx_burst(), pointers/indexes are advanced at the
beginning. Therefore, those should be rolled back if checking resource
availability fails and breaks the loop. And some of them are even
redundant.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/mlx5: fix index handling for Tx ring
Yongseok Koh [Tue, 9 May 2017 20:49:30 +0000 (13:49 -0700)]
net/mlx5: fix index handling for Tx ring

In case of resource deficiency on Tx, mlx5_tx_burst() breaks the loop
without rolling back consumed resources (txq->wqes[] and txq->elts[]). This
can make application crash because unposted mbufs can be freed while
processing completions. Other Tx functions don't have this issue.

Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO")
Fixes: f04f1d51564b ("net/mlx5: fix Tx WQE corruption caused by starvation")
Cc: stable@dpdk.org
Reported-by: Hanoch Haim <hhaim@cisco.com>
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/ixgbe: fix LSC interrupt
Qi Zhang [Mon, 8 May 2017 03:57:33 +0000 (23:57 -0400)]
net/ixgbe: fix LSC interrupt

There is a bug in previous fix for lsc interrupt.
lsc interrupt is not disabled before delayed handler,
that cause the delayed handler be re-entered.

Fixes: 9b667210700e ("net/ixgbe: fix blocked interrupts")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: fix calling null function of VF
Wei Dai [Wed, 10 May 2017 07:00:02 +0000 (15:00 +0800)]
net/ixgbe: fix calling null function of VF

hw->mac.ops.get_media-type() of ixgbe VF is NULL and should not
be called directly. It had better be replaced by calling
ixgbe_get_media_type( ) to avoid crash.

Fixes: c12d22f65b13 ("net/ixgbe: ensure link status is updated")

Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Laurent Hardy <laurent.hardy@6wind.com>
7 years agoethdev: fix xstats by ID on 32-bit
Michal Jastrzebski [Tue, 9 May 2017 05:22:13 +0000 (07:22 +0200)]
ethdev: fix xstats by ID on 32-bit

Coverity reported that an argument for sizeof was used improperly.
We should allocate memory for value size that pointer points to,
instead of pointer size itself.

Coverity issue: 144522
Fixes: 79c913a42f0e ("ethdev: retrieve xstats by ID")

Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agohash: add switch fall-through comments for arm64
Jerin Jacob [Tue, 9 May 2017 09:45:41 +0000 (15:15 +0530)]
hash: add switch fall-through comments for arm64

This fixes compiler warnings with GCC 7 for arm64 build.
Fixes: da8dcc27f644 ("hash: use armv8-a CRC32 instructions")

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoeal/bsd: fix read on PCI configuration space
Tiwei Bie [Sun, 7 May 2017 13:33:34 +0000 (13:33 +0000)]
eal/bsd: fix read on PCI configuration space

Some drivers (such as virtio) may need to read more than 4 bytes
data from PCI configuration space via rte_eal_pci_read_config().
But it will return with an error on FreeBSD when the expected
data length is bigger than the size of pi.pi_data whose type is
u_int32_t. This patch removes this limitation.

Fixes: 632b2d1deeed ("eal: provide functions to access PCI config")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal/bsd: fix ioport write operation
Tiwei Bie [Sun, 7 May 2017 13:33:33 +0000 (13:33 +0000)]
eal/bsd: fix ioport write operation

The first param of out*() on FreeBSD is port, and the second one
is data. But they are reversed in DPDK. This patch fixes it.

Fixes: 756ce64b1ecd ("eal: introduce PCI ioport API")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoxen: fix physical address availability in dom0
Jianfeng Tan [Fri, 5 May 2017 16:10:13 +0000 (16:10 +0000)]
xen: fix physical address availability in dom0

When physical NICs are binded to igb_uio/uio-pci-generic, they cannot
be used in DPDK app in Xen dom0.

Due to (1) a restriction that phys addresses should be availabe is added
by commit cdc242f260e7 ("eal/linux: support running as unprivileged user"),
(2) and previous implementation of the test to check if phys addresses are
available (using a variable on the stack) just works for non-Xen
environment. Actually, for Xen dom0, the physical addresses are always
available if the memory is initialized successfully..

To fix it, we add an precheck to bypass the physical address availability
test.

Fixes: cdc242f260e7 ("eal/linux: support running as unprivileged user")

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
7 years agovfio: fix index for tracking devices in a group
Alejandro Lucero [Wed, 10 May 2017 08:54:23 +0000 (09:54 +0100)]
vfio: fix index for tracking devices in a group

Previous fix for properly handling devices from the same VFIO group
introduced another bug where the file descriptor of a kernel vfio
group is used as the index for tracking number of devices of a vfio
group struct handled by dpdk vfio code. Instead of the file
descriptor itself, the vfio group object that file descriptor is
registered with has to be used.

This patch introduces specific functions for incrementing or
decrementing the device counter for a specific vfio group using the
vfio file descriptor as a parameter. Note the code is not optimized
as the vfio group is found sequentially going through the vfio group
array but this should not be a problem as this is not related to
packet handling at all.

Fixes: a9c349e3a100 ("vfio: fix device unplug when several devices per group")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agoversion: 17.05-rc4
Thomas Monjalon [Sun, 7 May 2017 20:38:41 +0000 (22:38 +0200)]
version: 17.05-rc4

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agodoc: add known issue about l3fwd-power
Qiming Yang [Fri, 5 May 2017 05:16:30 +0000 (13:16 +0800)]
doc: add known issue about l3fwd-power

Because of UIO only support one interrupt, when insmod
``igb_uio`` and running l3fwd-power APP, link status
getting doesn't work properly.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: factorize overview table CSS
Thomas Monjalon [Thu, 4 May 2017 21:56:29 +0000 (23:56 +0200)]
doc: factorize overview table CSS

There were several tables in NIC and crypto guides with the same
copy-pasted CSS addition.
It is moved into one unique place: conf.py.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: fix list numbering in prog guide
Shreyansh Jain [Tue, 2 May 2017 11:44:58 +0000 (17:14 +0530)]
doc: fix list numbering in prog guide

Because of extra space before each list item, indexing numbers
generated by Sphinx were same.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: fix usertools path in guides
Yong Wang [Tue, 2 May 2017 11:54:20 +0000 (07:54 -0400)]
doc: fix usertools path in guides

Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts")
Fixes: 58a2551a160f ("doc: introduce PVP reference benchmark")
Cc: stable@dpdk.org
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
7 years agodoc: explain zlib dependency for bnx2x
Rasesh Mody [Tue, 2 May 2017 23:57:49 +0000 (16:57 -0700)]
doc: explain zlib dependency for bnx2x

Correct CONFIG_RTE_LIBRTE_BNX2X_PMD config file option and add a note
about external zlib dependency for loading the firmware image.

Fixes: ce9b8bb8b998 ("config: disable bnx2x driver")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
7 years agodoc: update mlx supported OFED and FW
Shahaf Shuler [Wed, 3 May 2017 07:28:48 +0000 (10:28 +0300)]
doc: update mlx supported OFED and FW

Update the supported Mellanox OFED and FW versions.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agodoc: add kernel module restriction for VF
Qiming Yang [Wed, 3 May 2017 06:21:28 +0000 (14:21 +0800)]
doc: add kernel module restriction for VF

This patch adds two note in doc build_dpdk, suggests DPDK user
don't use ``vfio-pci`` and ``uio_pci_generic`` module to create
virtual functions(VFs).

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
7 years agousertools: add Cavium pkx as network device
Jerin Jacob [Thu, 4 May 2017 10:48:50 +0000 (16:18 +0530)]
usertools: add Cavium pkx as network device

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agousertools: fix binding device match
Guduri Prathyusha [Thu, 4 May 2017 10:48:49 +0000 (16:18 +0530)]
usertools: fix binding device match

If multiple devices of same class are added to a device type,
only devices that match first device listed in device type list are
processed.

Fixing it in device_type_match() by returning false after iterating
through all the devices listed in a device type list.

Fixes: 8ad08a287918 ("usertools: define DPDK PCI functional device")

Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com>
7 years agoapp/testpmd: configure event display
Gaetan Rivet [Tue, 2 May 2017 09:54:06 +0000 (11:54 +0200)]
app/testpmd: configure event display

Add two parameters to testpmd:

  --print-event <event name>
  --mask-event <event name>

To enable or disable to printing of events. This display is configured
on a per-event basis. By default, all except VF_MBOX are displayed.

Fixes: 76ad4a2d82d4 ("app/testpmd: add generic event handler")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoapp/testpmd: fix NUMA structures initialization
Yulong Pei [Wed, 3 May 2017 10:29:47 +0000 (18:29 +0800)]
app/testpmd: fix NUMA structures initialization

Previous numa_support = 0 by default, it need to add --numa to testpmd
command line to enable numa, so port_numa and ring_numa were initialized
at function launch_args_parse(), now testpmd change numa_support = 1 as
default, so port_numa and ring_numa also need to initialize by default,
otherwise port->socket_id will be probed to wrong value.

Fixes: 999b2ee0fe45 ("app/testpmd: enable NUMA support by default")

Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoapp/testpmd: fix MAC endian in flow command
Adrien Mazarguil [Thu, 4 May 2017 17:08:23 +0000 (19:08 +0200)]
app/testpmd: fix MAC endian in flow command

MAC addresses are implicitly handled in network order since they are
actually byte strings, however this is not properly enforced with MAC masks
provided as prefix lengths, which end up inverted on little endian
systems.

Fixes: 6df81b325fa4 ("app/testpmd: add items eth/vlan to flow command")
Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agoapp/testpmd: fix stack overwriting by flow command
Adrien Mazarguil [Thu, 4 May 2017 17:08:22 +0000 (19:08 +0200)]
app/testpmd: fix stack overwriting by flow command

The parameter type parser function stores a stack-local address in the
global parser context when parsing a "prefix" keyword.

This usually translates to "Bad arguments" errors even for correct flow
rules as stack gets overwritten by subsequent function calls.

Fixes: d3f61b7bad20 ("app/testpmd: add flow item spec prefix length")
Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agoapp/testpmd: disable latency stats by default
Pablo de Lara [Thu, 4 May 2017 16:28:48 +0000 (17:28 +0100)]
app/testpmd: disable latency stats by default

Disable latency stats gathering by default,
so there is not performance degradation if user
is not interested in them.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoapp/testpmd: fix build without bitrate lib
Pablo de Lara [Wed, 3 May 2017 07:02:09 +0000 (08:02 +0100)]
app/testpmd: fix build without bitrate lib

Fixes: e25e6c70fb56 ("app/testpmd: add --bitrate-stats option")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Remy Horton <remy.horton@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agotest/eventdev: fix build with gcc 7
Bruce Richardson [Thu, 4 May 2017 15:38:22 +0000 (16:38 +0100)]
test/eventdev: fix build with gcc 7

GCC flags an uninitialized value, so provide an initializer.

Fixes: 3a17ff401f1e ("test/eventdev: add basic SW tests")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agotest/cmdline: fix missing break in switch
Bruce Richardson [Thu, 4 May 2017 15:38:21 +0000 (16:38 +0100)]
test/cmdline: fix missing break in switch

Issue flagged by GCC 7 as a switch fall-through.

Fixes: dbb860e03eb1 ("cmdline: tests")
CC: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet: fix missing break in CRC switch
Bruce Richardson [Thu, 4 May 2017 15:38:19 +0000 (16:38 +0100)]
net: fix missing break in CRC switch

The #ifdef only had the break in the else leg rather than in the first leg,
leading to the value set their being overridden on fall-through.

Fixes: 986ff526fb84 ("net: add CRC computation API")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoapp/testpmd: add switch fall-through comments
Bruce Richardson [Thu, 4 May 2017 15:38:20 +0000 (16:38 +0100)]
app/testpmd: add switch fall-through comments

This fixes compiler warnings with GCC 7.

Fixes: 28d62131a1b1 ("app/testpmd: extend flow director input set commands")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agolib: add switch fall-through comments
Bruce Richardson [Thu, 4 May 2017 15:38:18 +0000 (16:38 +0100)]
lib: add switch fall-through comments

With GCC 7 we need to explicitly document when we are falling through from
one switch case to another.

Fixes: af75078fece3 ("first public release")
Fixes: 8bae1da2afe0 ("hash: fallback to software CRC32 implementation")
Fixes: 9ec201f5d6e7 ("mbuf: provide bulk allocation")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet/ixgbe: add switch fall-through comments
Bruce Richardson [Thu, 4 May 2017 15:38:16 +0000 (16:38 +0100)]
net/ixgbe: add switch fall-through comments

Add a comment documenting explicitly that we are falling through the case
statements to the next one.

Fixes: f9072f8b90bb ("ixgbe: migrate flow director filtering to new API")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/bnx2x: add switch fall-through comments
Bruce Richardson [Thu, 4 May 2017 15:38:15 +0000 (16:38 +0100)]
net/bnx2x: add switch fall-through comments

Add in a comment for each switch fall-through indicating that it is
intentional. This will fix compiler warnings with GCC 7.

Fixes: b5bf7719221d ("bnx2x: driver support routines")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet/vmxnet3: fix build with gcc 7
Bruce Richardson [Thu, 4 May 2017 15:38:17 +0000 (16:38 +0100)]
net/vmxnet3: fix build with gcc 7

GCC 7 flags a value as uninitialized before used. While it's a false
positive, there is little harm in providing an initial value for the
variable.

Fixes: bb1d14b87fc3 ("vmxnet3: fix link state handling")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agodrivers/net: disable new gcc 7 warnings for base code
Bruce Richardson [Thu, 4 May 2017 15:38:14 +0000 (16:38 +0100)]
drivers/net: disable new gcc 7 warnings for base code

For base code in drivers shared with other projects, disable the new
warnings from gcc 7 about unlabelled fall-through in switch statements.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agomk: adjust gcc flags for new gcc 7 warnings
Bruce Richardson [Thu, 4 May 2017 15:38:13 +0000 (16:38 +0100)]
mk: adjust gcc flags for new gcc 7 warnings

There are two new warnings in GCC 7 that cause problems in the DPDK
compile.

1. GCC now warns if you have a switch fall-through without a suitable
comment indicating that it was intentional. The compiler supports a number
of levels of warning which are triggered depending on the type of message
used, with level 3 being the default. To accept a wider range of possible
fall-through messages, we adjust this down to level 2.

2. GCC also warns about an snprintf where there may be truncation and the
return value is not checked. Given that we often use snprintf in DPDK in
place of strncpy, and in many cases where truncation is not a problem, we
can just disable this particular warning.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet/af_packet: prefer snprintf against strncpy
Ferruh Yigit [Thu, 4 May 2017 11:16:59 +0000 (12:16 +0100)]
net/af_packet: prefer snprintf against strncpy

strncpy may left destination buffer not NULL terminated, switched using
snprintf to be sure destination buffer is NULL terminated.

Coverity issue: 1407495
Coverity issue: 1407498
Fixes: cc68ac4847bc ("net/af_packet: support MTU change")
Fixes: 218259590ea4 ("net/af_packet: support promiscuous")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/mlx5: fix crash on deleting flow drop queue
Yongseok Koh [Mon, 1 May 2017 21:05:42 +0000 (14:05 -0700)]
net/mlx5: fix crash on deleting flow drop queue

If mlx5_dev_start() fails, it tries to rollback data structures related to
rte_flow including drop queue. The destruction code doesn't assume the
structures are created but priv_flow_delete_drop_queue() never does sanity
check. This can cause a crash.

Fixes: 028761059aeb ("net/mlx5: use an RSS drop queue")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agonet/mlx5: fix Tx max inline with TSO
Shahaf Shuler [Wed, 3 May 2017 06:55:35 +0000 (09:55 +0300)]
net/mlx5: fix Tx max inline with TSO

When TSO is enabled, Verbs layer aggregates the TSO
inline size with the txq inline size for the Tx creation,
while the PMD takes the maximum among them.

Fixing it by adjusting the max inline parameter before
passing to to Verbs.

Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agonet/fm10k: fix memory overflow in 32-bit SSE Rx
Qi Zhang [Sun, 30 Apr 2017 05:26:51 +0000 (01:26 -0400)]
net/fm10k: fix memory overflow in 32-bit SSE Rx

Return mbuf points of _recv_raw_pkts_vec are modified out of bound.

Fixes: a6ce64a97520 ("fm10k: introduce vector driver")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agonet/i40e: fix memory overflow in 32-bit SSE Rx
Qi Zhang [Sun, 30 Apr 2017 05:26:49 +0000 (01:26 -0400)]
net/i40e: fix memory overflow in 32-bit SSE Rx

Return mbuf points of _recv_raw_pkts_vec are modified out of bound.

Fixes: 8e109464c022 ("i40e: allow vector Rx and Tx usage")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agonet/ixgbe: fix memory overflow in 32-bit SSE Rx
Qi Zhang [Sun, 30 Apr 2017 05:26:50 +0000 (01:26 -0400)]
net/ixgbe: fix memory overflow in 32-bit SSE Rx

Return mbuf points of _recv_raw_pkts_vec are modified out of bound.

Fixes: c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agonet/i40e: consider QinQ when setting MTU
Wenzhuo Lu [Tue, 2 May 2017 01:51:58 +0000 (09:51 +0800)]
net/i40e: consider QinQ when setting MTU

When counting max packet length from MTU, count
VLAN tag length twice for QinQ packets.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/i40e: add LLDP check for ethertype filter
Beilei Xing [Thu, 27 Apr 2017 11:02:18 +0000 (19:02 +0800)]
net/i40e: add LLDP check for ethertype filter

LLDP rule is not supported in ethertype filter.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/ixgbe: fix setting MTU on stopped device
Jia Yu [Fri, 28 Apr 2017 06:11:31 +0000 (23:11 -0700)]
net/ixgbe: fix setting MTU on stopped device

There exists case that software sets mtu (i.e jumbo frame) of
ixgbe device when it's stopped. Before the fix, scattered_rx
is cleared during device stop, and setting jumbo frame mtu
after device stop will always fail as scattered_rx is 0.

Signed-off-by: Jia Yu <jyu@vmware.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: fix VF Rx mode for allmulticast disabled
Wei Dai [Thu, 4 May 2017 09:54:40 +0000 (17:54 +0800)]
net/ixgbe: fix VF Rx mode for allmulticast disabled

Some customers find that 82599 NIC DPDK VF PMD can't receive any
broadcast packets when it is bound to igb_uio in the first time
to run a DPDK application like testpmd. But when the application
is quited and run again, the DPDK VF PMD can receive broadcast
packets again. The associated PF is run by kernel driver when
the VF is driven by DPDK PMD.

Fixes: 260e2e22e26f ("net/ixgbe/base: move multicast mode update")
Fixes: 72dec9e37a84 ("ixgbe: support multicast promiscuous mode on VF")
Cc: stable@dpdk.org
Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: fix default MAC setting
Wenzhuo Lu [Tue, 2 May 2017 08:34:59 +0000 (16:34 +0800)]
net/ixgbe: fix default MAC setting

Pool 0 is not PF, it's VF 0. So the MAC is set for VF 0
but not PF.
The code introduced a weird issue. In the scenario PF + VF,
when only starting PF, the default PF MAC address is working.
But after starting a VF, the default PF MAC address becomes
the VF's address.

Use the pool which is not occupied by VFs for PF to fix it.

Fixes: 8164fe82846b ("ixgbe: add default mac address modifier")
Cc: stable@dpdk.org
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/igb: fix VF MAC address setting
Qiming Yang [Wed, 3 May 2017 05:52:47 +0000 (13:52 +0800)]
net/igb: fix VF MAC address setting

We find that VF receive address register is not set
if MAC address is assigned by PF. This patch fixes it.

Fixes: d82170d27918 ("igb: add VF support")
Cc: stable@dpdk.org
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/igb: fix VF MAC address setting
Qiming Yang [Wed, 3 May 2017 05:51:32 +0000 (13:51 +0800)]
net/igb: fix VF MAC address setting

VF default MAC address be added in PF Mac address list
instead of VF MAC address list, makes VF can't receive
packets. This patch fixes this issue.

Fixes: be2d648a2dd3 ("igb: add PF support")
Cc: stable@dpdk.org
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agoethdev: fix adding invalid MAC address
Wei Dai [Fri, 5 May 2017 00:40:00 +0000 (08:40 +0800)]
ethdev: fix adding invalid MAC address

Some customers find adding MAC addr to VF sometimes can fail,
but it is still stored in dev->data->mac_addrs[ ]. So this
can lead to some errors that assumes the non-zero entry in
dev->data->mac_addrs[ ] is valid.
Following acknowledgements are from specific NIC PMD
maintainer for their managing part.

This patch changes the ethdev internal API, it should not be
backported to a stable/LTS release so far.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet: fix stripped VLAN flag for offload emulation
Michał Mirosław [Thu, 4 May 2017 22:36:13 +0000 (00:36 +0200)]
net: fix stripped VLAN flag for offload emulation

Apply the new flag PKT_RX_VLAN_STRIPPED to the software emulation case
(currently only for virtio and af_packet).

Fixes: b37b528d957c ("mbuf: add new Rx flags for stripped VLAN")
Cc: stable@dpdk.org
Signed-off-by: Michał Mirosław <michal.miroslaw@atendesoftware.pl>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agokni: fix crash caused by freeing mempool
Ferruh Yigit [Wed, 3 May 2017 16:10:37 +0000 (17:10 +0100)]
kni: fix crash caused by freeing mempool

To clean alloc_q, which has physical addresses of the mbufs, kni lib
free the pkt_mempool, but this leads a crash in kni unit test.

KNI library shouldn't free the pkt_mempool.

Implementation updated to find the mbufs in the alloc_q and return them
back to mempool.

Fixes: 8eba5ebd1811 ("kni: fix possible memory leak")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agokni: fix ethtool build with kernel 4.11
Ferruh Yigit [Wed, 3 May 2017 16:00:16 +0000 (17:00 +0100)]
kni: fix ethtool build with kernel 4.11

build error:
.../lib/librte_eal/linuxapp/kni/igb_main.c:1034:10:
error: implicit declaration of function ‘pci_enable_msix’
    err = pci_enable_msix(pdev,
              ^~~~~~~~~~~~~~~

This build error observed when CONFIG_RTE_KNI_KMOD_ETHTOOL config option
enabled.

Following Linux commit removes the pci_enable_msix()
Linux: 4244de1c64de ("PCI: remove pci_enable_msix")

Switch to pci_enable_msix_range() for kernel > 4.8 since current Linux
igb driver uses this function.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
7 years agoeal: optimize TSC routines when HPET is disabled
Jerin Jacob [Tue, 2 May 2017 05:19:51 +0000 (10:49 +0530)]
eal: optimize TSC routines when HPET is disabled

Since DPDK has only two timer sources,
Avoid &eal_timer_source memory read and followed
by the switch case statement when
RTE_LIBEAL_USE_HPET is not defined.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoconfig: make backtrace optional
Wei Dai [Mon, 13 Mar 2017 08:59:27 +0000 (16:59 +0800)]
config: make backtrace optional

When building DPDK with musl, there is need not to disable
backtrace to remove some references to execinfo.h which is
not supported by musl now.
This also applies to some other libc implementation which
doesn't support backtrace() and backtrace_symbols().

musl is an implementation of the userspace portion
of the standard library functionality described in
the ISO C and POSIX standards, plus common extensions.
Got more details about musl from http://www.musl-libc.org .

Signed-off-by: Wei Dai <wei.dai@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agoexamples/performance-thread: remove useless include
Wei Dai [Mon, 13 Mar 2017 08:59:26 +0000 (16:59 +0800)]
examples/performance-thread: remove useless include

There is no function to refer any part of execinfo.h, so remove the
reference to it.
And there is no this file in musl. So need to remove it to support musl.

Signed-off-by: Wei Dai <wei.dai@intel.com>
7 years agovdev: remove eal prefix
Thomas Monjalon [Thu, 4 May 2017 16:01:19 +0000 (18:01 +0200)]
vdev: remove eal prefix

The VDEV code will move to the bus drivers directory.
Rename functions from rte_eal_vdev_ to rte_vdev_
to prepare the move of the driver out of EAL.

The prefix rte_eal_vdrv_ is also renamed to rte_vdev_.
It was used for registration of vdev drivers.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agopci: remove eal prefix
Thomas Monjalon [Thu, 4 May 2017 14:48:59 +0000 (16:48 +0200)]
pci: remove eal prefix

The PCI code will move to the bus drivers directory.
Rename functions from rte_eal_pci_ to rte_pci_
to prepare the move of the driver out of EAL.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoeal: remove forward declaration of generic driver
Thomas Monjalon [Thu, 4 May 2017 15:44:38 +0000 (17:44 +0200)]
eal: remove forward declaration of generic driver

We can just move rte_driver definition before rte_device
(which depends on rte_driver).

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agoeal: remove generic driver and device lists
Thomas Monjalon [Mon, 1 May 2017 23:05:32 +0000 (01:05 +0200)]
eal: remove generic driver and device lists

These lists were unused and useless because they are maintained per bus:
struct rte_driver_list dev_driver_list
struct rte_device_list dev_device_list

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agoversion: 17.05-rc3
Thomas Monjalon [Mon, 1 May 2017 23:11:14 +0000 (01:11 +0200)]
version: 17.05-rc3

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agousertools: fix CPU layout with python 3
Thomas Monjalon [Sun, 30 Apr 2017 14:11:40 +0000 (16:11 +0200)]
usertools: fix CPU layout with python 3

These differences in Python 3 were causing errors:
- xrange is replaced by range
- dict values are a view (instead of list)
- has_key is removed

Fixes: deb87e6777c0 ("usertools: use sysfs for CPU layout")
Fixes: 63985c5f104e ("usertools: fix CPU layout for more than 2 threads")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
7 years agousertools: remove devbind module search corner cases
Mark Asselstine [Mon, 1 May 2017 19:09:09 +0000 (15:09 -0400)]
usertools: remove devbind module search corner cases

The existing code used to search for module files via modinfo has
several corner cases which can result in it failing where it should be
successful.

The call to lower() would cause results returned by 'modinfo' to be
forced to lowercase, results which were subsequently passed to
exists() which is case sensitive. This was most likely done to capture
all variants of failure strings modinfo might return
(ie. ERROR/Error/error/...)  without thought negative effect to the
later call to exists(). For many this is a nonissue but if the module
path included non-lowercase alpha characters, something which is
easily possible with a non-lowercase kernel-extraversion string, this
would cause an issue.

We could move the call to lower() to the check for "error" but this
still leaves possible corner cases, for modules or module paths with
'error' in them.

Instead we will prevent modinfo's stderr from being used as a "good
value" for path, meaning we either get a valid path from modinfo, or
nothing at all. This removes all corner cases.

Ultimately these preliminary checks are unnecessary as exists() will
only return True if it is passed a valid path, passing it modinfo's
stderr would fail. In keeping with the original code, however, we do
some preliminary checks, but we are now free of corner cases.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
7 years agonet/ixgbe: support xstats by ID
Kuba Kozak [Thu, 27 Apr 2017 14:42:40 +0000 (16:42 +0200)]
net/ixgbe: support xstats by ID

To achieve functionality of retrieving only specific statistics
given by application there are two new functions added:
ixgbe_dev_xstats_get_by_ids() which retrieve
values of statistics specified by ids array
and ixgbe_dev_xstats_get_names_by_ids() which retrieve
names of statistics specified by ids array.

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
7 years agonet/igb: support xstats by ID
Kuba Kozak [Thu, 27 Apr 2017 14:42:39 +0000 (16:42 +0200)]
net/igb: support xstats by ID

To achieve functionality of retrieving only specific statistics
given by application there are two new functions added:
eth_igb_xstats_get_by_id() which retrieve
values of statistics specified by ids array
and eth_igb_xstats_get_names_by_id() which retrieve
names of statistics specified by ids array.

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
7 years agoapp/proc-info: support xstats by ID and by name
Kuba Kozak [Thu, 27 Apr 2017 14:42:38 +0000 (16:42 +0200)]
app/proc-info: support xstats by ID and by name

There are new arguments --xstats-ids and --xstats-name
in proc_info command line to retrieve statistics given by ids
and by name.
E.g. --xstats-ids="1,3,5,7,8"
E.g. --xstats-name rx_errors

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
7 years agoethdev: get xstats ID by name
Kuba Kozak [Thu, 27 Apr 2017 14:42:37 +0000 (16:42 +0200)]
ethdev: get xstats ID by name

Introduced new function: rte_eth_xstats_get_id_by_name
to retrieve xstats ids by its names.

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
7 years agoethdev: retrieve xstats by ID
Kuba Kozak [Thu, 27 Apr 2017 14:42:36 +0000 (16:42 +0200)]
ethdev: retrieve xstats by ID

Extended xstats API in ethdev library to allow grouping of stats
logically so they can be retrieved per logical grouping  managed
by the application.
Added new functions rte_eth_xstats_get_names_by_id and
rte_eth_xstats_get_by_id using additional arguments (in compare
to rte_eth_xstats_get_names and rte_eth_xstats_get) - array of ids
and array of values.

doc: add description for modified xstats API
Documentation change for new extended statistics API functions.
The old API only allows retrieval of *all* of the NIC statistics
at once. Given this requires a MMIO read PCI transaction per statistic
it is an inefficient way of retrieving just a few key statistics.
Often a monitoring agent only has an interest in a few key statistics,
and the old API forces wasting CPU time and PCIe bandwidth in retrieving
*all* statistics; even those that the application didn't explicitly
show an interest in.
The new, more flexible API allow retrieval of statistics per ID.
If a PMD wishes, it can be implemented to read just the required
NIC registers. As a result, the monitoring application no longer wastes
PCIe bandwidth and CPU time.

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>