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>
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.
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>
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>
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>
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.
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>
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>
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.
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>
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>
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/
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Chas Williams [Wed, 4 Jul 2018 02:28:32 +0000 (22:28 -0400)]
net/bonding: do not clear active slave count
When the bond PMD is stopped, the active slave count is reset.
For 802.3ad mode this potentially leaks memory and clears state since
a second sequential activate_slave() will occur when the bond PMD is
restarted and the LSC callback is triggered while the active slave
count is 0. To fix this, don't clear the active slave count when
stopping. Only deactivate_slave() should be used to clear the slaves.
Fixes: 2efb58cbab6e ("bond: new link bonding library") Cc: stable@dpdk.org Signed-off-by: Chas Williams <chas3@att.com>
Shagun Agrawal [Fri, 29 Jun 2018 18:12:19 +0000 (23:42 +0530)]
net/cxgbe: support to offload flows to HASH region
Add interface to offload flows to HASH region. Translate internal
filter specification to requests to offload flows to HASH region.
Save the returned hash index of the offloaded flow for deletion later.
Shagun Agrawal [Fri, 29 Jun 2018 18:12:18 +0000 (23:42 +0530)]
net/cxgbe: add Compressed Local IP region
CLIP region holds destination IPv6 addresses to be matched for
corresponding flows. Query firmware for CLIP resources and allocate
table to manage them. Also update LE-TCAM to use CLIP to reduce
number of slots needed to offload IPv6 flows.
Shagun Agrawal [Fri, 29 Jun 2018 18:12:17 +0000 (23:42 +0530)]
net/cxgbe: validate flows offloaded to HASH region
Fetch supported match items in HASH region. Ensure the mask
is all set for all the supported match items to be offloaded
to HASH region. Otherwise, offload them to LE-TCAM region.
In DPDK 17.11, the ethdev offloads API has changed:
commit cba7f53b717d ("ethdev: introduce Tx queue offloads API")
commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API")
The new API is documented in the programmer's guide:
http://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html#hardware-offload
For reminder, the main concepts in the new API were:
- All offloads are disabled by default
- Distinction between per port and per queue offloads.
The transition bits are now removed:
- Translation of the old API in ethdev
- rte_eth_conf.rxmode.ignore_offload_bitfield
- ETH_TXQ_FLAGS_IGNORE
The old API bits are now removed:
- Rx per-port rte_eth_conf.rxmode.[bit-fields]
- Tx per-queue rte_eth_txconf.txq_flags
- ETH_TXQ_FLAGS_NO*
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Shahaf Shuler <shahafs@mellanox.com>