dpdk.git
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>
7 years agocryptodev: enable BPI for Cablelabs DOCSIS security spec
Pablo de Lara [Thu, 23 Feb 2017 14:02:55 +0000 (14:02 +0000)]
cryptodev: enable BPI for Cablelabs DOCSIS security spec

Extend the DPDK cryptodev API to enable processing of packets according
to the Baseline Privacy Interface Plus (BPI+) Specification described in
the security specification of the Cablelabs Data-over-Cable Service
Interface Specification (DOCSIS).

Brief summary of BPI+ symmetric cryptography requirements:
BPI+ cryptography uses a block cipher (AES-CBC/DES-CBC) to encrypt/decrypt
all the whole blocks in the packet. However the data length is not always
a block-multiple, so where there is a final block less than the full block
size this residual block requires special handling using AES-CFB/DES-CFB
mode. Similar special handling is specified where there is only one block,
smaller than the block size for the cipher. See spec for further details.
https://apps.cablelabs.com/specification/docsis-3-1-security-specification/

Two new elements are added to the enum rte_crypto_cipher_algorithm.
Note elements of this enum are actually a combination of an algorithm (AES,
3DES, etc) and mode (CBC, CTR, etc). The new DOCSISBPI mode is used to
convey to the PMD that the mode applied should be the specific combination
of CBC and CFB required by the DOCSIS Baseline Privacy Plus Spec.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
7 years agoexamples/l2fwd-crypto: use cryptodev algorithm parser
Pablo de Lara [Mon, 27 Feb 2017 14:38:46 +0000 (14:38 +0000)]
examples/l2fwd-crypto: use cryptodev algorithm parser

L2fwd-crypto app was creating an array of strings for the
supported algorithms, which was different from the strings
that are now in cryptodev.

Use the new API in cryptodev to parse the string from the user,
to get the algorithm enum, instead, so it is not necessary to add
a new supported algorithm in the cryptodev library and this app.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoapp/crypto-perf: use cryptodev algorithm parser
Pablo de Lara [Mon, 27 Feb 2017 14:38:45 +0000 (14:38 +0000)]
app/crypto-perf: use cryptodev algorithm parser

Instead of going through the array of supported algorithms
in the app, to get the algorithm enum, use the new API in
cryptodev to parse this string, so it is not necessary to add
a new supported algorithm in the cryptodev library and this app.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agocryptodev: add algorithm string parsers
Pablo de Lara [Mon, 27 Feb 2017 14:38:44 +0000 (14:38 +0000)]
cryptodev: add algorithm string parsers

Adds functions to get the cipher/authentication
algorithm enums, given a string. This is useful for applications
which gets the algorithm required from the user, to have a common
string-enum mapping.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agocryptodev: add missing algorithm strings
Pablo de Lara [Mon, 27 Feb 2017 14:38:43 +0000 (14:38 +0000)]
cryptodev: add missing algorithm strings

DES-CBC and AUTH NULL algorithms were missing in
the array of algorithm strings.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agotest/eventdev: fix build with crypto disabled
Olivier Matz [Thu, 6 Apr 2017 14:13:37 +0000 (16:13 +0200)]
test/eventdev: fix build with crypto disabled

There is a compilation error in the following case:

  make config T=x86_64-native-linuxapp-gcc
  sed -i 's,CONFIG_RTE_LIBRTE_CRYPTODEV=y,CONFIG_RTE_LIBRTE_CRYPTODEV=n,' \
    build/.config
  sed -i 's,CONFIG_RTE_APP_CRYPTO_PERF=y,CONFIG_RTE_APP_CRYPTO_PERF=n,' \
    build/.config
  make -j4
  make -j4 test-build

  test_eventdev.c:39:27: fatal error:
  rte_cryptodev.h: No such file or directory
  #include <rte_cryptodev.h>
                           ^

Removing the include induces a new error, (missing declaration of
rte_eal_vdev_init()), which is fixed by including rte_dev.h.

Fixes: f8f9d233ea0e ("test/eventdev: add unit tests")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoring: fix C++ cast error
Ed Czeck [Thu, 6 Apr 2017 13:59:47 +0000 (09:59 -0400)]
ring: fix C++ cast error

build error:
include/rte_ring.h:459:22: error: invalid conversion from ‘void*’
to ‘void**’ [-fpermissive]
  ENQUEUE_PTRS(r, &r[1], prod_head, obj_table, n, void *);

Implicit casts of void* to void** are considered warnings in some
compilers.  E.g. g++ version 5.8.  Cast directly to object types

Fixes: a6619414 ("ring: make struct and macros type agnostic")

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agomk: fix lib filtering when linking app
Olivier Matz [Thu, 6 Apr 2017 14:14:55 +0000 (16:14 +0200)]
mk: fix lib filtering when linking app

I get the following error when linking the test application:
  build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o):
  In function `nicvf_qsize_regbit':
  drivers/net/thunderx/base/nicvf_hw.c:451: undefined reference to `log2'
  build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o):
  In function `nicvf_rss_reta_update':
  drivers/net/thunderx/base/nicvf_hw.c:804: undefined reference to `log2'
  build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o):
  In function `nicvf_rss_reta_query':
  drivers/net/thunderx/base/nicvf_hw.c:825: undefined reference to `log2'

While I don't know why it does not happen for a default build, the error
can be explained. The link command line is:

   gcc -o test ... *.o ... -Wl,-lm ... -Wl,-lrte_pmd_thunderx_nicvf ...

rte_pmd_thunderx_nicvf needs the math library, and it should be
added after. This is not the case because the test application also
adds the math library.

The makefile already filters the libraries, but it keeps the first
occurrence of the lib. Instead, the last one should be kept.

Fixes: edf4d331dcdb ("mk: eliminate duplicates from libraries list")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
7 years agomk: fix shell errors when building with clang
Olivier Matz [Thu, 6 Apr 2017 14:12:41 +0000 (16:12 +0200)]
mk: fix shell errors when building with clang

On my system, the version of the compiler is not properly retrieved,
resulting in strange logs when building the dpdk:
  /bin/sh: line 0: test: too many arguments

This happens when mk/toolchain/clang/rte.toolchain-compat.mk is included
from a directory that use gcc to build (ex: kernel modules). In that
case, the CLANG_VERSION variable contains spaces that breaks some shell
calls to the test program.

The error is because the output of "gcc -v" on my system contains 2 lines
that matches the "version" string:

  Configured with: ../src/configure -v \
    --with-pkgversion='Debian 6.3.0-6' [...]
  gcc version 6.3.0 20170205 (Debian 6.3.0-6)

This may be specific to Debian. Fix it by specializing the grep.

Fixes: 2ef6eea891e5 ("mk: add clang toolchain")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
7 years agomk: build examples list before each doxygen run
Thomas Monjalon [Thu, 6 Apr 2017 10:44:33 +0000 (12:44 +0200)]
mk: build examples list before each doxygen run

The file examples.dox was not re-generated when a file
is added or removed from examples/.
It is now removed on clean operation.
The ordering of operations (clean before generation) is also
better defined.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
7 years agonet/tap: fix max queues redefinition
Pascal Mazon [Thu, 6 Apr 2017 14:18:04 +0000 (16:18 +0200)]
net/tap: fix max queues redefinition

The macro RTE_PMD_TAP_MAX_QUEUES was defined twice.
On machines with kernel < 3.8, IFF_MULTI_QUEUE didn't exist, and thus
both definitions used different values.

Fixes: cf5643661161 ("net/tap: move private elements to external header")

Signed-off-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agonet/mlx5: fix an uninitialized variable
Nelio Laranjeiro [Thu, 6 Apr 2017 09:16:32 +0000 (11:16 +0200)]
net/mlx5: fix an uninitialized variable

Since patch "mbuf: structure reorganization" the compiler complains
sometimes (in some conditions):

 .../drivers/net/mlx5/mlx5_rxtx.c: In function ‘mlx5_rx_burst’:
 .../drivers/net/mlx5/mlx5_rxtx.c:2082:17: error: ‘len’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]

len is not initialised as it will be at the first segment of a received
packet, but it remains hard for the compiler to determine it.

Fixes: 9964b965ad69 ("net/mlx5: re-add Rx scatter support")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
7 years agoethdev: fix missing function in version map file
Bruce Richardson [Thu, 6 Apr 2017 10:18:21 +0000 (11:18 +0100)]
ethdev: fix missing function in version map file

The function rte_eth_find_next is missing in the map file, which causes
errors with shared library builds.

  .../test-pmd/testpmd.c:1693: undefined reference to `rte_eth_find_next'

Adding function to map file fixes the issue.

Fixes: 5588909af21b ("ethdev: add device iterator")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agomaintainers: handoff ownership of Tap PMD
Keith Wiles [Thu, 30 Mar 2017 16:05:31 +0000 (11:05 -0500)]
maintainers: handoff ownership of Tap PMD

Pascal has added many features to the Tap PMD and the code
is now mostly his code. We talked and he suggested I send
the patch to change ownership.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agomaintainers: update for vmxnet3
Shrikrishna Khare [Wed, 8 Mar 2017 02:42:05 +0000 (18:42 -0800)]
maintainers: update for vmxnet3

Taking over DPDK vmxnet3 driver maintainer role.

Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
Acked-by: Yong Wang <yongwang@vmware.com>
7 years agotest: add CRC computation
Jasvinder Singh [Wed, 5 Apr 2017 20:49:50 +0000 (21:49 +0100)]
test: add CRC computation

This patch provides a set of tests for verifying the functional
correctness of 16-bit and 32-bit CRC APIs.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agonet: add CRC computation API
Jasvinder Singh [Wed, 5 Apr 2017 20:49:49 +0000 (21:49 +0100)]
net: add CRC computation API

APIs for selecting the architecure specific implementation and computing
the crc (16-bit and 32-bit CRCs) are added. For CRCs calculation, scalar
as well as x86 intrinsic(sse4.2) versions are implemented.

The scalar version is based on generic Look-Up Table(LUT) algorithm,
while x86 intrinsic version uses carry-less multiplication for
fast CRC computation.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agoapp/testpmd: use ethdev iterator to list devices
Gaetan Rivet [Fri, 31 Mar 2017 12:04:39 +0000 (14:04 +0200)]
app/testpmd: use ethdev iterator to list devices

This commit replaces redundant code with public ethdev layer calls.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
7 years agoethdev: add device iterator
Gaetan Rivet [Fri, 31 Mar 2017 12:04:38 +0000 (14:04 +0200)]
ethdev: add device iterator

This iterator helps applications iterate over the device list and skip
holes caused by invalid or detached devices.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
7 years agoethdev: expose device states
Gaetan Rivet [Fri, 31 Mar 2017 12:04:37 +0000 (14:04 +0200)]
ethdev: expose device states

The hotplug API introduced multiple states for a device with possible
values defined internally, while the related field in struct rte_eth_dev
was made public.

Exposing those states improves consistency because applications have to
deal with the device list directly.

"DEV_DETACHED" is renamed "RTE_ETH_DEV_UNUSED" to better reflect that
the emptiness of a slot is not necessarily the result of detaching a
device.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
7 years agoevent/sw: fix build with icc
Ferruh Yigit [Wed, 5 Apr 2017 15:32:10 +0000 (16:32 +0100)]
event/sw: fix build with icc

build error:
.../drivers/event/sw/sw_evdev_scheduler.c(379):
error #300: const variable "dummy_rob" requires an initializer
        static const struct reorder_buffer_entry dummy_rob;
                                                          ^

Variable "dummy_rob" defined as const but already cast to another
pointer and its content updated. Remove const qualifier from variable.

Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoevent/octeontx: fix build with icc
Ferruh Yigit [Wed, 5 Apr 2017 15:32:09 +0000 (16:32 +0100)]
event/octeontx: fix build with icc

build error:
.../drivers/event/octeontx/ssovf_worker.c(212):
error #592: variable "get_work0" is used before its value is set
        RTE_SET_USED(get_work0);
        ^

.../drivers/event/octeontx/ssovf_worker.c(213):
error #592: variable "get_work1" is used before its value is set
        RTE_SET_USED(get_work1);
        ^
For x86 these variables set but not used, move macros below
where values assigned.

Fixes: f61808eaa9ad ("event/octeontx: add start function")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoring: fix build with icc
Ferruh Yigit [Wed, 5 Apr 2017 15:03:12 +0000 (16:03 +0100)]
ring: fix build with icc

build error:
In file included from .../lib/librte_ring/rte_ring.c(90):
.../lib/librte_ring/rte_ring.h(162):
error #1366: a reduction in alignment without the "packed" attribute
is ignored
  } __rte_cache_aligned;
      ^

Alignment attribute moved to first element of the struct

Fixes: a6619414e0a9 ("ring: make struct and macros type agnostic")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoapp/testpmd: add latency statistics calculation
Reshma Pattan [Thu, 30 Mar 2017 21:01:02 +0000 (22:01 +0100)]
app/testpmd: add latency statistics calculation

This patch adds latency stats commandline argument to testpmd,
allowing to specify the lcore to use for latencystats updates.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
7 years agolatency: added new library for latency stats
Reshma Pattan [Thu, 30 Mar 2017 21:01:01 +0000 (22:01 +0100)]
latency: added new library for latency stats

Add a library designed to calculate latency statistics and report them
to the application when queried. The library measures minimum, average and
maximum latencies, and jitter in nano seconds. The current implementation
supports global latency stats, i.e. per application stats.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoapp/testpmd: add bitrate statistics calculation
Remy Horton [Thu, 30 Mar 2017 21:01:00 +0000 (22:01 +0100)]
app/testpmd: add bitrate statistics calculation

Calculate bitrate statistics using the bitrate stats library. The
resulting statistics can be viewed via proc_info.

Signed-off-by: Remy Horton <remy.horton@intel.com>
7 years agobitrate: add bitrate statistics library
Remy Horton [Thu, 30 Mar 2017 21:00:59 +0000 (22:00 +0100)]
bitrate: add bitrate statistics library

This patch adds a library that calculates peak and average data-rate
statistics. For ethernet devices. These statistics are reported using
the metrics library.

Signed-off-by: Remy Horton <remy.horton@intel.com>
7 years agoapp/proc_info: add metrics displaying
Reshma Pattan [Thu, 30 Mar 2017 21:00:58 +0000 (22:00 +0100)]
app/proc_info: add metrics displaying

Modify the dpdk-procinfo process to display the newly added metrics.
Added new command line option "--metrics" to display metrics.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
7 years agometrics: add information metrics library
Remy Horton [Thu, 30 Mar 2017 21:00:57 +0000 (22:00 +0100)]
metrics: add information metrics library

This patch adds a new information metrics library. This Metrics
library implements a mechanism by which producers can publish
numeric information for later querying by consumers. Metrics
themselves are statistics that are not generated by PMDs, and
hence are not reported via ethdev extended statistics.

Metric information is populated using a push model, where
producers update the values contained within the metric
library by calling an update function on the relevant metrics.
Consumers receive metric information by querying the central
metric data, which is held in shared memory.

Signed-off-by: Remy Horton <remy.horton@intel.com>