dpdk.git
6 years agotest/bpf: add test for external function call
Konstantin Ananyev [Fri, 8 Jun 2018 08:42:35 +0000 (09:42 +0100)]
test/bpf: add test for external function call

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobpf: add extra validation for input BPF program
Konstantin Ananyev [Fri, 8 Jun 2018 08:42:34 +0000 (09:42 +0100)]
bpf: add extra validation for input BPF program

Add checks for:
 - use/return uninitialized registers and/or stack data
 - possible memory access boundaries violation
 - invalid arguments for the function

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agobpf: add extra information for external symbol definitions
Konstantin Ananyev [Fri, 8 Jun 2018 08:42:33 +0000 (09:42 +0100)]
bpf: add extra information for external symbol definitions

Extend struct rte_bpf_xsym with new fields to provide information about:
 - for variables - type and size
 - for functions - number of arguments and type/size of each argument
   and return value

Such information would allow validate code to perform
more extensive checking on input BPF program and catch
misbehaving BPF code.

That change would cause ABI/API breakage for librte_bpf.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agoeventdev: add callback for Rx adapter SW transfers
Nikhil Rao [Thu, 28 Jun 2018 06:48:10 +0000 (12:18 +0530)]
eventdev: add callback for Rx adapter SW transfers

Add ability for application to register a callback function
for SW transfers, the callback can decide which packets can
be enqueued to the event device.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agotest/event: add Rx adapter tests for interrupt driven queues
Nikhil Rao [Mon, 2 Jul 2018 09:11:14 +0000 (14:41 +0530)]
test/event: add Rx adapter tests for interrupt driven queues

Add test for queue add and delete, the add/delete calls
also switch queues between poll and interrupt mode.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
6 years agoeventdev: add interrupt driven queues to Rx adapter
Nikhil Rao [Mon, 2 Jul 2018 09:11:13 +0000 (14:41 +0530)]
eventdev: add interrupt driven queues to Rx adapter

Add support for interrupt driven queues when eth device is
configured for rxq interrupts and servicing weight for the
queue is configured to be zero.

A interrupt driven packet received counter has been added to
rte_event_eth_rx_adapter_stats.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
6 years agoeventdev: move Rx adapter to separate function
Nikhil Rao [Mon, 2 Jul 2018 09:11:12 +0000 (14:41 +0530)]
eventdev: move Rx adapter to separate function

Create a separate function that handles eth receive and
enqueue to event buffer. This function will also be called for
interrupt driven receive queues.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agoeventdev: improve error handling for Rx adapter queue add/del
Nikhil Rao [Mon, 2 Jul 2018 09:11:11 +0000 (14:41 +0530)]
eventdev: improve error handling for Rx adapter queue add/del

The new WRR sequence applicable after queue add/del is set
up after setting the new queue state, so a memory allocation
failure will leave behind an incorrect state.

This change separates the memory sizing + allocation for the
Rx poll and WRR array from calculation of the WRR sequence.
If there is a memory allocation failure, existing Rx queue
configuration remains unchanged.

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
6 years agoeventdev: standardize Rx adapter internal function names
Nikhil Rao [Mon, 2 Jul 2018 09:11:10 +0000 (14:41 +0530)]
eventdev: standardize Rx adapter internal function names

Add a common prefix to function names and rename
few to better match functionality

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agoevent/sw: support device stop flush callback
Gage Eads [Thu, 21 Jun 2018 14:23:23 +0000 (09:23 -0500)]
event/sw: support device stop flush callback

This commit also adds a flush callback test to the sw eventdev's selftest
suite.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
6 years agoservice: add mechanism for quiescing
Gage Eads [Thu, 21 Jun 2018 14:23:22 +0000 (09:23 -0500)]
service: add mechanism for quiescing

Existing service functions allow us to stop a service, but doing so doesn't
guarantee that the service has finished running on a service core. This
commit introduces rte_service_may_be_active(), which returns whether the
service may be executing on one or more lcores currently, or definitely is
not.

The service core layer supports this function by setting a flag when
a service core is going to execute a service, and unsetting the flag when
the core is no longer able to run the service (its runstate becomes stopped
or the lcore is no longer mapped).

With this new function, applications can set a service's runstate to
stopped, then poll rte_service_may_be_active() until it returns false. At
that point, the service is quiesced.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
6 years agoevent/octeontx: fix flush callback
Pavan Nikhilesh [Fri, 15 Jun 2018 05:44:06 +0000 (11:14 +0530)]
event/octeontx: fix flush callback

When event queues are being flushed the getwork operation used to extract
events should be a grouped getwork operation to the specific event queue.

Fixes: 8384f0e039ea ("event/octeontx: support device stop flush callback")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agoeventdev: include PCI devices when getting id from name
Pavan Nikhilesh [Fri, 15 Jun 2018 03:45:24 +0000 (09:15 +0530)]
eventdev: include PCI devices when getting id from name

Currently, rte_event_dev_get_dev_id works only for virtual devices(vdev)
update the function to include devices probed through pci.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agoremove useless constructor headers
Thomas Monjalon [Mon, 18 Jun 2018 12:32:21 +0000 (14:32 +0200)]
remove useless constructor headers

A constructor is usually declared with RTE_INIT* macros.
As it is a static function, no need to declare before its definition.
The macro is used directly in the function definition.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: add UDP/IPv4 GSO in guides
Jiayu Hu [Fri, 6 Jul 2018 01:02:24 +0000 (09:02 +0800)]
doc: add UDP/IPv4 GSO in guides

This patch updates the programmer guide and testpmd user guide for
UDP/IPv4 GSO.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
6 years agoapp/testpmd: enable UDP GSO in csum engine
Jiayu Hu [Fri, 6 Jul 2018 01:02:23 +0000 (09:02 +0800)]
app/testpmd: enable UDP GSO in csum engine

This patch enables GSO for UDP/IPv4 packets. Oversized UDP/IPv4
packets transmitted over a GSO-enabled port will undergo segmentation.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Tested-by: Yuwei Zhang <yuwei1.zhang@intel.com>
6 years agogso: support UDP/IPv4 fragmentation
Jiayu Hu [Fri, 6 Jul 2018 01:02:22 +0000 (09:02 +0800)]
gso: support UDP/IPv4 fragmentation

This patch adds GSO support for UDP/IPv4 packets. Supported packets
may include a single VLAN tag. UDP/IPv4 GSO doesn't check if input
packets have correct checksums, and doesn't update checksums for
output packets (the responsibility for this lies with the application).
Additionally, UDP/IPv4 GSO doesn't process IP fragmented packets.

UDP/IPv4 GSO uses two chained MBUFs, one direct MBUF and one indrect
MBUF, to organize an output packet. The direct MBUF stores the packet
header, while the indirect mbuf simply points to a location within the
original packet's payload. Consequently, use of UDP GSO requires
multi-segment MBUF support in the TX functions of the NIC driver.

If a packet is GSO'd, UDP/IPv4 GSO reduces its MBUF refcnt by 1. As a
result, when all of its GSOed segments are freed, the packet is freed
automatically.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
6 years agoservice: add attribute API
Erik Gabriel Carrillo [Wed, 9 May 2018 16:22:16 +0000 (11:22 -0500)]
service: add attribute API

Add APIs that allow an application to query and reset the attributes of
a service lcore.  Add one such new attribute, "loops", which is a
counter that tracks the number of times the service core has looped in
the service runner function.  This is useful to applications that desire
a "liveness" check to make sure a service core is not stuck.

Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
6 years agodoc: add default that all fixes should be backported
Kevin Traynor [Fri, 29 Jun 2018 23:10:43 +0000 (00:10 +0100)]
doc: add default that all fixes should be backported

Set the starting point that all commits on master branch
with Fixes tag should be backported to relevant stable/LTS
branches, and explain that the submitter may indicate it is
not suitable for backport.

Of course there will be exceptions that will crop up from time
to time that need discussion, so also add a sentence for that.

This is to ensure that there is consistency between what is
backported to stable/LTS branches, remove some subjectivity
as to what constitutes "a fix" and avoid possible conflicts
for future backports.

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodevtools: expand meson cross compiling test coverage
Gavin Hu [Fri, 29 Jun 2018 17:27:38 +0000 (01:27 +0800)]
devtools: expand meson cross compiling test coverage

The default test script covers only default host cc compiler, either gcc or
clang, the fix is to increase the coverage by adding one more to cover
clang and the others for gcc.

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agobuild: fix for host clang and cross gcc
Gavin Hu [Fri, 29 Jun 2018 17:27:37 +0000 (01:27 +0800)]
build: fix for host clang and cross gcc

The following error hits if host cc compiler is clang(default one in most
linux distributions) and the cross compiler is gcc.

The root cause is: the hybride compilers add the warning options to the
meson project as project arguments, which apply for both host compiling and
cross compiling. But some options such as '-Wno-format-truncation' are not
supported nor recognized by clang, so they have to be removed from the
project arguments for the host compiler to run smoothily and added back as
cflags for the cross compiler to compile for cross source files.

The fix is remove unrecognized warning options from the meson project
arguments shared by gcc and clang, as add them specifically for gcc or
clang as cflags.

[265/893] Compiling C object
'buildtools/pmdinfogen/pmdinfogen@exe/pmdinfogen.c.o'.  warning: unknown
warning option '-Wno-format-truncation' [-Wunknown-warning-option]

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agodevtools: fix ninja command in build test
Gavin Hu [Fri, 29 Jun 2018 17:27:36 +0000 (01:27 +0800)]
devtools: fix ninja command in build test

On some linux distributions, eg: CentOS, the ninja executable has a
different name: ninja-build, this patch is to check and adapt to it
accordingly.

./devtools/test-meson-builds.sh: line 24: ninja: command not found

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agobuild: fix meson warning
Gavin Hu [Fri, 29 Jun 2018 17:27:35 +0000 (01:27 +0800)]
build: fix meson warning

This is to fix the unnecessary warning output, it is not consistent with
the configurations of other platforms.

WARNING: Cross file does not specify strip binary, result will not be
stripped.

Fixes: e53a5299d2 ("build: support vendor specific ARM cross builds")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
6 years agodoc: add cross compiling guide
Gavin Hu [Fri, 29 Jun 2018 17:27:34 +0000 (01:27 +0800)]
doc: add cross compiling guide

This is the guide for cross compiling ARM64 DPDK from X86 hosts.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agomk: fix cross build
Gavin Hu [Fri, 29 Jun 2018 17:27:33 +0000 (01:27 +0800)]
mk: fix cross build

The "-Wimplicit-fallthrough=2" option was introduced into gcc 7.0, it was
enabled when the cross compiler gcc is greater than 7.0, but for the host
side buildtools/pmdinfogen, if the native gcc is older than 7.0, or the
host cc compiler is clang, it should not be enabled.

The fix is to differentiate the host gcc Werror options from the cross gcc.

gcc -Wp,-MD,./.pmdinfogen.o.d.tmp  -W -Wall -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wold-style-definition
-Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual
-Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Wdeprecated
-Werror -Wimplicit-fallthrough=2 -Dbbb -Wno-format-truncation -g
-I/dpdk/build/include    -o pmdinfogen.o -c
~/dpdk/buildtools/pmdinfogen/pmdinfogen.c gcc: error:
unrecognized command line option ‘-Wimplicit-fallthrough=2’

Fixes: ced3e6f8 ("mk: adjust gcc flags for new gcc 7 warnings")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoexamples/multi_process: build l2fwd_fork app
Emma Kenny [Tue, 3 Jul 2018 16:16:45 +0000 (17:16 +0100)]
examples/multi_process: build l2fwd_fork app

l2fwd_fork is not complied by default, this will make it compile

Fixes: 95e8005a56e8 ("examples/l2fwd_fork: new app")

Signed-off-by: Emma Kenny <emma.kenny@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoexamples/multi_process: fix build
Emma Kenny [Mon, 2 Jul 2018 15:40:21 +0000 (16:40 +0100)]
examples/multi_process: fix build

Fix bug with undeclared variable name and
calling a variable that is not member of struct.

CC main.o
l2fwd_fork/main.c:  In function ‘main’: l2fwd_fork/main.c:1043:33:
 error: ‘dev_info’ undeclared (first use in this function)
 rte_eth_dev_info_get(portid, &dev_info);

l2fwd_fork/main.c:1043:33: note: each undeclared identifier is
reported only once for each function it appears in
l2fwd_fork/main.c:1077:11: error: ‘struct rte_eth_txconf’
has no member named ‘tx_offloads’
   txq_conf.tx_offloads = local_port_conf.txmode.offloads;

Fixes: f8c02ca878af ("examples/multi_process: convert to new ethdev offloads API")
Cc: stable@dpdk.org
Signed-off-by: Emma Kenny <emma.kenny@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agomaintainers: update for Mellanox PMDs
Adrien Mazarguil [Thu, 5 Jul 2018 09:19:46 +0000 (11:19 +0200)]
maintainers: update for Mellanox PMDs

Shahaf and Matan volunteered to replace Nélio and myself as maintainers for
mlx4 and mlx5 PMDs. Cheers!

Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
6 years agomaintainers: update for mempool
Olivier Matz [Mon, 2 Jul 2018 15:55:35 +0000 (17:55 +0200)]
maintainers: update for mempool

Given its very good contributions to this library, add Andrew as
official maintainer for librte_mempool.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agoigb_uio: fix build with lock down checks
David Marchand [Fri, 29 Jun 2018 10:13:57 +0000 (12:13 +0200)]
igb_uio: fix build with lock down checks

Caught on ubuntu-16.04 with hwe kernel for aarch64:

$ uname -a
Linux ubuntu1604arm64es 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May
17 13:08:01 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

== Build kernel/linux/igb_uio
  CC [M] .../kernel/linux/igb_uio/igb_uio.o
In file included from .../kernel/linux/igb_uio/igb_uio.c:20:0:
.../igb_uio/compat.h: In function ‘igbuio_kernel_is_locked_down’:
.../igb_uio/compat.h:146:7:
error: "CONFIG_EFI_SECURE_BOOT_LOCK_DOWN" is not defined [-Werror=undef]
 #elif CONFIG_EFI_SECURE_BOOT_LOCK_DOWN
       ^
cc1: all warnings being treated as errors

Fixes: d67014c3d38b ("igb_uio: fail and log if kernel lock down is enabled")

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agotest/crypto: add DH and DSA tests
Sunila Sahu [Tue, 10 Jul 2018 16:01:31 +0000 (21:31 +0530)]
test/crypto: add DH and DSA tests

Test application include test case for :
- Diffie-Hellman  key pair generation and shared secret compute
- DSA sign and verify

Test cases uses predefined test vectors.

Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agotest/crypto: add RSA and Mod tests
Sunila Sahu [Tue, 10 Jul 2018 16:01:30 +0000 (21:31 +0530)]
test/crypto: add RSA and Mod tests

Test application include test case for :
- RSA encrypt, decrypt, sign and verify
- Modular Inversion and Exponentiation

Test cases uses predefined test vectors.

Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agodoc: add asymmetric crypto in programmer guide
Shally Verma [Tue, 10 Jul 2018 15:33:21 +0000 (21:03 +0530)]
doc: add asymmetric crypto in programmer guide

Update cryptodev programmer guide with description of
asymmetric crypto framework in lib cryptodev.

Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: add asymmetric capability
Sunila Sahu [Tue, 10 Jul 2018 15:33:20 +0000 (21:03 +0530)]
cryptodev: add asymmetric capability

Extend cryptodev with asymmetric capability APIs and
definitions.

Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: support asymmetric operations
Ashish Gupta [Tue, 10 Jul 2018 15:33:19 +0000 (21:03 +0530)]
cryptodev: support asymmetric operations

Extend DPDK librte_cryptodev to:
- define asym op type in rte_crypto_op_type and associated
  op pool create/alloc APIs
- define asym session and associated session APIs

If PMD shows in its feature flag that it supports both sym and
asym then it must support those on all its qps.

Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: add asymmetric xform and op definitions
Umesh Kartha [Tue, 10 Jul 2018 15:33:18 +0000 (21:03 +0530)]
cryptodev: add asymmetric xform and op definitions

Add rte_crypto_asym.h with supported xforms
and associated op structures and APIs

API currently supports:
- RSA Encrypt, Decrypt, Sign and Verify
- Modular Exponentiation and Inversion
- DSA Sign and Verify
- Diffie-Hellman private key exchange
- Diffie-Hellman public key exchange
- Diffie-Hellman shared secret compute
- Diffie-Hellman public/private key pair generation
using xform chain

Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
Signed-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/scheduler: add minimum head/tailroom requirement
Anoob Joseph [Tue, 10 Jul 2018 14:42:40 +0000 (20:12 +0530)]
crypto/scheduler: add minimum head/tailroom requirement

Minimum head/tailroom requirement for each PMD has to be considered
while populating the dev_info.

Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agotest/crypto: skip validation of head/tailroom used by PMD
Anoob Joseph [Tue, 10 Jul 2018 14:42:39 +0000 (20:12 +0530)]
test/crypto: skip validation of head/tailroom used by PMD

Crypto PMDs would specify the head/tailroom it would use while
processing the crypto requests. This need to be considered while
verifying buffers processed by crypto PMDs.

Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agoapp/crypto-perf: honour min headroom/tailroom
Anoob Joseph [Tue, 10 Jul 2018 14:42:38 +0000 (20:12 +0530)]
app/crypto-perf: honour min headroom/tailroom

Crypto dev would specify its headroom and tailroom requirement and the
application is expected to honour this while creating buffers.

Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: add min headroom and tailroom requirement
Anoob Joseph [Tue, 10 Jul 2018 14:42:37 +0000 (20:12 +0530)]
cryptodev: add min headroom and tailroom requirement

Enabling crypto devs to specify the minimum headroom and tailroom it
expects in the mbuf. For net PMDs, standard headroom has to be honoured
by applications, which is not strictly followed for crypto devs. This
prevents crypto devs from using free space in mbuf (available as
head/tailroom) for internal requirements in crypto operations. Addition
of head/tailroom requirement will help PMDs to communicate such
requirements to the application.

The availability and use of head/tailroom is an optimization if the
hardware supports use of head/tailroom for crypto-op info. For devices
that do not support using the head/tailroom, they can continue to operate
without any performance-drop.

Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: rename experimental private data APIs
Fiona Trahe [Fri, 6 Jul 2018 13:39:42 +0000 (14:39 +0100)]
cryptodev: rename experimental private data APIs

The name private_data is confusing in these APIs:
rte_cryptodev_sym_session_set_private_data()
rte_cryptodev_sym_session_get_private_data()
It refers to data added at the end of the session hdr for
use by the application.
The session already contains sess_private_data[index]
which is used to store private pmd data and most references to private
data refer to that.
e.g. external apis
rte_cryptodev_sym_get_private_session_size() and internal
set/get_session_private_data() refer to sess_private_data[].

So rename to user_data, i.e.
rte_cryptodev_sym_session_set_user_data()
rte_cryptodev_sym_session_get_user_data()

Refers to changes introduced here:
https://patches.dpdk.org/patch/38172/

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
6 years agocryptodev: check if symmetric sessions are supported
Pablo de Lara [Thu, 5 Jul 2018 02:08:05 +0000 (03:08 +0100)]
cryptodev: check if symmetric sessions are supported

Since asymmetric functionality will be implemented soon,
not all PMDs must support symmetric sessions.
Therefore, a check is added if a device does not implement
the symmetric functions, meaning that the device does not
support symmetric operations.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: rename PMD symmetric session API
Pablo de Lara [Thu, 5 Jul 2018 02:08:04 +0000 (03:08 +0100)]
cryptodev: rename PMD symmetric session API

The PMD specific API to configure, clear and
obtain session private size is renamed, including
the word _sym_ to clarify that it is API
for symmetric sessions, so there will not be any
conflicts for asymmetric and other type of sessions
in the future.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: remove attach/detach session API
Pablo de Lara [Thu, 5 Jul 2018 02:08:03 +0000 (03:08 +0100)]
cryptodev: remove attach/detach session API

As announced in the previous release,
The API to attach/dettach a session to a queue pair
is removed, as it was only used in DPAA, and it is not
actually needed.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: replace mbuf scatter gather flag
Pablo de Lara [Thu, 5 Jul 2018 02:08:02 +0000 (03:08 +0100)]
cryptodev: replace mbuf scatter gather flag

The current mbuf scatter gatter feature flag is
too ambiguous, as it is not clear if input and/or output
buffers can be scatter gather mbufs or not, plus
if in-place and/or out-of-place is supported.

Therefore, five new flags will replace this flag:
- RTE_CRYPTODEV_FF_IN_PLACE_SGL
- RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT
- RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT
- RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT
- RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: remove old get session size functions
Pablo de Lara [Thu, 5 Jul 2018 02:08:01 +0000 (03:08 +0100)]
cryptodev: remove old get session size functions

Removed rte_cryptodev_get_header_session_size
and rte_cryptodev_get_private_session_size functions,
as they have been substituted with functions
specific for symmetric operations, with _sym_ word
after "rte_cryptodev_".

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: remove queue start/stop functions
Pablo de Lara [Thu, 5 Jul 2018 02:08:00 +0000 (03:08 +0100)]
cryptodev: remove queue start/stop functions

Removed cryptodev queue start/stop functions,
as they were marked deprecated in 18.05, since they
were not implemented by any driver.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agodoc: remove unneeded deprecation notice
Pablo de Lara [Thu, 5 Jul 2018 02:07:59 +0000 (03:07 +0100)]
doc: remove unneeded deprecation notice

In release 18.05, a deprecation notice to remove the `sym`
structure in the cryptodev info structure was sent.
However, only one of the fields inside the structure will
be removed, so the notice is not actually correct.
In any case, it needs to be removed.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: remove max number of sessions parameter
Pablo de Lara [Thu, 5 Jul 2018 02:07:58 +0000 (03:07 +0100)]
cryptodev: remove max number of sessions parameter

Most crypto PMDs do not have a limitation
of the number of the sessions that can be handled
internally. The value that was set before was not
actually used at all, since the sessions are created
at the application level.
Therefore, this value is not parsed from the initial
crypto parameters anymore and it is set to 0,
meaning that there is no actual limit.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: define value for unlimited sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:57 +0000 (03:07 +0100)]
cryptodev: define value for unlimited sessions

Currently, the info structure contains the maximum number
of sessions that a device can manage.
This field was useful when the session mempool was created inside
each device, but now it is created at the application level.

Most PMDs do not have a limitation on the sessions managed,
but a few do, therefore this field must remain in the structure.
However, a new value, 0, can be used to indicate that
a device does not have an actual maximum of sessions.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocrypto/mvsam: parse max number of sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:56 +0000 (03:07 +0100)]
crypto/mvsam: parse max number of sessions

The maximum number of sessions device argument will be removed,
as most PMDs do not have a limitation on this number.
Therefore, the MVSAM PMD needs to parse this value internally.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Tomasz Duszynski <tdu@semihalf.com>
6 years agoexamples/ipsec-secgw: check for max supported sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:55 +0000 (03:07 +0100)]
examples/ipsec-secgw: check for max supported sessions

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agoexamples/l2fwd-crypto: limit number of sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:54 +0000 (03:07 +0100)]
examples/l2fwd-crypto: limit number of sessions

Calculate the number of sessions required for the application,
knowing that there is only one session required per device.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agotest/crypto: limit number of sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:53 +0000 (03:07 +0100)]
test/crypto: limit number of sessions

Instead of using the maximum number of sessions
allowed by the PMDs (which will change to unlimited most
of the PMDs), limit the number to a small sufficient amount.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agoapp/crypto-perf: limit number of sessions
Pablo de Lara [Thu, 5 Jul 2018 02:07:52 +0000 (03:07 +0100)]
app/crypto-perf: limit number of sessions

Instead of creating a fixed number of sessions,
calculate the necessary number based on number of devices
and queue pairs used.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: remove max number of sessions per queue
Pablo de Lara [Thu, 5 Jul 2018 02:07:51 +0000 (03:07 +0100)]
cryptodev: remove max number of sessions per queue

The cryptodev info structure currently contains
the maximum number of sessions that can be used in a queue pair.
This is only set in DPAA_SEC PMD, and since it is calculated
based on the maximum number of sessions (which is not used
anymore), this field can be removed.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocryptodev: replace bus specific struct with generic dev
Pablo de Lara [Thu, 5 Jul 2018 02:07:50 +0000 (03:07 +0100)]
cryptodev: replace bus specific struct with generic dev

Structure rte_cryptodev_info has currently PCI device
information ("struct rte_pci_device") in it.

This information is not generic to all devices,
so this gets replaced with the generic "rte_device" structure,
compatible with all crypto devices.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocompressdev: add huffman encoding flags
Pablo de Lara [Fri, 6 Jul 2018 05:28:01 +0000 (06:28 +0100)]
compressdev: add huffman encoding flags

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>
6 years agocompressdev: replace mbuf scatter gather flag
Pablo de Lara [Fri, 6 Jul 2018 05:28:00 +0000 (06:28 +0100)]
compressdev: replace mbuf scatter gather flag

The current mbuf scatter gather feature flag is
too ambiguous, as it is not clear if input and/or output
buffers can be scatter gather mbufs or not.

Therefore, three new flags will replace this flag:
- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
- RTE_COMP_FF_OOP_LB_IN_SGL_OUT

Note that out-of-place flat buffers is supported by default
and in-place is not supported by the library.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>
6 years agodoc: rename compress feature flag
Pablo de Lara [Fri, 6 Jul 2018 05:27:59 +0000 (06:27 +0100)]
doc: rename compress feature flag

Renamed feature "Bypass" to "Pass-through",
as it is a more explicit name, meaning that the PMD
is capable of passing the mbufs through it,
without making any modifications (i.e.. NULL algorithm).

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>
6 years agodoc: cleanup ISA-L PMD feature matrix
Pablo de Lara [Fri, 6 Jul 2018 05:27:58 +0000 (06:27 +0100)]
doc: cleanup ISA-L PMD feature matrix

In PMD feature matrices (.ini files), it is not required to
have the list of features that are not supported,
just the ones that are.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Lee Daly <lee.daly@intel.com>
6 years agotest/crypto: fix device id when stopping port
Hemant Agrawal [Wed, 4 Jul 2018 09:49:38 +0000 (15:19 +0530)]
test/crypto: fix device id when stopping port

dev_id is valid, while ts_params->valid_devs[devid] may
result a different value in case multiple devices are present
and any of the device is being used.

Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/snow3g: add dynamic logging
Pablo de Lara [Tue, 3 Jul 2018 04:37:22 +0000 (05:37 +0100)]
crypto/snow3g: add dynamic logging

Registered new dynamic logtype for driver and
replaced SNOW3G_LOG_ERR and CDEV_LOG_ERR
with the new SNOW3G_LOG macro, which uses the new logtype.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agosecurity: fix crash on destroy null session
Radu Nicolau [Thu, 5 Jul 2018 10:04:42 +0000 (11:04 +0100)]
security: fix crash on destroy null session

rte_security_session_destroy should return -EINVAL if session is NULL,
but segfaults because of rte_mempool_from_obj(NULL) call.

Fixes: c261d1431bd8 ("security: introduce security API and framework")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocrypto/virtio: fix IV physical address
Fan Zhang [Tue, 26 Jun 2018 02:10:48 +0000 (03:10 +0100)]
crypto/virtio: fix IV physical address

The physical address of IV required by Virtio was computed using
crypto operations' physical address plus the offset. However not
all crypto ops will have physical address field initialized and
compute it runtimely is costly. This patch fixes this problem by
adding iv field in virtio_crypto_op_cookie and does a memcpy of
iv instead.

Fixes: 82adb12a1fce ("crypto/virtio: support burst enqueue/dequeue")
Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Jay Zhou <jianjay.zhou@huawei.com>
6 years agocommon/qat: replace snprintf
Fiona Trahe [Mon, 2 Jul 2018 17:25:34 +0000 (18:25 +0100)]
common/qat: replace snprintf

Replaced snprintf with strlcpy for safer string copy

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
6 years agosecurity: change to SPDX license tags
Hemant Agrawal [Wed, 4 Jul 2018 07:50:52 +0000 (13:20 +0530)]
security: change to SPDX license tags

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agodoc: fix limitations for dpaa2 crypto
Hemant Agrawal [Thu, 21 Jun 2018 09:13:41 +0000 (14:43 +0530)]
doc: fix limitations for dpaa2 crypto

Fixes: 37f96eb01bce ("crypto/dpaa2_sec: support scatter gather")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agodoc: fix limitations for dpaa crypto
Hemant Agrawal [Thu, 21 Jun 2018 09:13:40 +0000 (14:43 +0530)]
doc: fix limitations for dpaa crypto

Fixes: a74af788c632 ("crypto/dpaa_sec: support scatter gather")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agocrypto/aesni_gcm: add dynamic logging
Chaitanya Babu Talluri [Thu, 28 Jun 2018 14:47:12 +0000 (15:47 +0100)]
crypto/aesni_gcm: add dynamic logging

Registered new dynamic logtype for driver and
replaced GCM_LOG_ERR and CDEV_LOG_ERR
with the new AESNI_GCM_LOG macro, which uses the new logtype.

Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/zuc: add dynamic logging
Agalya Babu RadhaKrishnan [Thu, 28 Jun 2018 14:59:43 +0000 (15:59 +0100)]
crypto/zuc: add dynamic logging

Registered new dynamic logtype for driver and
replaced ZUC_LOG_ERR and CDEV_LOG_ERR
with the new ZUC_LOG macro, which uses the new logtype.

Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/kasumi: add dynamic logging
Naga Suresh Somarowthu [Fri, 29 Jun 2018 09:47:55 +0000 (10:47 +0100)]
crypto/kasumi: add dynamic logging

Registered new dynamic logtype for driver and
replaced KASUMI_LOG_ERR and CDEV_LOG_ERR
with the new KASUMI_LOG macro, which uses the new logtype.

Signed-off-by: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/aesni_mb: add dynamic logging
Naga Suresh Somarowthu [Fri, 29 Jun 2018 09:55:08 +0000 (10:55 +0100)]
crypto/aesni_mb: add dynamic logging

Registered new dynamic logtype for driver and
replaced MB_LOG_ERR and CDEV_LOG_ERR
with the new AESNI_MB_LOG macro, which uses the new logtype.

Signed-off-by: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/null: add dynamic logging
Pallantla Poornima [Fri, 29 Jun 2018 12:29:06 +0000 (13:29 +0100)]
crypto/null: add dynamic logging

Registered new dynamic logtype for driver and
replaced NULL_CRYPTO_LOG_ERR and CDEV_LOG_ERR
with the new NULL_LOG macro, which uses the new logtype.

Signed-off-by: Pallantla Poornima <pallantlax.poornima@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/openssl: add dynamic logging
Naga Suresh Somarowthu [Fri, 29 Jun 2018 12:50:47 +0000 (13:50 +0100)]
crypto/openssl: add dynamic logging

Registered new dynamic logtype for driver and
replaced OPENSSL_LOG_ERR and CDEV_LOG_ERR macros with
new OPENSSL_LOG macro, which uses the new logtype.

Signed-off-by: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/scheduler: add dynamic logging
Hari Kumar [Fri, 29 Jun 2018 14:00:37 +0000 (15:00 +0100)]
crypto/scheduler: add dynamic logging

Registered new dynamic logtype for driver and
replaced CS_LOG_ERR and RTE_LOG macros with
new CR_SCHED macro, which uses the new logtype.

Signed-off-by: Hari Kumar <hari.kumarx.vemula@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocryptodev: remove debug compilation option
Jananee Parthasarathy [Mon, 2 Jul 2018 12:30:56 +0000 (13:30 +0100)]
cryptodev: remove debug compilation option

For cryptodev dynamic logging, conditional compilation of
debug logs is not actually required.

Signed-off-by: Jananee Parthasarathy <jananeex.m.parthasarathy@intel.com>
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agocrypto/qat: move common qat files to common dir
Tomasz Jozwiak [Mon, 2 Jul 2018 09:39:13 +0000 (11:39 +0200)]
crypto/qat: move common qat files to common dir

-  moved common qat files to common/qat dir.
  -  changed common/qat/Makefile, common/qat/meson.build,
     drivers/Makefile, crypto/Makefile
     to add possibility of using new files locations
  -  added README file into crypto/qat to clarify where
     the build is made from
  -  updated MAINTAINERS file

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agocrypto/qat: re-organise build file content
Tomasz Jozwiak [Mon, 2 Jul 2018 09:39:12 +0000 (11:39 +0200)]
crypto/qat: re-organise build file content

This patch groups sources and related dependencies into
common and sym sections in build files.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agocrypto/qat: add weak functions
Tomasz Jozwiak [Mon, 2 Jul 2018 09:39:11 +0000 (11:39 +0200)]
crypto/qat: add weak functions

This patch adds following weak functions to facilitate conditional
compilation of code for those services:
  -  qat_sym_dev_create
  -  qat_asym_dev_create
  -  qat_comp_dev_create
  -  qat_sym_dev_destroy
  -  qat_asym_dev_destroy
  -  qat_comp_dev_destroy
and removes unused files with empty definitions of above functions.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
6 years agovhost: add notification for packed ring
Maxime Coquelin [Fri, 6 Jul 2018 07:07:21 +0000 (09:07 +0200)]
vhost: add notification for packed ring

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add Tx support for packed ring
Maxime Coquelin [Fri, 6 Jul 2018 07:07:20 +0000 (09:07 +0200)]
vhost: add Tx support for packed ring

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add Rx support for packed ring
Maxime Coquelin [Fri, 6 Jul 2018 07:07:19 +0000 (09:07 +0200)]
vhost: add Rx support for packed ring

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add vector filling support for packed ring
Maxime Coquelin [Fri, 6 Jul 2018 07:07:18 +0000 (09:07 +0200)]
vhost: add vector filling support for packed ring

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: create descriptor mapping function
Maxime Coquelin [Fri, 6 Jul 2018 07:07:17 +0000 (09:07 +0200)]
vhost: create descriptor mapping function

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add shadow used ring support for packed rings
Maxime Coquelin [Fri, 6 Jul 2018 07:07:16 +0000 (09:07 +0200)]
vhost: add shadow used ring support for packed rings

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: append shadow used ring function names with split
Maxime Coquelin [Fri, 6 Jul 2018 07:07:15 +0000 (09:07 +0200)]
vhost: append shadow used ring function names with split

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: extract split ring handling from Rx and Tx functions
Maxime Coquelin [Fri, 6 Jul 2018 07:07:14 +0000 (09:07 +0200)]
vhost: extract split ring handling from Rx and Tx functions

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: clear batch copy index at copy time
Maxime Coquelin [Fri, 6 Jul 2018 07:07:13 +0000 (09:07 +0200)]
vhost: clear batch copy index at copy time

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: make indirect desc table copy desc type agnostic
Maxime Coquelin [Fri, 6 Jul 2018 07:07:12 +0000 (09:07 +0200)]
vhost: make indirect desc table copy desc type agnostic

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: clear shadow used table index at flush time
Maxime Coquelin [Fri, 6 Jul 2018 07:07:11 +0000 (09:07 +0200)]
vhost: clear shadow used table index at flush time

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add vring address setup for packed queues
Yuanhan Liu [Fri, 6 Jul 2018 07:07:10 +0000 (09:07 +0200)]
vhost: add vring address setup for packed queues

Add code to set up packed queues when enabled.

Signed-off-by: Yuanhan Liu <yliu@fridaylinux.org>
Signed-off-by: Jens Freimann <jfreimann@redhat.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add helpers for packed virtqueues
Jens Freimann [Fri, 6 Jul 2018 07:07:09 +0000 (09:07 +0200)]
vhost: add helpers for packed virtqueues

Add some helper functions to check descriptor flags
and check if a vring is of type packed.

Signed-off-by: Jens Freimann <jfreimann@redhat.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: add virtio packed virtqueue defines
Jens Freimann [Fri, 6 Jul 2018 07:07:08 +0000 (09:07 +0200)]
vhost: add virtio packed virtqueue defines

Signed-off-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: improve prefetching in enqueue path
Maxime Coquelin [Fri, 6 Jul 2018 07:04:49 +0000 (09:04 +0200)]
vhost: improve prefetching in enqueue path

This is an optimization to prefetch next buffer while the
current one is being processed.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: prefetch first descriptor in dequeue path
Maxime Coquelin [Fri, 6 Jul 2018 07:04:48 +0000 (09:04 +0200)]
vhost: prefetch first descriptor in dequeue path

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: improve prefetching in dequeue path
Maxime Coquelin [Fri, 6 Jul 2018 07:04:47 +0000 (09:04 +0200)]
vhost: improve prefetching in dequeue path

This is an optimization to prefetch next buffer while the
current one is being processed.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: use buffer vectors in dequeue path
Maxime Coquelin [Fri, 6 Jul 2018 07:04:46 +0000 (09:04 +0200)]
vhost: use buffer vectors in dequeue path

To ease packed ring layout integration, this patch makes
the dequeue path to re-use buffer vectors implemented for
enqueue path.

Doing this, copy_desc_to_mbuf() is now ring layout type
agnostic.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agovhost: use shadow used ring in dequeue path
Maxime Coquelin [Fri, 6 Jul 2018 07:04:45 +0000 (09:04 +0200)]
vhost: use shadow used ring in dequeue path

Relax used ring contention by reusing the shadow used
ring feature used by enqueue path.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tiwei Bie <tiwei.bie@intel.com>
6 years agodoc: update CRC feature with new offload flag
Ferruh Yigit [Wed, 4 Jul 2018 17:15:49 +0000 (18:15 +0100)]
doc: update CRC feature with new offload flag

Fixes: 3d12dceed2df ("ethdev: add new offload flag to keep CRC")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>