dpdk.git
7 years agodrivers/net: do not use ethdev driver
Jan Blunck [Tue, 11 Apr 2017 15:44:24 +0000 (17:44 +0200)]
drivers/net: do not use ethdev driver

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoethdev: add PCI driver helpers
Jan Blunck [Tue, 11 Apr 2017 15:44:23 +0000 (17:44 +0200)]
ethdev: add PCI driver helpers

This adds the following helper intended to be used by rte_pci_driver
implementations working with ethdev:

- rte_eth_dev_pci_allocate
- rte_eth_dev_pci_release
- rte_eth_dev_pci_generic_probe
- rte_eth_dev_pci_generic_remove

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agodrivers/net: use ethdev allocation helper for vdev
Jan Blunck [Tue, 11 Apr 2017 15:44:12 +0000 (17:44 +0200)]
drivers/net: use ethdev allocation helper for vdev

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoethdev: add allocation helper for virtual drivers
Jan Blunck [Tue, 11 Apr 2017 15:44:11 +0000 (17:44 +0200)]
ethdev: add allocation helper for virtual drivers

This helper should be used by ethdev drivers supporting virtual devices
to help allocating a new ethdev and properly filling the default fields.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agonet/null: internalize create function
Jan Blunck [Tue, 11 Apr 2017 15:44:17 +0000 (17:44 +0200)]
net/null: internalize create function

There is no need to export this API. Remaining users should use the
rte_eal_vdev_init() function instead.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agotest: do not short-circuit null device creation
Jan Blunck [Tue, 11 Apr 2017 15:44:16 +0000 (17:44 +0200)]
test: do not short-circuit null device creation

A virtual device should get initialized through the rte_eal_vdev_init()
function to properly initialize the driver.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agonet/nfp: use ethdev DMA helper
Jan Blunck [Tue, 11 Apr 2017 15:44:10 +0000 (17:44 +0200)]
net/nfp: use ethdev DMA helper

This driver can use the library function rte_eth_dma_zone_reserve()
instead of duplicating the code.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agonet/bonding: call through EAL on create/free
Jan Blunck [Tue, 11 Apr 2017 15:44:19 +0000 (17:44 +0200)]
net/bonding: call through EAL on create/free

To properly embed the generic rte_device into the rte_eth_dev this reworks
the bonding API to call through rte_eal_vdev_init().

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoeal: parse driver argument before probing drivers
Jan Blunck [Tue, 11 Apr 2017 15:44:09 +0000 (17:44 +0200)]
eal: parse driver argument before probing drivers

In some cases the virtual device name should be totally different than
the driver being used for the device. Therefore lets parse the devargs for
the "driver" argument before probing drivers in vdev_probe_all_drivers().

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoeal: add name field to generic device
Jan Blunck [Tue, 11 Apr 2017 15:44:08 +0000 (17:44 +0200)]
eal: add name field to generic device

This adds a name field to the generic struct rte_device. The EAL is
checking for the name being populated when registering a device but
doesn't enforce global unique names as this is left to the bus
implementations.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agovdev: use generic vdev struct for probe and remove
Jan Blunck [Tue, 11 Apr 2017 15:44:13 +0000 (17:44 +0200)]
vdev: use generic vdev struct for probe and remove

This is a preparation to embed the generic rte_device into the rte_eth_dev
also for virtual devices.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
7 years agovdev: make virtual bus use its device struct
Jan Blunck [Tue, 11 Apr 2017 15:44:12 +0000 (17:44 +0200)]
vdev: make virtual bus use its device struct

This allows the virtual bus to be rescanned and probed by tracking the
creation of rte_vdev_device.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agovdev: add virtual device arguments helper function
Jan Blunck [Tue, 11 Apr 2017 15:44:11 +0000 (17:44 +0200)]
vdev: add virtual device arguments helper function

This adds the rte_vdev_device_args() helper function to prepare for
changing the virtual drivers probe() functions take a rte_vdev_device
pointer instead of the name+args strings.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
7 years agovdev: add virtual device name helper function
Jan Blunck [Tue, 11 Apr 2017 15:44:10 +0000 (17:44 +0200)]
vdev: add virtual device name helper function

This adds the rte_vdev_device_name() helper function to retrieve the
rte_vdev_device name which makes moving the name of the low-level
device into struct rte_device easier in the future.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agovdev: add virtual device struct
Jan Blunck [Tue, 11 Apr 2017 15:44:09 +0000 (17:44 +0200)]
vdev: add virtual device struct

This adds the rte_vdev_device structure which embeds a generic rte_device.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agovdev: refactor probe/remove
Jan Blunck [Tue, 11 Apr 2017 15:44:08 +0000 (17:44 +0200)]
vdev: refactor probe/remove

This is a preparation for the introduction of the struct rte_vdev_device.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agoeal: remove unused device init function
Jan Blunck [Tue, 11 Apr 2017 15:44:07 +0000 (17:44 +0200)]
eal: remove unused device init function

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agovdev: move virtual device probing into a bus
Jan Blunck [Tue, 11 Apr 2017 15:44:06 +0000 (17:44 +0200)]
vdev: move virtual device probing into a bus

This is a refactoring of the virtual device probing which moves into into
a proper bus structure.

Signed-off-by: Jan Blunck <jblunck@infradead.org>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
7 years agoeal: probe new virtual bus after other bus devices
Jan Blunck [Tue, 11 Apr 2017 15:44:05 +0000 (17:44 +0200)]
eal: probe new virtual bus after other bus devices

Also see commit f4ce209a8ce5 ("eal: postpone vdev initialization").

Signed-off-by: Jan Blunck <jblunck@infradead.org>
7 years agoeal: bump ABI version for bus refactoring
Shreyansh Jain [Tue, 11 Apr 2017 11:07:34 +0000 (13:07 +0200)]
eal: bump ABI version for bus refactoring

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agopci: use bus driver for scan/probe
Shreyansh Jain [Tue, 11 Apr 2017 11:07:32 +0000 (13:07 +0200)]
pci: use bus driver for scan/probe

Remove EAL initiated direct PCI scan/probe and enable PCI Bus linkage.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Reviewed-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agopci: add bus driver
Shreyansh Jain [Tue, 11 Apr 2017 11:07:31 +0000 (13:07 +0200)]
pci: add bus driver

Based on EAL Bus APIs, PCI bus callbacks and support functions are
introduced in this patch.

EAL continues to have direct PCI init/scan calls as well. These would be
removed in subsequent patches to enable bus only PCI devices.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Reviewed-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agopci: remove loop over drivers in device detach
Shreyansh Jain [Tue, 11 Apr 2017 11:07:30 +0000 (13:07 +0200)]
pci: remove loop over drivers in device detach

rte_eal_pci_detach calls pci_detach_all_drivers which loops over all
PCI drivers for detaching the device. This is unnecessary as the device
already has the PCI driver reference which can be used directly.

Removing pci_detach_all_drivers and restructuring rte_eal_pci_detach
and rte_eal_pci_detach_dev to work without looping over driver list.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agopci: split match and probe
Shreyansh Jain [Tue, 11 Apr 2017 11:07:29 +0000 (13:07 +0200)]
pci: split match and probe

Matching of PCI device address and driver ID table is being done at two
discreet locations duplicating the code. (rte_eal_pci_probe_one_driver
and rte_eal_pci_detach_dev).

Refactor the match logic as a single function.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agotest: remove PCI tests
Gaetan Rivet [Tue, 11 Apr 2017 11:07:28 +0000 (13:07 +0200)]
test: remove PCI tests

These tests are not suited for the rte_bus PCI implementation anymore.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agonet/virtio-user: fix multi-process attach
Ami Sabo [Thu, 2 Mar 2017 09:00:42 +0000 (11:00 +0200)]
net/virtio-user: fix multi-process attach

Secondary process doesn't properly attach to the rte_eth_device
initialized by the primary process.

Accessing device from secondary process (e.g. via rte_eth_rx_burst),
causes process to crash. because rte_eth_dev_data is not properly set.

The issue was flood by
'commit 7f95f78a8aea ("ethdev: clear data when allocating device")'
which now clears rte_eth_dev_data entry.
For pci devices the struct is initialized by rte_eth_dev_pci_probe
->eth_dev_attach_secondary().
However, for virtio-user virtio_user_pmd_probe() is called instead of
rte_eth_dev_pci_probe().

The fix is to call rte_eth_dev_attach_secondary(), for secondary
process, from virtio_user_pmd_probe.

Fixes: 7f95f78a8aea ("ethdev: clear data when allocating device")
Cc: stable@dpdk.org
Signed-off-by: Ami Sabo <amis@radware.com>
7 years agoethdev: export secondary attach function
Ami Sabo [Thu, 2 Mar 2017 09:00:41 +0000 (11:00 +0200)]
ethdev: export secondary attach function

Today eth_dev_attach_secondary is defined as static and can only be
called by pci drivers. However, the functionality is also required for
non-pci drivers - so the patch export the function.

Signed-off-by: Ami Sabo <amis@radware.com>
7 years agoring: fix return value for single dequeue
Bruce Richardson [Thu, 13 Apr 2017 09:42:56 +0000 (10:42 +0100)]
ring: fix return value for single dequeue

The error return code for rte_ring_dequeue() function should be -ENOENT
rather than -ENOBUFS (which is the error value from the enqueue() fn).

Fixes: cfa7c9e6fc1f ("ring: make bulk and burst return values consistent")

Reported-by: Zhihong Wang <zhihong.wang@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agotest: remove unnecessary cast of void pointer
Stephen Hemminger [Fri, 7 Apr 2017 17:44:57 +0000 (13:44 -0400)]
test: remove unnecessary cast of void pointer

Remove unnecessary casts of void * pointers to a specific type.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agolib: remove unnecessary void cast
Stephen Hemminger [Fri, 7 Apr 2017 17:44:47 +0000 (13:44 -0400)]
lib: remove unnecessary void cast

Remove unnecessary casts of void * pointers to a specific type.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
7 years agoapp/testpmd: fix IPv6 tunnel checksum
Jeff Guo [Wed, 5 Apr 2017 04:48:43 +0000 (12:48 +0800)]
app/testpmd: fix IPv6 tunnel checksum

When ipv6 packet is tunnel packet, "PKT_TX_OUTER_IPV6" flag must
be set, to let prepare the correct mbuf meta data for tx forward.

Fixes: 2b76648872c9 ("net/e1000: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
7 years agolib: fix IPv6 tunnel checksum
Jeff Guo [Wed, 5 Apr 2017 04:48:42 +0000 (12:48 +0800)]
lib: fix IPv6 tunnel checksum

When packet is flag of "PKT_TX_OUTER_IPV6", it also need to be
considered to be tunnel case, in order to calculate the correct
csum value.

Fixes: 2b76648872c9 ("net/e1000: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
7 years agoexamples: enable HW CRC strip by default
Jeff Guo [Sat, 8 Apr 2017 05:56:39 +0000 (13:56 +0800)]
examples: enable HW CRC strip by default

Since VF can not disable/enable HW CRC strip for non-DPDK PF drivers,
and kernel driver almost default enable that feature, if disable it in
example app's rxmode, VF driver will report the VF launch failure. So
this patch default to enable HW CRC strip to let VF launch successful.

Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agotest: enable HW CRC strip by default
Jeff Guo [Sat, 8 Apr 2017 05:56:41 +0000 (13:56 +0800)]
test: enable HW CRC strip by default

Since VF can not disable/enable HW CRC strip for non-DPDK PF drivers,
and kernel driver almost default enable that feature, if disable it in
test app's rxmode, VF driver will report the VF launch failure. So
this patch default to enable HW CRC strip to let VF launch successful.

Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoapp: enable HW CRC strip by default
Jeff Guo [Sat, 8 Apr 2017 05:56:40 +0000 (13:56 +0800)]
app: enable HW CRC strip by default

Since VF can not disable/enable HW CRC strip for non-DPDK PF drivers,
and kernel driver almost default enable that feature, if disable it in
app's rxmode, VF driver will report the VF launch failure. So this
patch default to enable HW CRC strip to let VF launch successful.

Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agomk: fix quoting for ARM mtune argument
Pascal Mazon [Mon, 10 Apr 2017 12:18:51 +0000 (14:18 +0200)]
mk: fix quoting for ARM mtune argument

The mtune argument needs an unquoted argument, otherwise the compiler
complains:

  arm-buildroot-linux-gnueabi-gcc.br_real: error:
    unrecognized argument in option ‘-mtune="cortex-a9"’

Fixes: 02a8686263de ("mk: introduce ARMv7 architecture")
Fixes: 4a7e4626975a ("mk: introduce NXP dpaa2 architecture based on armv8-a")
Cc: stable@dpdk.org
Reported-by: Jan Viktorin <viktorin@rehivetech.com>
Signed-off-by: Pascal Mazon <pascal.mazon@6wind.com>
Tested-by: Jan Viktorin <viktorin@rehivetech.com>
7 years agomaintainers: rename section for szedata2 driver
Matej Vido [Fri, 7 Apr 2017 20:12:47 +0000 (22:12 +0200)]
maintainers: rename section for szedata2 driver

The name of company is listed for other drivers.
Use the company name also for szedata2 driver.
Cards are available from Netcope rather than Cesnet.

Signed-off-by: Matej Vido <vido@cesnet.cz>
7 years agodoc: update szedata2 guide
Matej Vido [Fri, 7 Apr 2017 20:12:46 +0000 (22:12 +0200)]
doc: update szedata2 guide

NICs are available from Netcope under the names NFB-*.
Change names and direct the links to Netcope web.

Signed-off-by: Matej Vido <vido@cesnet.cz>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoapp: do not build test-crypto-perf if cryptodev disabled
Ilya Maximets [Mon, 10 Apr 2017 08:14:19 +0000 (11:14 +0300)]
app: do not build test-crypto-perf if cryptodev disabled

This fixes build in following configuration:

CONFIG_RTE_LIBRTE_CRYPTODEV=n
CONFIG_RTE_APP_CRYPTO_PERF=y

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agolatency: fix build without timer library
Olivier Matz [Fri, 7 Apr 2017 08:43:16 +0000 (10:43 +0200)]
latency: fix build without timer library

Remove the include to "rte_timer.h" which is not needed
by latencystats library (only "rte_cycles.h" is used).

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agoversion: 17.05-rc1
Thomas Monjalon [Thu, 6 Apr 2017 21:25:18 +0000 (23:25 +0200)]
version: 17.05-rc1

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
7 years agopci: do not log false failures for non-whitelisted devices
Andrew Rybchenko [Tue, 4 Apr 2017 14:59:20 +0000 (15:59 +0100)]
pci: do not log false failures for non-whitelisted devices

If probe of the whitelisted PCI device fails, reset ret to zero
to silently skip non-whitelisted PCI devices.

Fixes: 10f6c93cea38 ("eal: do not panic on PCI failures")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agoeal: deprecate old cpu features check function
Aaron Conole [Tue, 4 Apr 2017 15:38:58 +0000 (11:38 -0400)]
eal: deprecate old cpu features check function

It's likely that this function isn't used anywhere, but since it was part
of the public API, mark the function for deprecation for at least one
release.

Signed-off-by: Aaron Conole <aconole@redhat.com>
7 years agoeal: add missing function to symbol map
Aaron Conole [Tue, 4 Apr 2017 15:38:57 +0000 (11:38 -0400)]
eal: add missing function to symbol map

This function rte_cpu_is_supported is now part of the public ABI,
so should be advertised as such.

Fixes: 37e97ad2c56a ("eal: do not panic when CPU is not supported")

Signed-off-by: Aaron Conole <aconole@redhat.com>
7 years agodoc: add maintainer role about replying questions
Thomas Monjalon [Tue, 14 Mar 2017 10:00:16 +0000 (11:00 +0100)]
doc: add maintainer role about replying questions

The first line of the MAINTAINERS file are:
"
The intention of this file is to provide a set of names that we can rely on
for helping in patch reviews and questions.
"

Unfortunately, some maintainers do not endorse their role for questions
asked on the mailing list.
Hope making it clear in the contribution guide will enforce more
responsive maintainer participation.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add how to use VF daemon
Wenzhuo Lu [Thu, 30 Mar 2017 16:32:41 +0000 (17:32 +0100)]
doc: add how to use VF daemon

VFd (the VF daemon) is a mechanism which can be used to configure
features on a VF without direct access to the PF.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: fix doc warning due to missing architecture
John McNamara [Thu, 6 Apr 2017 16:36:42 +0000 (17:36 +0100)]
doc: fix doc warning due to missing architecture

TILE-GX is no longer supported but the tap driver includes it in its
NIC overview ini file which causes a doc warning:

    $ make doc-guides-html
    sphinx processing guides-html...
    Warning generate_nic_overview_table():
    Unknown feature 'TILE-Gx' in 'tap.ini'

Fixes: 04b2c3c94346 ("doc: add tap features")

Signed-off-by: John McNamara <john.mcnamara@intel.com>
7 years agodevtools: add test apps to build script
Bruce Richardson [Wed, 29 Mar 2017 16:38:56 +0000 (17:38 +0100)]
devtools: add test apps to build script

Since the test app is no longer being build by default as part of a build,
we need to update the testbuild script to take account of this.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
7 years agoconfig: enable crypto scheduler PMD by default
Bruce Richardson [Wed, 29 Mar 2017 16:38:54 +0000 (17:38 +0100)]
config: enable crypto scheduler PMD by default

The crypto scheduler PMD has no external dependencies to enable that by
default.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agoexamples: enable build of performance-thread
Bruce Richardson [Wed, 29 Mar 2017 16:38:53 +0000 (17:38 +0100)]
examples: enable build of performance-thread

The performance-thread example was not build by default in the make
examples build target. It will compile ok for x86_64 targets so add it to
the examples makefile list for that platform.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agodevtools: make commits with stable tag outstanding
Yuanhan Liu [Thu, 6 Apr 2017 06:33:41 +0000 (14:33 +0800)]
devtools: make commits with stable tag outstanding

So that, as a stable maintainer while picking commits to a stable release,
I could pay less attention to those have it and pay more attention to those
don't have it.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
7 years agoeal: clean up interrupt handle
Qi Zhang [Thu, 6 Apr 2017 12:42:22 +0000 (20:42 +0800)]
eal: clean up interrupt handle

The patch change the prototype of callback function
(rte_intr_callback_fn) by removing the unnecessary parameter.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agovfio: keep interrupt source read only
Qi Zhang [Thu, 6 Apr 2017 12:42:21 +0000 (20:42 +0800)]
vfio: keep interrupt source read only

Remove the inappropriate modification on get_max_intr
field that keep the intr_source read only.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agodrivers/net: remove unused DEPDIRS from makefiles
Ferruh Yigit [Wed, 5 Apr 2017 16:07:14 +0000 (17:07 +0100)]
drivers/net: remove unused DEPDIRS from makefiles

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: fix tunnel filter to VF
Beilei Xing [Thu, 6 Apr 2017 07:12:34 +0000 (15:12 +0800)]
net/i40e: fix tunnel filter to VF

Failed to destroy tunnel filter rule if the action of
the tunnel filter is VF, root cause is the wrong vsi
used.

Fixes: c50474f31efe ("net/i40e: support tunnel filter to VF")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
7 years agoevent/sw: fix build for gcc 4.5.1
Ferruh Yigit [Thu, 6 Apr 2017 17:05:11 +0000 (18:05 +0100)]
event/sw: fix build for gcc 4.5.1

build error:
.../event/sw/sw_evdev_worker.c: In function ‘sw_event_release’:
.../event/sw/sw_evdev_worker.c:52:3: error: unknown field ‘op’ specified
in initializer

Fixed by updating struct initialization.

Fixes: 656af9180014 ("event/sw: add worker core functions")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoevent/octeontx: fix build for gcc < 4.6
Ferruh Yigit [Thu, 6 Apr 2017 17:05:10 +0000 (18:05 +0100)]
event/octeontx: fix build for gcc < 4.6

-Ofast option supported from gcc4.6 [1], for older versions using
"-O3 -ffast-math" instead.

[1] build error:
cc1: error: invalid option argument ‘-Ofast’

Also struct initialization build error [2] fixed.

[2] build error:
.../event/octeontx/ssovf_mbox.c: In function ‘mbox_send_request’:
.../event/octeontx/ssovf_mbox.c:95:9: error: unknown field ‘u64’
specified in initializer

Fixes: 32ff26393bb2 ("event/octeontx: add SSO HW device operations")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/thunderx: disable PMD for old compilers
Ferruh Yigit [Thu, 6 Apr 2017 17:05:09 +0000 (18:05 +0100)]
net/thunderx: disable PMD for old compilers

Disable for gcc < 4.7 and icc <= 14.0

PMD uses some compiler builtins and new compiler options. Tested with
gcc 4.5.1 and following were not supported:

option:
-Ofast

macros:
_Static_assert

__ORDER_LITTLE_ENDIAN__
__ORDER_BIG_ENDIAN__
__BYTE_ORDER__

__atomic_fetch_add
__ATOMIC_ACQUIRE
__atomic_load_n
__ATOMIC_RELAXED
__atomic_store_n
__ATOMIC_RELEASE

It is not easy to fix all in PMD, disabling PMD for older compilers.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agocrypto/scheduler: deprecate get/set mode functions
Fan Zhang [Wed, 5 Apr 2017 16:03:23 +0000 (17:03 +0100)]
crypto/scheduler: deprecate get/set mode functions

This patch deprecates the following functions in 17.05,
which will be removed in 17.08.
- rte_crpytodev_scheduler_mode_get()
- rte_crpytodev_scheduler_mode_set()

These two new functions replace them, fixing the typo in their names.
- rte_cryptodev_scheduler_mode_get()
- rte_cryptodev_scheduler_mode_set()

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/scheduler: add more options
Fan Zhang [Mon, 3 Apr 2017 15:33:19 +0000 (16:33 +0100)]
crypto/scheduler: add more options

This patch adds initial mode and ordering enable/disable EAL
options to cryptodev scheduler PMD.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/scheduler: fix session free
Fan Zhang [Tue, 4 Apr 2017 09:31:08 +0000 (10:31 +0100)]
crypto/scheduler: fix session free

This patch fixes the incorrection slave session free operation.

Fixes: 57523e682bb7 ("crypto/scheduler: register operation functions")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/qat: support device D15xx
Fiona Trahe [Mon, 3 Apr 2017 14:13:21 +0000 (15:13 +0100)]
crypto/qat: support device D15xx

Add support for Intel QuickAssist Technology device D15xx

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: restructure QAT guide
Fiona Trahe [Mon, 3 Apr 2017 14:13:22 +0000 (15:13 +0100)]
doc: restructure QAT guide

Restructure QAT PMD instructions and add a device table to
minimise duplication for each device and make it easier to add devices.
Fix some device name typos and poor formatting.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agocryptodev: add API note
Fiona Trahe [Mon, 3 Apr 2017 15:51:33 +0000 (16:51 +0100)]
cryptodev: add API note

Add note to cryptodev API that chained mbufs
are not supported in DOCSISBPI mode.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agotest/crypto: add ZUC test cases for QAT
Arek Kusztal [Fri, 31 Mar 2017 12:53:20 +0000 (13:53 +0100)]
test/crypto: add ZUC test cases for QAT

This patch adds ZUC EEA3/EIA3 test cases for QAT crypto test suite

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agotest/crypto: merge ZUC test vectors into one file
Arek Kusztal [Fri, 31 Mar 2017 12:53:19 +0000 (13:53 +0100)]
test/crypto: merge ZUC test vectors into one file

This patch merges ZUC test vectors into one header file

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agocrypto/qat: add ZUC EEA3/EIA3 capability
Arek Kusztal [Fri, 31 Mar 2017 12:53:18 +0000 (13:53 +0100)]
crypto/qat: add ZUC EEA3/EIA3 capability

This commit adds ZUC EEA3 cipher and ZUC EIA3 MAC capability
to Intel(R) QuickAssist Technology driver

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agocrypto/qat: refactor capabilities infrastructure
Arek Kusztal [Fri, 31 Mar 2017 12:53:17 +0000 (13:53 +0100)]
crypto/qat: refactor capabilities infrastructure

Refactor capabilities data structures to facilitate
defining different capability sets for different devices
without duplication of data.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agocrypto/scheduler: add API to get attached slaves
Fan Zhang [Thu, 30 Mar 2017 13:39:18 +0000 (14:39 +0100)]
crypto/scheduler: add API to get attached slaves

This patch adds an API to get the run-time slaves number and list
of a cryptodev scheduler PMD.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/qat: fix crash in session create
Arek Kusztal [Wed, 29 Mar 2017 10:31:46 +0000 (11:31 +0100)]
crypto/qat: fix crash in session create

This patch fixes segementation fault that may occur in case
of wrong parameters being provided to the cryptographic
session. Unused fields which would cause null dereference
are removed.

Fixes: 1703e94ac5ce ("qat: add driver for QuickAssist devices")

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agotest/crypto: add out-of-place tests
Fiona Trahe [Thu, 2 Mar 2017 13:03:12 +0000 (13:03 +0000)]
test/crypto: add out-of-place tests

Added out-of-place (OOP) tests for AES-CBC, AES-DOCSIS and DES-DOCSIS
to tests suites for QuickAssist and openssl PMDs.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
7 years agocrypto/qat: support DOCSIS BPI mode
Fiona Trahe [Thu, 2 Mar 2017 13:03:09 +0000 (13:03 +0000)]
crypto/qat: support DOCSIS BPI mode

DOCSIS BPI mode is handled in the QAT PMD by sending full blocks to the
hardware device for encryption and using OpenSSL libcrypto for pre- or
post-processing of any partial blocks.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
7 years agocrypto/openssl: support DES DOCSIS BPI
Pablo de Lara [Thu, 23 Feb 2017 15:21:32 +0000 (15:21 +0000)]
crypto/openssl: support DES DOCSIS BPI

Adds support in OpenSSL PMD for algorithm following the DOCSIS
specification, which combines DES-CBC for full DES blocks (8 bytes)
and DES-CFB for last runt block (less than 8 bytes).

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
Tested-by: Yang Gang <gangx.yang@intel.com>
7 years agocrypto/aesni_mb: support AES DOCSIS BPI
Pablo de Lara [Thu, 23 Feb 2017 15:06:29 +0000 (15:06 +0000)]
crypto/aesni_mb: support AES DOCSIS BPI

Underlying IPSec Multi buffer library implements
DOCSIS specification, so this commit adds support
for this new feature, which combines AES-CBC for full
AES blocks (16 bytes) and AES-CFB for last runt block
(less than 16 bytes).

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/aesni_mb: support IPSec Multi-buffer lib v0.45
Pablo de Lara [Thu, 30 Mar 2017 15:04:18 +0000 (16:04 +0100)]
crypto/aesni_mb: support IPSec Multi-buffer lib v0.45

IPSec Multi-buffer library v0.45 has been released,
which includes, among other features, support for DOCSIS BPI
specification and include AVX512 optimizations.

This new version added const qualifiers to some of the function
prototypes, so the PMD has been updated to include these changes.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/aesni_mb: process crypto op on dequeue
Declan Doherty [Thu, 30 Mar 2017 13:34:53 +0000 (14:34 +0100)]
crypto/aesni_mb: process crypto op on dequeue

Moving the crypto processing from the enqueue burst to the dequeue burst,
to remove the requirement to continually call the
rte_cryptodev_burst_enqueue function to guarantee that all operations get
flushed from the multi-buffer managers buffers.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/aesni_gcm: do crypto op in dequeue function
Sergio Gonzalez Monroy [Wed, 29 Mar 2017 13:42:53 +0000 (14:42 +0100)]
crypto/aesni_gcm: do crypto op in dequeue function

There is bug when more crypto ops are enqueued than dequeued.
The return value is not checked when trying to enqueue the
processed crypto op into the internal ring, which in the case of being
full will results in crypto ops and mbufs being leaked.
The issue is more obvious with different cores doing enqueue/dequeue.

This patch moves the crypto operation to the dequeue function which
fixes the above issue without having to check for the number of free
entries in the ring.

Fixes: eec136f3c54f ("aesni_gcm: add driver for AES-GCM crypto operations")

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/scheduler: add fail-over scheduling mode
Fan Zhang [Wed, 29 Mar 2017 16:31:32 +0000 (17:31 +0100)]
crypto/scheduler: add fail-over scheduling mode

Fail-over mode works with 2 slaves, primary slave and secondary slave.
In this mode, the scheduler will enqueue the incoming crypto op burst
to the primary slave. When one or more crypto ops are failed to be
enqueued, they then will be enqueued to the secondary slave.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/scheduler: add packet size based mode
Fan Zhang [Thu, 30 Mar 2017 10:47:14 +0000 (11:47 +0100)]
crypto/scheduler: add packet size based mode

Packet-size based distribution mode is a scheduling mode works with 2
slaves, primary slave and secondary slave, and distribute the enqueued
crypto ops to them based on their data lengths. A crypto op will be
distributed to the primary slave if its data length equals or bigger
than the designated threshold, otherwise it will be handled by the
secondary slave.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agoapp/crypto-perf: reorg options structure
Pablo de Lara [Mon, 27 Mar 2017 11:26:06 +0000 (12:26 +0100)]
app/crypto-perf: reorg options structure

Reorganize options structure, to have all the parameters
used in a single run in the first bytes of the structure,
so all fit in a single cache line.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: add extra option checks
Pablo de Lara [Mon, 27 Mar 2017 11:26:05 +0000 (12:26 +0100)]
app/crypto-perf: add extra option checks

When using the verify test, test name is necessary
to be passed when digest is needed.

Also, when using an block cipher algorithm (CBC, ECB),
the buffer size has to be aligned to the block size.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: add range/list of sizes
Pablo de Lara [Mon, 27 Mar 2017 11:26:04 +0000 (12:26 +0100)]
app/crypto-perf: add range/list of sizes

So far, the crypto performance application was only able to
test one buffer size and one burst size.

With this commit, multiple sizes can be passed, either as a range
of values or as a list of values.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: display results in test runner
Pablo de Lara [Mon, 27 Mar 2017 11:26:03 +0000 (12:26 +0100)]
app/crypto-perf: display results in test runner

Instead of printing the test results in the destructor
function, print them just after each run.
This will be useful for after the commit that allows
a range of buffer and burst sizes.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: do not append digest if not used
Pablo de Lara [Mon, 27 Mar 2017 11:26:02 +0000 (12:26 +0100)]
app/crypto-perf: do not append digest if not used

When testing cipher only operations, there is no need to append digest
at the end of the buffer.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: move verify as single test type
Sergio Gonzalez Monroy [Mon, 27 Mar 2017 11:26:01 +0000 (12:26 +0100)]
app/crypto-perf: move verify as single test type

In order to simplify throughput and latency tests,
verify option has been removed from these and moved
as a separate test.

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoapp/crypto-perf: fix AES CBC 128 test vectors
Pablo de Lara [Mon, 27 Mar 2017 11:26:00 +0000 (12:26 +0100)]
app/crypto-perf: fix AES CBC 128 test vectors

Ciphertext and digests for different buffer sizes
were incorrect.

Fixes: 5f1d85c5a8ab ("app/crypto-perf: add test vectors files")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: remove unused file
Pablo de Lara [Mon, 27 Mar 2017 11:25:59 +0000 (12:25 +0100)]
app/crypto-perf: remove unused file

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoapp/crypto-perf: remove cyclecount test type
Pablo de Lara [Mon, 27 Mar 2017 11:25:58 +0000 (12:25 +0100)]
app/crypto-perf: remove cyclecount test type

Cyclecount test was not implemented, so it is removed.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agoexamples/ipsec-secgw: attach session-qp
Akhil Goyal [Fri, 24 Mar 2017 09:29:21 +0000 (14:59 +0530)]
examples/ipsec-secgw: attach session-qp

adding support for attaching session to queue pairs.
This is required as underlying crypto driver may only
support limited number of sessions per queue pair
if max_nb_sessions_per_qp > 0, session should be
attached to a particular qp.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
7 years agocryptodev: add API to associate session with queue pair
Akhil Goyal [Fri, 24 Mar 2017 09:29:20 +0000 (14:59 +0530)]
cryptodev: add API to associate session with queue pair

HW based crypto drivers may only support limited number of
sessions per queue pair. This requires support for attaching
sessions to specific queue pair.  New APIs  are introduced to
attach/detach a session with/from a particular queue pair.
These are optional APIs.

Application can call attach API after creating a session
and can call detach API before deleting a session.

Application needs to check if max_nb_sessions_per_qp > 0,
then it should call the attach API.

max_nb_sessions_per_qp = 0 means infinite sessions per qp

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
7 years agoexamples/dpdk-qat: remove app
Pablo de Lara [Fri, 3 Mar 2017 16:10:49 +0000 (16:10 +0000)]
examples/dpdk-qat: remove app

Remove DPDK QAT sample app, in favour of the newer applications
that use the cryptodev library: ipsec-gw and l2fwd-crypto,
which has support for Intel QuickAssist devices.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agocrypto/scheduler: improve slave configuration
Fan Zhang [Fri, 17 Feb 2017 12:01:01 +0000 (12:01 +0000)]
crypto/scheduler: improve slave configuration

Since the new device configuration API is updated, we can make use of
this feature to the crypto scheduler PMD to configure its slaves
automatically with the same configurations it got. As originally the
slaves have to be manually configured one by one, this patch should
help reducing the coding complexity.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocryptodev: change device configuration API
Fan Zhang [Fri, 17 Feb 2017 12:01:00 +0000 (12:01 +0000)]
cryptodev: change device configuration API

This patch changes the device configuration API for rte_cryptodev_ops
function prototype, and update all cryptodev PMDs for this change.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agodoc: reformat crypto drivers overview
Pablo de Lara [Thu, 23 Mar 2017 11:38:55 +0000 (11:38 +0000)]
doc: reformat crypto drivers overview

Follow the approach in the network devices overview,
for the feature matrix, so it improves readibility
and maintainability.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add missing supported crypto algos
Pablo de Lara [Wed, 22 Mar 2017 16:15:57 +0000 (16:15 +0000)]
doc: add missing supported crypto algos

AESNI MB supports MD5 and AES XCBC, but it wasn't reflected
in the driver documentation.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agocrypto/scheduler: optimize crypto op ordering
Fan Zhang [Thu, 2 Mar 2017 14:18:34 +0000 (14:18 +0000)]
crypto/scheduler: optimize crypto op ordering

This patch optimizes the crypto op ordering by replacing the
ordering method from using rte_reorder library to using rte_ring
to avoid unnecessary crypto op storing and recovering cost.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agocrypto/scheduler: change enqueue and dequeue functions
Fan Zhang [Thu, 2 Mar 2017 11:12:11 +0000 (11:12 +0000)]
crypto/scheduler: change enqueue and dequeue functions

This patch changes the enqueue and dequeue methods to cryptodev
scheduler PMD. Originally a 2-layer function call is carried out
upon enqueuing or dequeuing a burst of crypto ops. This patch
removes one layer to improve the performance.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agoapp/crypto-perf: fix uninitialized values for null ops
Tomasz Kulasek [Fri, 24 Feb 2017 15:26:00 +0000 (16:26 +0100)]
app/crypto-perf: fix uninitialized values for null ops

Some values are uninitialized for "cipher null" and "auth null"
operations. It may cause unpredictable results for some crypto pmd
drivers, or even segmentation fault.

This patch sets values for null operations to zero.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")

Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoapp/crypto-perf: avoid wrong operation type for AEAD algos
Daniel Mrzyglod [Wed, 8 Mar 2017 17:03:25 +0000 (18:03 +0100)]
app/crypto-perf: avoid wrong operation type for AEAD algos

When somebody use bad --optype with aead algorithms
segmentation fault could happen.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")

Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoapp/crypto-perf: fix invalid latency for QAT
Slawomir Mrozowicz [Thu, 16 Feb 2017 15:51:08 +0000 (16:51 +0100)]
app/crypto-perf: fix invalid latency for QAT

Fixes invalid latency result when using the performance application and
hardware QAT PMD. It occurred when the number of processed packets was
higher then the size of the internal QAT PMD ring buffer and the buffer
was overflowed.
Fixed by correcting the registration of the enqueued packets and freeing
memory space for not enqueued packets.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>