When setting up a qp in a secondary process, the local qp pointer is set
to the stored device qp, configured by the primary process for that
device, but only if that device qp is not NULL.
If the device qp was not set up correctly by the primary process and has
a NULL value, the local qp variable stays at the default initialised
value, NULL. This causes a NULL pointer dereference later in the
function when using the qp value.
This is fixed by always setting the local qp to the value of the device
qp stored, and then checking if qp is NULL, returning an error if it is.
Coverity issue: 374382 Fixes: 72a169278a56 ("crypto/ipsec_mb: support multi-process") Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Anoob Joseph [Fri, 17 Dec 2021 09:20:11 +0000 (14:50 +0530)]
crypto/cnxk: update microcode completion handling
Update microcode completion code handling to update the required mbuf &
crypto op flags. IP checksum good case is now reported by specific
microcode completion code.
Signed-off-by: Anoob Joseph <anoobj@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
crypto/cnxk: add per packet IV in lookaside IPsec debug
For cn9k, use HW GEN IV as default and add per pkt IV
in lookaside IPsec debug mode. Debug mode helps to verify
lookaside PMD using known outbound vectors in lookaside
autotest.
Anoob Joseph [Fri, 17 Dec 2021 09:20:05 +0000 (14:50 +0530)]
crypto/cnxk: fix extend tail calculation
If the packet size to be incremented after IPsec processing is less
than size of hdr (size incremented before submitting), then extend_tail
can become negative. Allow negative values for the variable.
Anoob Joseph [Fri, 17 Dec 2021 09:20:00 +0000 (14:50 +0530)]
crypto/cnxk: handle null chained ops
Verification doesn't cover cases when NULL auth/cipher is provided as a
chain. Removed the separate function for verification and added a
replacement function which calls the appropriate downstream functions.
Signed-off-by: Anoob Joseph <anoobj@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
Anoob Joseph [Fri, 17 Dec 2021 09:19:55 +0000 (14:49 +0530)]
crypto/cnxk: account for CPT CTX updates and flush delays
CPT CTX write with microcode would require CPT flush to complete to have
DRAM updated with the SA. Since datapath requires SA direction field,
introduce a new flag for the same.
Session destroy path is also updated to clear sa.valid bit using CTX
reload operation.
Session is updated with marker to differentiate s/w immutable and s/w
mutable portions.
Signed-off-by: Anoob Joseph <anoobj@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
Pavan Nikhilesh [Mon, 13 Dec 2021 20:54:23 +0000 (02:24 +0530)]
common/cnxk: add workaround for vWQE flush
Due to an errata writing to vWQE flush register might hang NIX.
Add workaround for vWQE flush hang by waiting for the max
coalescing timeout to flush out any pending vWQEs.
Fixes: ee48f711f3b0 ("common/cnxk: support NIX inline inbound and outbound setup") Cc: stable@dpdk.org Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Nipun Gupta [Tue, 11 Jan 2022 05:05:46 +0000 (10:35 +0530)]
examples/l3fwd: fix Rx burst size for event mode
While dequeuing the packets from the event device, burst size
is provided in the API. This was not getting properly
configured in the application. This patch correctly configures
the burst size.
Fixes: aaf58cb85b62 ("examples/l3fwd: add event port and queue setup") Cc: stable@dpdk.org Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> Acked-by: Sunil Kumar Kori <skori@marvell.com>
Pavan Nikhilesh [Mon, 13 Dec 2021 08:31:43 +0000 (14:01 +0530)]
eventdev/eth_rx: fix missing internal port checks
When event delivery is through internal port, stats are maintained
by HW and we should avoid reading SW data structures for stats.
Fix missing internal port checks.
Rashmi Shetty [Tue, 7 Dec 2021 23:01:51 +0000 (17:01 -0600)]
doc: fix dlb2 guide
Number of direct credits, atomic inflight and history list are
updated to DLB2.0 supported sizes. As DLB2.0 does not provide
dev arg to override the default per-queue atomic inflight
allocation, it is removed from the documentation.
Fixes: f3cad285bb88 ("event/dlb2: add infos get and configure") Cc: stable@dpdk.org Signed-off-by: Rashmi Shetty <rashmi.shetty@intel.com> Reviewed-by: Timothy McDaniel <timothy.mcdaniel@intel.com>
David Marchand [Thu, 20 Jan 2022 10:54:21 +0000 (11:54 +0100)]
build: remove custom dependency checks in drivers
Some drivers currently have their own checks and give some non
consistent reasons when an internal dependency is unavailable.
drivers/meson.build also checks for internal dependencies via 'deps'.
Let's rely on it for consistency, and smaller code.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Long Li <longli@microsoft.com>
Bruce Richardson [Wed, 19 Jan 2022 18:10:01 +0000 (18:10 +0000)]
build: make "packet framework" optional
Add port, table and pipeline libraries - collectively often known as
the "packet framework" - to the list of optional libraries, and
ensure tests can build with them disabled.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: David Marchand <david.marchand@redhat.com>
Bruce Richardson [Wed, 19 Jan 2022 18:09:58 +0000 (18:09 +0000)]
test: link against all enabled libs
Rather than maintaining a list of the libraries the unit tests need, and
having to conditionally include/omit optional libs from the list, we can
just link against all available libraries, simplifying the code
considerably.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: David Marchand <david.marchand@redhat.com>
Bruce Richardson [Wed, 19 Jan 2022 18:09:57 +0000 (18:09 +0000)]
build: allow recursive disabling of libraries
Align the code in lib/meson.build with that in drivers/meson.build to
enable recursive disabling of libraries, i.e. if library b depends on
library a, disable library b if a is disabled (either explicitly or
implicitly). This allows libraries to be optional even if other DPDK
libs depend on them, something that was not previously possible.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: David Marchand <david.marchand@redhat.com>
Ruifeng Wang [Thu, 20 Jan 2022 02:38:00 +0000 (10:38 +0800)]
config: add arch define for Arm
As per design document, RTE_ARCH is the name of the architecture.
However, the definition was missing on Arm with meson build.
It impacts applications that refers to this string.
Added for Arm builds.
Fixes: b1d48c41189a ("build: support ARM with meson") Cc: stable@dpdk.org Reported-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Bruce Richardson [Tue, 11 Jan 2022 13:41:04 +0000 (13:41 +0000)]
dma/idxd: fix wrap-around in burst capacity calculation
The burst capacity calculation code assumes that the write and read
(i.e. ids_returned) values both wrap at the ring-size, but the read
value instead wraps as UINT16_MAX. Therefore, instead of just adding
ring-size to the write value in case the read is greater, we need to
just always mask the result to ensure a correct, in-range, value.
Fixes: 9459de4edc99 ("dma/idxd: add burst capacity") Cc: stable@dpdk.org Reported-by: Sunil Pai G <sunil.pai.g@intel.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
Bruce Richardson [Tue, 11 Jan 2022 13:41:03 +0000 (13:41 +0000)]
dma/idxd: fix paths to driver sysfs directory
Recent kernel changes[1][2] mean that we cannot guarantee that the paths
in sysfs used for creating/binding a DSA or workqueue instance will be
as given in the utility script, since they are now "compatibility-mode
only". Update script to support both new paths and compatibility ones.
Fixes: 01863b9d2354 ("raw/ioat: include example configuration script") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
Bruce Richardson [Tue, 11 Jan 2022 13:41:02 +0000 (13:41 +0000)]
dma/idxd: fix burst capacity calculation
When the maximum burst size supported by HW is less than the available
ring space, incorrect capacity was returned when there was already some
jobs queued up for submission. This was because the capacity calculation
failed to subtract the number of already-enqueued jobs from the max
burst size. After subtraction is done, ensure that any negative values
(which should never occur if the user respects the reported limits), are
clamped to zero.
Fixes: 9459de4edc99 ("dma/idxd: add burst capacity") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Kevin Laatz <kevin.laatz@intel.com> Tested-by: Jiayu Hu <jiayu.hu@intel.com>
Bruce Richardson [Thu, 16 Dec 2021 15:21:07 +0000 (15:21 +0000)]
eal: add OS defines for C conditional checks
Define a set of macros in the build configuration to allow C runtime
code to check the current OS environment. This saves the user having to
use ifdefs for e.g. disabling particular tests on Windows.
See included documentation changes for usage examples.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Ferruh Yigit [Mon, 1 Nov 2021 13:35:32 +0000 (13:35 +0000)]
devtools: remove ugly workaround from get maintainer
Linux kernel 'get_maintainer.pl' script supports running out of Linux
tree since commit 31bb82c9caa9 ("get_maintainer: allow usage outside of kernel tree")
As commit is a few years old now, integrating it to DPDK and removing
ugly workaround for it.
Bruce Richardson [Wed, 22 Dec 2021 15:18:55 +0000 (15:18 +0000)]
doc: remove dependency on findutils on FreeBSD
Standard "find" on BSD does not support the "-printf" so gfind from
findutils package was used to enable full doc builds. We can remove this
extra dependency by using "sed" and "tr" to adjust the output from
regular find instead.
Fixes: 8260f4f98cfe ("mk: use script to generate examples.dox") Fixes: 499fe9dfcfc7 ("doc: add dependency on examples for API doxygen") Fixes: 897e55c8d27f ("doc: fix Doxygen examples build on FreeBSD") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Python 3.5 subprocess.run() does not have a capture_output
parameter (it is present only in 3.7 and up).
Capture output by using subprocess.PIPE for stdout instead.
Jerin Jacob [Sat, 11 Dec 2021 09:04:35 +0000 (14:34 +0530)]
drivers: remove octeontx2 drivers
As per the deprecation notice, In the view of enabling unified driver
for octeontx2(cn9k)/octeontx3(cn10k), removing drivers/octeontx2
drivers and replace with drivers/cnxk/ which
supports both octeontx2(cn9k) and octeontx3(cn10k) SoCs.
This patch does the following
- Replace drivers/common/octeontx2/ with drivers/common/cnxk/
- Replace drivers/mempool/octeontx2/ with drivers/mempool/cnxk/
- Replace drivers/net/octeontx2/ with drivers/net/cnxk/
- Replace drivers/event/octeontx2/ with drivers/event/cnxk/
- Replace drivers/crypto/octeontx2/ with drivers/crypto/cnxk/
- Rename config/arm/arm64_octeontx2_linux_gcc as
config/arm/arm64_cn9k_linux_gcc
- Update the documentation and MAINTAINERS to reflect the same.
- Change the reference to OCTEONTX2 as OCTEON 9. Old release notes and
the kernel related documentation is not accounted for this change.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Akhil Goyal <gakhil@marvell.com> Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
Kevin Traynor [Mon, 13 Dec 2021 16:48:58 +0000 (16:48 +0000)]
doc: update LTS release cadence
Regular LTS releases have previously aligned to DPDK main branch
releases so that fixes being backported have already gone through
DPDK main branch release validation.
Now that DPDK main branch has moved to 3 releases per year, the LTS
releases should continue to align with it and follow a similar release
cadence.
Update stable docs to reflect this.
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Thomas Monjalon [Tue, 11 Jan 2022 11:35:44 +0000 (12:35 +0100)]
doc: replace deprecated distutils version parsing
When using Python 3.10, this warning appears:
DeprecationWarning: The distutils package is deprecated
and slated for removal in Python 3.12.
Use setuptools or check PEP 632 for potential alternatives
The PEP 632 recommends replacing "distutils.version" with "packaging".
Bugzilla ID: 914 Cc: stable@dpdk.org Reported-by: Jerin Jacob <jerinj@marvell.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Tested-by: Jerin Jacob <jerinj@marvell.com>
ethdev: announce migration to generic flow modify action
The generic RTE_FLOW_ACTION_TYPE_MODIFY_FIELD action was
introduced by [1]. This action provides an unified way
to perform various arithmetic and transfer operations over
packet network header fields and packet metadata.
The VLAN set actions are interrelated to VLAN header insertion/removal
and supported by multiple PMDs and widely used by applications and
not supposed to be deprecated due to potential large impact on
drivers and applications.
Aman Singh [Tue, 23 Nov 2021 08:47:19 +0000 (14:17 +0530)]
devtools/cocci: add script for ethdev namespace change
The cocci script is to help add prefix 'RTE_ETH' namespace to enum
& macro of ethdev library. It helps in automating these changes for
applications. The script won't make changes in the code comment part.
Usage: spatch <script path> <app path>
Signed-off-by: Aman Singh <aman.deep.singh@intel.com> Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Aaron Conole [Fri, 15 Oct 2021 17:06:04 +0000 (13:06 -0400)]
doc: add a guide for developing unit tests
The DPDK testing infrastructure includes a comprehensive set of
libraries, utilities, and CI integrations for developers to test
their code changes. This isn't well documented, however.
Document the basics for adding a test suite to the infrastructure
and enabling that test suite for continuous integration platforms
so that newer developers can understand how to develop test suites
and test cases.
Signed-off-by: Aaron Conole <aconole@redhat.com> Acked-by: Ciara Power <ciara.power@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Jerin Jacob [Sat, 7 Aug 2021 08:21:08 +0000 (13:51 +0530)]
doc: add traffic metering API walk-through
Added a diagram to document meter library components
and added text for steps performed by the application to
configure the traffic meter and policing library.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Michael Baum [Thu, 25 Nov 2021 06:16:55 +0000 (08:16 +0200)]
net/mlx5: fix devargs validation for multi-class probing
The mlx5_args function reads the devargs and checks if they are valid
for this driver and if not it returns an error.
This was normal behavior as long as all the devargs come to this driver,
but since it is possible to run several drivers together, the function
may return an error for another driver's devarg even though it is
completely valid.
In addition the function does not allow the user to know which of the
devargs is incorrect, but returns an error without printing the
unknown devarg.
This patch eliminates the error return in the case of an unknown devarg,
and prints a warning for each such devarg specifically.
Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Cc: stable@dpdk.org Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
Dmitry Kozlyuk [Thu, 25 Nov 2021 20:20:44 +0000 (22:20 +0200)]
common/mlx5: fix memory region lookup on slow path
Memory region (MR) was being looked up incorrectly
for the data address of an externally-attached mbuf.
A search was attempted for the mempool of the mbuf,
while mbuf data address does not belong to this mempool
in case of externally-attached mbuf.
Only attempt the search:
1) for not externally-attached mbufs;
2) for mbufs coming from MPRQ mempool;
3) for externally-attached mbufs from mempools
with pinned external buffers.
Michael Baum [Thu, 25 Nov 2021 08:18:29 +0000 (10:18 +0200)]
compress/mlx5: fix double close of device context
The context of the device opens once in the common probe and closes with
its removal.
If the probe of one of the drivers fails, it releases its resources and
then the common closes the context.
But mistakenly in the compress probe, if there isn't enough capabilities
to support compress operations, it closes the device and then common
probe closes it again.
Remove the redundant closing from compress probe.
Fixes: 2efd26544554 ("compress/mlx5: support partial transformation") Cc: stable@dpdk.org Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>