dpdk.git
5 years agonet/ipn3ke: support TM
Rosen Xu [Tue, 16 Apr 2019 03:17:42 +0000 (11:17 +0800)]
net/ipn3ke: support TM

Add Intel FPGA Acceleration NIC IPN3KE TM of PMD driver.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Andy Pei <andy.pei@intel.com>
Signed-off-by: Dan Wei <dan.wei@intel.com>
5 years agonet/ipn3ke: add representor
Rosen Xu [Tue, 16 Apr 2019 03:17:41 +0000 (11:17 +0800)]
net/ipn3ke: add representor

Add Intel FPGA Acceleration NIC IPN3KE representor of PMD driver.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Andy Pei <andy.pei@intel.com>
Signed-off-by: Dan Wei <dan.wei@intel.com>
5 years agonet/ipn3ke: add new driver
Rosen Xu [Tue, 16 Apr 2019 03:17:40 +0000 (11:17 +0800)]
net/ipn3ke: add new driver

Add Intel FPGA Acceleration NIC IPN3KE ethdev PMD driver.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Andy Pei <andy.pei@intel.com>
Signed-off-by: Dan Wei <dan.wei@intel.com>
5 years agobus/ifpga: support AFU device search by name
Rosen Xu [Tue, 16 Apr 2019 03:17:39 +0000 (11:17 +0800)]
bus/ifpga: support AFU device search by name

In many scenarios, AFU is needed searched by name, this
function add the feature.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Andy Pei <andy.pei@intel.com>
5 years agobus/ifpga: add AFU shared data
Rosen Xu [Tue, 16 Apr 2019 03:17:38 +0000 (11:17 +0800)]
bus/ifpga: add AFU shared data

AFU can be implemented into many different acceleration
devices, these devices need shared data to store private
information when they are handled by users.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Andy Pei <andy.pei@intel.com>
5 years agonet/enetc: fix crash at high speed traffic
Gagandeep Singh [Fri, 12 Apr 2019 12:29:11 +0000 (12:29 +0000)]
net/enetc: fix crash at high speed traffic

On xmit side, there should be a check whether BD ring
has free BDs available before transmit a packet to avoid
data corruption and buffer leak issue.

Fixes: 469c6111a799 ("net/enetc: enable Rx and Tx")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: enable Rx checksum offload validation
Gagandeep Singh [Fri, 12 Apr 2019 12:29:10 +0000 (12:29 +0000)]
net/enetc: enable Rx checksum offload validation

Checksum Validation on Rx is supported.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: enable CRC offload
Gagandeep Singh [Fri, 12 Apr 2019 12:29:08 +0000 (12:29 +0000)]
net/enetc: enable CRC offload

CRC offload keep feature supported

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: enable queue start/stop
Gagandeep Singh [Fri, 12 Apr 2019 12:29:06 +0000 (12:29 +0000)]
net/enetc: enable queue start/stop

Rx and Tx queue start-stop and deferred queue start
features enabled.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: support MTU update and jumbo frames
Gagandeep Singh [Fri, 12 Apr 2019 12:29:05 +0000 (12:29 +0000)]
net/enetc: support MTU update and jumbo frames

Enable the jumbo frames and MTU update feature.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: enable promiscuous and allmulticast
Gagandeep Singh [Fri, 12 Apr 2019 12:29:03 +0000 (12:29 +0000)]
net/enetc: enable promiscuous and allmulticast

Promiscuous and allmulticast enable/disable APIs added.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: remove forward declarations
Gagandeep Singh [Fri, 12 Apr 2019 12:29:02 +0000 (12:29 +0000)]
net/enetc: remove forward declarations

Remove unneeded forward declarations and re-order the code.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: replace register read/write macros with functions
Gagandeep Singh [Fri, 12 Apr 2019 12:29:00 +0000 (12:29 +0000)]
net/enetc: replace register read/write macros with functions

Replacing read-write macros with already available
read-write functions.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: add basic statistics
Gagandeep Singh [Fri, 12 Apr 2019 12:28:59 +0000 (12:28 +0000)]
net/enetc: add basic statistics

Enable basic statistics APIs enetc_stats_get
and enetc_stats_reset.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: set interface mode for SXGMII
Gagandeep Singh [Fri, 12 Apr 2019 12:28:58 +0000 (12:28 +0000)]
net/enetc: set interface mode for SXGMII

Support for SXGMII port has been enabled. It will
depends on boot loader information passed through IERB.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: fix big endian build and buffer allocation
Gagandeep Singh [Fri, 12 Apr 2019 12:28:56 +0000 (12:28 +0000)]
net/enetc: fix big endian build and buffer allocation

There was an error at rte_constant_bswap64 while compiling
with big endian toolchain. so fixing it by adding type cast.

Also, rte_pktmbuf_alloc API should be used to allocate mbuf
instead of rte_pktmbuf_raw_alloc to avoid use of stale mbuf
information.

Fixes: 469c6111a799 ("net/enetc: enable Rx and Tx")
Cc: stable@dpdk.org
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: fix SMMU unhandled context fault
Gagandeep Singh [Fri, 12 Apr 2019 12:28:54 +0000 (12:28 +0000)]
net/enetc: fix SMMU unhandled context fault

First configure ring with BDs properly then enable
the ring.

Fixes: 469c6111a799 ("net/enetc: enable Rx and Tx")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/enetc: support physical addressing mode
Gagandeep Singh [Fri, 12 Apr 2019 12:28:53 +0000 (12:28 +0000)]
net/enetc: support physical addressing mode

Support added for physical addressing mode and
change driver flags to don't care.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
5 years agonet/ice: enable RSS for IPv4/IPv6 packets
Leyi Rong [Mon, 15 Apr 2019 06:04:05 +0000 (14:04 +0800)]
net/ice: enable RSS for IPv4/IPv6 packets

Enable RSS for general IPv4 and IPv6 packets.

Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/mlx5: fix RSS validation function
Ori Kam [Sun, 14 Apr 2019 07:05:21 +0000 (07:05 +0000)]
net/mlx5: fix RSS validation function

The RSS validation function was missing the verifcation that
if RSS is requested on inner packet, the flow must have tunnel data.

Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function")
Cc: stable@dpdk.org
Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
5 years agonet/bnx2x: fix optic module verification
Rasesh Mody [Fri, 12 Apr 2019 01:47:42 +0000 (18:47 -0700)]
net/bnx2x: fix optic module verification

Enable the optic module vendor and part number verification from driver
by setting appropriate flags. Link handling module in conjunction with
FW performs optic module verification.

Without this fix the SFP is powered down and the link doesn't come up,
if module verification is enforced in nvram setting.

Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
5 years agonet/bnx2x: fix race for periodic flags
Rasesh Mody [Fri, 12 Apr 2019 01:47:41 +0000 (18:47 -0700)]
net/bnx2x: fix race for periodic flags

The periodic callout function and the interrupt handler both modify the
periodic flags. There is a possible race condition when an application
is going through dev_stop()/dev_start() and an interrupt handler is
invoked. We also need to ensure that periodic polling is not invoked in
interrupt context.

This patch handles such case by using separate variable to check for
interrupt context. Also, atomically load and store the periodic flag
value.

Fixes: 0f6ebeee2402 ("net/bnx2x: fix call to link handling periodic function")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
5 years agonet/bnx2x: fix DMAE timeout
Shahed Shaikh [Fri, 12 Apr 2019 01:47:40 +0000 (18:47 -0700)]
net/bnx2x: fix DMAE timeout

In some cases, DPDK application may send packets
while PMD is going through load or unload flow.
This causes firmware to access invalid/unallocated
memory to process transmit buffer. Which results in
error on PCI bus and chip further blocks access to host,
causing a DMAE timeout.

Fix this issue by installing dummy empty transmit and receive
handlers at the beginning of unload path (rte_eth_dev_stop())
and install actual transmit and receive handlers after successful
load of the PMD port (rte_eth_dev_start()). This way, application
won't be able to send packets while device is going through
load/unload flow.

Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/bnx2x: fix ramrod timeout
Shahed Shaikh [Fri, 12 Apr 2019 01:47:39 +0000 (18:47 -0700)]
net/bnx2x: fix ramrod timeout

There is a race condition while processing RAMROD
completion in fast path queue through interrupt handler
and polling method.

Interrupt handler invoked from actual interrupt event
and from RAMROD processing polling flow may create a
situation where one flow will read and clear a fastpath
interrupt without actually processing the RAMROD completion.
Thus, causing a RAMROD timeout even though HW sent an
completion event.

Fix this by introducing an atomic variable which will be
set only when interrupt handler needs to process RAMROD
completion.

Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/bnx2x: fix memory leak
Shahed Shaikh [Fri, 12 Apr 2019 01:47:38 +0000 (18:47 -0700)]
net/bnx2x: fix memory leak

We allocate DMA memory but never free after using it.
Add function to free DMA memory.

Fixes: b5bf7719221d ("bnx2x: driver support routines")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agonet/bnx2x: fix MTU for jumbo frame
Rasesh Mody [Fri, 12 Apr 2019 01:47:37 +0000 (18:47 -0700)]
net/bnx2x: fix MTU for jumbo frame

Fix to update eth dev MTU for jumbo frames

Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
5 years agombuf: update Tx VLAN and QinQ flags documentation
Ferruh Yigit [Tue, 2 Apr 2019 17:09:46 +0000 (18:09 +0100)]
mbuf: update Tx VLAN and QinQ flags documentation

Currently PKT_TX_VLAN and PKT_TX_QINQ mbuf flags are documented as
they are to say packet contains VLAN or QINQ information.

Updating the definition as they are requests from application to
driver to insert VLAN or double VLAN tags into packet.

Fixes: dc6c911c9993 ("mbuf: use reserved space for double vlan")
Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
5 years agodevtools: fix meson build test for plain bourne shell
Bruce Richardson [Fri, 19 Apr 2019 12:04:49 +0000 (13:04 +0100)]
devtools: fix meson build test for plain bourne shell

The pipefail option is not supported in /bin/sh, just in bash/ksh and
similar shells - which means it's there by default on most Linux distros
but not on e.g. FreeBSD. Therefore we check for it's presence before
setting the option, and if it's missing, we upgrade verbosity level if
needed to ensure we never hide any build failures.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agotest/compress: fix missing include
Bruce Richardson [Fri, 19 Apr 2019 12:03:27 +0000 (13:03 +0100)]
test/compress: fix missing include

Build of test_compressdev.c fails on FreeBSD due to the missing
include of unistd.h, to provide the function usleep.

Fixes: b06aa643cac4 ("test/compress: add initial unit tests")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
5 years agotest/compress: fix build
Fiona Trahe [Fri, 19 Apr 2019 16:52:48 +0000 (17:52 +0100)]
test/compress: fix build

Fixed the compilation error:

app/test/test_compressdev.c:1949:11: note:
previous definition of 'i' was here
app/test/test_compressdev.c:1992:2: error:
'for' loop initial declarations are only allowed in C99 mode
app/test/test_compressdev.c:1992:2: note:
use option -std=c99 or -std=gnu99 to compile your code
app/test/test_compressdev.c:1996:19: warning:
assignment from incompatible pointer type [enabled by default]

Fixes: 355b02eedc65 ("test/compress: add max mbuf size test case")

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agokni: fix type for MAC address
Jie Pan [Wed, 10 Apr 2019 06:20:55 +0000 (14:20 +0800)]
kni: fix type for MAC address

The type for MAC address should be unsigned.

Fixes: 1cfe212ed17a ("kni: support MAC address change")
Cc: stable@dpdk.org
Signed-off-by: Jie Pan <panjie5@jd.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Rami Rosen <ramirose@gmail.com>
5 years agokni: implement header_ops parse method
Igor Ryzhov [Wed, 10 Apr 2019 10:30:03 +0000 (13:30 +0300)]
kni: implement header_ops parse method

It allows applications running packet sockets over KNI interfaces to get
source Ethernet addresses of packets received using recvfrom function.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: fix build with Linux 5.1
Ferruh Yigit [Mon, 8 Apr 2019 14:22:26 +0000 (15:22 +0100)]
kni: fix build with Linux 5.1

Build error seen with Linux kernel 5.1 and
when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.

Build error:
kernel/linux/kni/igb_main.c:2352:18:
  error: initialization of ... from incompatible pointer type ...
  [-Werror=incompatible-pointer-types]
    .ndo_fdb_add  = igb_ndo_fdb_add,
                      ^~~~~~~~~~~~~~~

ndo_fdb_add() is changed in Linux kernel version 5.1 and now requires
a new parameter, 'struct netlink_ext_ack *extack':
Linux Commit 87b0984ebfab ("net: Add extack argument to ndo_fdb_add()")

ndo_fdb_add() parameter updated with compile time Linux kernel version
check.

Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Rami Rosen <ramirose@gmail.com>
5 years agocrypto/dpaa: fix session destroy
Akhil Goyal [Wed, 17 Apr 2019 10:28:14 +0000 (15:58 +0530)]
crypto/dpaa: fix session destroy

Coverity issue: 336798
Fixes: 1f14d500bce1 ("crypto/dpaa_sec: support IPsec protocol offload")
Fixes: 0a23d4b6f4c2 ("crypto/dpaa2_sec: support protocol offload IPsec")
Cc: stable@dpdk.org
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agotest/ipsec: fix logic around dequeue burst
Bernard Iremonger [Fri, 12 Apr 2019 14:08:09 +0000 (15:08 +0100)]
test/ipsec: fix logic around dequeue burst

Added crypto_dequeue_burst() function to call
rte_crypto_dequeue_burst() in a loop with a
delay to ensure that all the  packets are
dequeued from the crypto device.

Fixes: 59d7353b0df0 ("test/ipsec: fix test suite setup")
Cc: stable@dpdk.org
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agoapp/crypto-perf: check range of socket id
Bruce Richardson [Mon, 8 Apr 2019 09:25:14 +0000 (10:25 +0100)]
app/crypto-perf: check range of socket id

The socket_id is used as an array index so should be within the range
of zero to max numa nodes. Add a range check to ensure we don't get
excessive values.

Coverity issue: 336812
Coverity issue: 336829
Fixes: 2c59bd32b70d ("cryptodev: do not create session mempool internally")
CC: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agodoc: fix missing asymmetric crypto table
Fiona Trahe [Wed, 3 Apr 2019 10:38:20 +0000 (11:38 +0100)]
doc: fix missing asymmetric crypto table

Fixes: 11e5ba72cf67 ("doc: add crypto asymmetric feature list")
Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agotest/ipsec: fix initialisation
Bernard Iremonger [Thu, 4 Apr 2019 14:51:51 +0000 (15:51 +0100)]
test/ipsec: fix initialisation

Fix xform initialisation.
Fix testsuite_setup.
Remove unused variables.

Fixes: 05fe65eb66b2 ("test/ipsec: introduce functional test")
Fixes: 59d7353b0df0 ("test/ipsec: fix test suite setup")
Cc: stable@dpdk.org
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agocompress/qat: fix dataplane return
Fiona Trahe [Mon, 8 Apr 2019 16:16:28 +0000 (17:16 +0100)]
compress/qat: fix dataplane return

Fixes: 352332744c3a ("compress/qat: add dynamic SGL allocation")
Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
5 years agotest/compress: add max mbuf size test case
Tomasz Jozwiak [Tue, 2 Apr 2019 12:16:53 +0000 (14:16 +0200)]
test/compress: add max mbuf size test case

This patch adds new test case in which max. size of
chain mbufs has been used to compress random data dynamically.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Tomasz Cel <tomaszx.cel@intel.com>
5 years agocrypto/caam_jr: fix memory leak and illegal access
Gagandeep Singh [Tue, 9 Apr 2019 06:18:38 +0000 (06:18 +0000)]
crypto/caam_jr: fix memory leak and illegal access

Opendir() returns allocated storage which must be freed at the
end of function or in case any return on error. so freeing the
allocation using closedir in an error case.

Coverity issue: 323507
Coverity issue: 325880
Fixes: e7a45f3cc245 ("crypto/caam_jr: add UIO specific operations")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/caam_jr: fix total length in auth only s/g
Gagandeep Singh [Mon, 8 Apr 2019 08:59:30 +0000 (08:59 +0000)]
crypto/caam_jr: fix total length in auth only s/g

CAAM return wrong digest value in AUTH only sg test case
because digest calculated on wrong length of data

Fixes: 71dd6b9d44e7 ("crypto/caam_jr: add scatter gather")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/caam_jr: fix shared descriptor endianness
Gagandeep Singh [Mon, 8 Apr 2019 08:59:28 +0000 (08:59 +0000)]
crypto/caam_jr: fix shared descriptor endianness

build a shared descriptor accordingly if core and
CAAM endianness is same or different

Fixes: 6ef6beca8844 ("crypto/caam_jr: add enqueue/dequeue operations")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
5 years agocrypto/aesni_gcm: use architecture independent API
Pablo de Lara [Wed, 10 Apr 2019 00:41:34 +0000 (01:41 +0100)]
crypto/aesni_gcm: use architecture independent API

IPSec Multi-buffer library has recently added API
that sets pointers depending on the architecture, at initiliazation,
in version 0.52.

AESNI MB PMD was updated with these changes, but not
the AESNI GCM PMD, which also uses the same library.

This makes the PMD to be only compatible with version 0.52,
but makes both PMD consistent on version compatibility,
plus adds support for AVX512.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
5 years agodoc: add missing algorithms for AESNI-MB PMD
Pablo de Lara [Wed, 10 Apr 2019 01:36:17 +0000 (02:36 +0100)]
doc: add missing algorithms for AESNI-MB PMD

The supported algorithm tables for AESNI MB PMD were
missing some supported algorithms.

Fixes: 0e9f8507afcb ("crypto/aesni_mb: support AES-GCM algorithm")
Fixes: e5eecd3dc838 ("crypto/aesni_mb: support AES-GMAC")
Fixes: 11fdbf1b7866 ("crypto/aesni_mb: support plain SHA")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agocryptodev: fix uninitialized session clear
Marko Kovacevic [Mon, 15 Apr 2019 15:04:49 +0000 (16:04 +0100)]
cryptodev: fix uninitialized session clear

added check to see if a session for a device
has been initialised if it has return 0.

Fixes: 5d6c73dd5938 ("cryptodev: add reference count to session private data")
Cc: stable@dpdk.org
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agoexamples/fips_validation: fix CMAC test
Marko Kovacevic [Mon, 15 Apr 2019 15:04:48 +0000 (16:04 +0100)]
examples/fips_validation: fix CMAC test

As a result of the cmac test running the test where
PT len is 65536 it should give a result back to the
user USER1: Error -1: Prepare op USER1: PT len 65536
as this MSG len is not supported. Issue was
that the application was not freeing the op properly after
a while causing the app to fail.

CRYPTODEV: rte_cryptodev_sym_session_create() line 1340:
couldn't get object from session mempool
USER1: Error -12: test block
USER1: Error -12: Failed test CMAC/req/CMAC.req

Fixes: cd255ccf5764 ("examples/fips_validation: support AES parsing")
Cc: stable@dpdk.org
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
5 years agoexamples/fips_validation: fix HMAC test
Marko Kovacevic [Mon, 15 Apr 2019 15:04:47 +0000 (16:04 +0100)]
examples/fips_validation: fix HMAC test

Application was failing as the HMAC and
Plain SHA fips request files are similar in a
way that they both have SHA- in the top section to
determine the hash algo and hash sizes. And HMAC having the
algo in the second line but the Plain SHA in the third
meant that when the HMAC files was used once it parsed the third
line Plain SHA was set as the algo and not HMAC.

USER1: Failed to get capability for cdev 0
USER1: Error -22: test block
[L=20 SHAAlg=SHA_2]
USER1: Error -22: Failed test /root/FIPS/HMAC/req/HMAC.req

Fixes: f4797bae0050 ("examples/fips_validation: support plain SHA")

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
5 years agoconfig: add Mellanox BlueField for meson cross-compilation
Yongseok Koh [Thu, 18 Apr 2019 11:49:03 +0000 (04:49 -0700)]
config: add Mellanox BlueField for meson cross-compilation

Mellanox BlueField is armv8 CPU having cortex-a72. The implementor ID is
0x41 (arm) and the primary part number is 0xd08 (cortex-a72).

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agoconfig: change defaults of armv8
Yongseok Koh [Thu, 18 Apr 2019 11:49:01 +0000 (04:49 -0700)]
config: change defaults of armv8

Current default cache line size for armv8 CPUs having Implementor ID of
0x41 is 128 bytes, changing it to 64 bytes. Also, the max number of lcores
is changed to 16 from 256.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
5 years agonet/mlx: fix library search in meson build
Yongseok Koh [Thu, 18 Apr 2019 11:49:02 +0000 (04:49 -0700)]
net/mlx: fix library search in meson build

If MLNX_OFED is installed, there's no .pc file installed for libraries and
dependency() can't find libraries by pkg-config. By adding fallback of
using cc.find_library(), libraries are properly located.

Fixes: e30b4e566f47 ("build: improve dependency handling")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodrivers/event: disable OcteonTx for buggy Arm compilers
Yongseok Koh [Thu, 18 Apr 2019 11:49:00 +0000 (04:49 -0700)]
drivers/event: disable OcteonTx for buggy Arm compilers

Disable octeontx for gcc 4.8.5 as compiler is emitting "internal compiler
error" for aarch64

Fixes: bd77f2d64c44 ("event/octeontx: build with meson")
Fixes: 4f760550a093 ("mk: disable OcteonTx for buggy compilers")
Fixes: f3af3e44a444 ("mk: disable OcteonTx for buggy compilers only on arm64")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: mention machine=default option for meson
Luca Boccassi [Thu, 18 Apr 2019 09:30:20 +0000 (10:30 +0100)]
doc: mention machine=default option for meson

Document the new value, as it's useful for distributions and users
who need to use a stable baseline -march

Signed-off-by: Luca Boccassi <bluca@debian.org>
Reviewed-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
5 years agobuild: use default flags for default Arm machine
Luca Boccassi [Wed, 20 Mar 2019 13:18:01 +0000 (13:18 +0000)]
build: use default flags for default Arm machine

When building for generic distribution we need a stable baseline
architecture, or depending on the build worker the result will vary.

Force the default flags if the user explicitly sets machine=default
at configuration time.

Fixes: b1d48c41189a ("build: support ARM with meson")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
5 years agotimer: add function to stop all timers in a list
Erik Gabriel Carrillo [Mon, 15 Apr 2019 21:41:28 +0000 (16:41 -0500)]
timer: add function to stop all timers in a list

Add a function to the timer API that allows a caller to traverse a
specified set of timer lists, stopping each timer in each list,
and invoking a callback function.

Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
5 years agotimer: allow management in shared memory
Erik Gabriel Carrillo [Mon, 15 Apr 2019 21:41:27 +0000 (16:41 -0500)]
timer: allow management in shared memory

Currently, the timer library uses a per-process table of structures to
manage skiplists of timers presumably because timers contain arbitrary
function pointers whose value may not resolve properly in other
processes.

However, if the same callback is used handle all timers, and that
callback is only invoked in one process, then it woud be safe to allow
the data structures to be allocated in shared memory, and to allow
secondary processes to modify the timer lists.  This would let timers be
used in more multi-process scenarios.

The library's global variables are wrapped with a struct, and an array
of these structures is created in shared memory.  The original APIs
are updated to reference the zeroth entry in the array. This maintains
the original behavior for both primary and secondary processes since
the set intersection of their coremasks should be empty [1].  New APIs
are introduced to enable the allocation/deallocation of other entries
in the array.

New variants of the APIs used to start and stop timers are introduced;
they allow a caller to specify which array entry should be used to
locate the timer list to insert into or delete from.

Finally, a new variant of rte_timer_manage() is introduced, which
allows a caller to specify which array entry should be used to locate
the timer lists to process; it can also process multiple timer lists per
invocation.

[1] https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html#multi-process-limitations

Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
5 years agodevargs: promote experimental API as stable
Hemant Agrawal [Thu, 4 Apr 2019 11:45:45 +0000 (11:45 +0000)]
devargs: promote experimental API as stable

These APIs are available in DPDK for last 4 releases
and used by multiple drivers.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
5 years agoexamples/l2fwd-cat: fix build on FreeBSD
Bruce Richardson [Tue, 9 Apr 2019 10:55:38 +0000 (11:55 +0100)]
examples/l2fwd-cat: fix build on FreeBSD

The definition of CPU_AND differs from Linux to BSD, so we need to use
RTE_CPU_AND instead.

Fixes: f6baccbc2b3b ("examples/l2fwd-cat: add sample application for PQoS CAT and CDP")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodistributor: skip building if power library not found
Bruce Richardson [Tue, 9 Apr 2019 10:55:37 +0000 (11:55 +0100)]
distributor: skip building if power library not found

The power library is not built on non-Linux systems, so skip the
distributor sample if it's not found, as it's a mandatory dependency.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: David Hunt <david.hunt@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agobuild: increase readability via shortcut variables
Bruce Richardson [Tue, 9 Apr 2019 10:55:36 +0000 (11:55 +0100)]
build: increase readability via shortcut variables

Define variables for "is_linux", "is_freebsd" and "is_windows"
to make the code shorter for comparisons and more readable.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agobuild: simplify subdirectory detection for EAL
Bruce Richardson [Tue, 9 Apr 2019 10:55:35 +0000 (11:55 +0100)]
build: simplify subdirectory detection for EAL

Within EAL we had a series of if statements for selecting the EAL directory
to use. Now that the directory names match those of the OS's they are for
we can instead just use a generated subdirectory name, shortening the code.
To avoid strange errors, we still need to check for unsupported OS's, but
do this check up-front in the config meson.build file.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodevtools: fix bash-isms in meson test
Bruce Richardson [Wed, 10 Apr 2019 20:52:24 +0000 (21:52 +0100)]
devtools: fix bash-isms in meson test

The use of "==" is non-standard extension from bash, so use "="
for comparisons instead.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodevtools: support older compilers with meson test
Bruce Richardson [Wed, 10 Apr 2019 20:52:23 +0000 (21:52 +0100)]
devtools: support older compilers with meson test

Older versions of GCC, such as on Redhat/CentOS 7, don't support
-march=nehalem, but need -march=corei7 instead.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodevtools: skip meson build for missing compilers
Bruce Richardson [Wed, 10 Apr 2019 20:52:22 +0000 (21:52 +0100)]
devtools: skip meson build for missing compilers

If either gcc or clang are missing, skip doing those builds.
This allows a setup to only do, e.g. gcc tests.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
5 years agotest: detect number of cores with meson
Aaron Conole [Fri, 12 Apr 2019 16:21:41 +0000 (12:21 -0400)]
test: detect number of cores with meson

The arguments being passed will cause failures on laptops that have,
for instance, 2 cores only.  Most of the tests don't require more
than a single core.  Some require multiple cores (but those tests
should be modified to 'SKIP' when the correct number of cores
aren't available).

The unit test results shouldn't be impacted by this change, but it
allows for a future enhancement to pass flags such as '--no-huge'.

Also include a fix to a reported issue with running on FreeBSD.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agoci: add a distinguisher to the extra Travis builds
Aaron Conole [Fri, 12 Apr 2019 16:21:40 +0000 (12:21 -0400)]
ci: add a distinguisher to the extra Travis builds

This helps in two ways:
  1. When looking at travis page for dpdk, it's a visual distinction

  2. For ccache support, the build IDs include the 'env', so we get unique
     cache data.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agoci: enable ccache in Travis
Aaron Conole [Fri, 12 Apr 2019 16:21:39 +0000 (12:21 -0400)]
ci: enable ccache in Travis

We try to make the planet happy travis builds dpdk.

Also, the 'sudo' flag was recently deprecated.  Drop it.

Suggested-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agodevtools: add git log checks for TPID, LACP and RETA
Ferruh Yigit [Mon, 8 Apr 2019 16:37:18 +0000 (17:37 +0100)]
devtools: add git log checks for TPID, LACP and RETA

Add case check to TPID, LACP and RETA abbreviations.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agodevtools: accept experimental symbol promotion
David Marchand [Fri, 5 Apr 2019 08:17:47 +0000 (10:17 +0200)]
devtools: accept experimental symbol promotion

Currently, when symbols get promoted from the EXPERIMENTAL section to a
stable ABI section, the script complains they should go to the
EXPERIMENTAL section.

Example:
ERROR: symbol rte_devargs_add is added in the DPDK_19.05 section, but is
expected to be added in the EXPERIMENTAL section of the version map

This is legit.
Moving from a stable ABI to another is also allowed, but must have gone
through the proper process.

Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
5 years agoconfig: add octeontx2 machine
Jerin Jacob [Sat, 13 Apr 2019 20:19:46 +0000 (01:49 +0530)]
config: add octeontx2 machine

Optimized configuration for Marvell octeontx2 SoC.
Updated meson build to support Marvell octeontx2 SoC.
Added meson cross build target for octeontx2.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
5 years agoconfig: add thunderx2 machine
Jerin Jacob [Sat, 13 Apr 2019 20:19:45 +0000 (01:49 +0530)]
config: add thunderx2 machine

Optimized configuration for Marvell thunderx2 SoC.
Updated meson build to support Marvell thunderx2 SoC.
Added meson cross compile target.

Product details are here:

https://www.marvell.com/server-processors/thunderx2-arm-processors/

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
5 years agomeson: support Arm machine specific flags
Pavan Nikhilesh [Sat, 13 Apr 2019 20:19:44 +0000 (01:49 +0530)]
meson: support Arm machine specific flags

Currently, RTE_* flags are set based on the implementer ID but there might
be some micro arch specific differences from the same vendor
eg. CACHE_LINESIZE. Add support to set micro arch specific flags.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
5 years agomk: introduce helper to check compiler argument
Jerin Jacob [Sat, 13 Apr 2019 20:19:43 +0000 (01:49 +0530)]
mk: introduce helper to check compiler argument

Introduce rte_cc_has_argument() Makefile helper to
check a given argument is support by the compiler.

Example Usage:

include $(RTE_SDK)/mk/rte.helper.mk
MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=octeontx2)

This would allow adding -mcpu=octeontx2 in MACHINE_CFLAGS
if it is only supported by the compiler. The use case for such
scheme is to enable the mcpu optimization if the compiler
supports else it needs to compile the source code without
any errors.

This patch also moves inclusion of toolchain's rte.vars.mk
to before the machine's rte.vars.mk inclusion to make
correct CC available for the cross compile case.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
5 years agotest/ticketlock: fix autotest
Joyce Kong [Mon, 15 Apr 2019 09:04:39 +0000 (17:04 +0800)]
test/ticketlock: fix autotest

Add ticketlock_autotest implementation in python.

Fixes: efbcdaa55b93 ("test/ticketlock: add test cases")

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Tested-by: Phil Yang <phil.yang@arm.com>
5 years agodoc: add flow API to qede NIC features
Shahed Shaikh [Fri, 12 Apr 2019 10:12:37 +0000 (03:12 -0700)]
doc: add flow API to qede NIC features

Commit 267d32de46a8 ("net/qede: support generic flow API")
added a support for RTE_FLOW APIs but did not update the feature
support matrix.

Fixes: 267d32de46a8 ("net/qede: support generic flow API")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agodoc: fix spelling in testpmd guide
Stephen Hemminger [Wed, 10 Apr 2019 17:48:56 +0000 (10:48 -0700)]
doc: fix spelling in testpmd guide

Minor spelling errors found with aspell.

Fixes: e76d7a768ce0 ("doc: fix syntax in testpmd user guide")
Fixes: fb73e096110a ("app/testpmd: enable device hotplug monitoring")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Rami Rosen <ramirose@gmail.com>
5 years agonet/ice: stop LLDP by default
Qiming Yang [Fri, 12 Apr 2019 10:10:06 +0000 (18:10 +0800)]
net/ice: stop LLDP by default

This patch stopped LLDP by default to avoid the statistics error.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/nfb: add new netcope driver
Rastislav Cernay [Sun, 7 Apr 2019 15:03:21 +0000 (17:03 +0200)]
net/nfb: add new netcope driver

Added new net driver for Netcope nfb cards

Signed-off-by: Rastislav Cernay <cernay@netcope.com>
5 years agonet/i40e: fix scattered Rx enabling
Qi Zhang [Wed, 27 Mar 2019 11:00:05 +0000 (19:00 +0800)]
net/i40e: fix scattered Rx enabling

No need to add additional vlan tag size for max packet size, since
for i40e, the queue's Rx Max Frame Size (rxq->max_pkt_len) already
includes the vlan header size.

Fixes: a3c83a2527e1 ("net/i40e: enable runtime queue setup")
Fixes: 4861cde46116 ("i40e: new poll mode driver")
Fixes: c1715402df8f ("i40evf: fix jumbo frame support")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/bnxt: fix big endian build
Somnath Kotur [Wed, 10 Apr 2019 09:16:22 +0000 (14:46 +0530)]
net/bnxt: fix big endian build

The result of the endian conversion was not being used incorrectly.

Fixes: b11cceb83a34 ("net/bnxt: support timesync")
Cc: stable@dpdk.org
Reported-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
5 years agonet/enic: fix VLAN inner type matching for old hardware
Hyong Youb Kim [Wed, 10 Apr 2019 05:35:00 +0000 (22:35 -0700)]
net/enic: fix VLAN inner type matching for old hardware

The vlan pattern handler currently assumes the NIC always strips vlan
header from the L2 buffer, regardless of the vlan strip setting. But,
with older VIC models, the vlan header is actually present in the L2
buffer if stripping is disabled. So in this case, the inner ether type
needs to be shifted by that much.

Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")
Cc: stable@dpdk.org
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
5 years agoapp/testpmd: fix return value check
Chenbo Xia [Wed, 10 Apr 2019 02:46:36 +0000 (02:46 +0000)]
app/testpmd: fix return value check

Fix unchecked return value issue for rte_eth_dev_configure.

Coverity issue: 195021
Fixes: 2a977b891f99 ("app/testpmd: fix DCB configuration")
Cc: stable@dpdk.org
Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
Acked-by: Rami Rosen <ramirose@gmail.com>
5 years agoapp/testpmd: fix hex string parser support for flow API
Wei Zhao [Tue, 9 Apr 2019 08:41:31 +0000 (16:41 +0800)]
app/testpmd: fix hex string parser support for flow API

There is need for users to set configuration of HEX number for RSS
key. The key byte should be pass down as hex number not as char
string. This patch enable cmdline flow parse HEX number,
in order to not using string which pass ASIC number.

Fixes: f4d623f96119 ("app/testpmd: fix missing RSS fields in flow action")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/enic: fix raw item length check
Hyong Youb Kim [Tue, 9 Apr 2019 06:40:26 +0000 (23:40 -0700)]
net/enic: fix raw item length check

Currently, the raw item is always preceded by a UDP header, and both
land in the L4 pattern buffer. So consider the UDP header size when
checking if the raw spec fits in the L4 buffer.

Coverity issue: 336796, 336850
Fixes: 477959e6eeb0 ("net/enic: enable limited support for raw flow item")

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
5 years agonet/mlx4: remove device register remap
Yongseok Koh [Wed, 10 Apr 2019 18:41:18 +0000 (11:41 -0700)]
net/mlx4: remove device register remap

UAR (User Access Region) register does not need to be remapped for
primary process but it should be remapped only for secondary process.
UAR register table is in the process private structure in
rte_eth_devices[],
(struct mlx4_proc_priv *)rte_eth_devices[port_id].process_private

The actual UAR table follows the data structure and the table is used
for both Tx and Rx.

For Tx, BlueFlame in UAR is used to ring the doorbell.
MLX4_TX_BFREG(txq) is defined to get a register for the txq. Processes
access its own private data to acquire the register from the UAR table.

For Rx, the doorbell in UAR is required in arming CQ event. However, it
is a known issue that the register isn't remapped for secondary process.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agonet/mlx5: remove device register remap
Yongseok Koh [Wed, 10 Apr 2019 18:41:17 +0000 (11:41 -0700)]
net/mlx5: remove device register remap

UAR (User Access Region) register does not need to be remapped for
primary process but it should be remapped only for secondary process.
UAR register table is in the process private structure in
rte_eth_devices[],
(struct mlx5_proc_priv *)rte_eth_devices[port_id].process_private

The actual UAR table follows the data structure and the table is used
for both Tx and Rx.

For Tx, BlueFlame in UAR is used to ring the doorbell.
MLX5_TX_BFREG(txq) is defined to get a register for the txq. Processes
access its own private data to acquire the register from the UAR table.

For Rx, the doorbell in UAR is required in arming CQ event. However, it
is a known issue that the register isn't remapped for secondary process.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
5 years agonet/mlx5: remove redundant queue index
Yongseok Koh [Wed, 10 Apr 2019 18:41:16 +0000 (11:41 -0700)]
net/mlx5: remove redundant queue index

Queue index is redundantly stored for both Rx and Tx structures.
E.g. txq_ctrl->idx and txq->stats.idx. Both are consolidated to single
storage - rxq->idx and txq->idx.

Also, rxq and txq are moved to the beginning of its control structure
(rxq_ctrl and txq_ctrl) for cacheline alignment.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agonet/mlx5: fix recursive inclusion of header file
Yongseok Koh [Wed, 10 Apr 2019 18:41:15 +0000 (11:41 -0700)]
net/mlx5: fix recursive inclusion of header file

mlx5.h includes mlx5_rxtx.h and mlx5_rxtx.h includes mlx5.h recursively.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agoapp/testpmd: map anonymous memory for devices
Shahaf Shuler [Sun, 7 Apr 2019 05:02:26 +0000 (08:02 +0300)]
app/testpmd: map anonymous memory for devices

Mempools can be populated with anonymous memory when using command line
parameter --mp-alloc=anon.

Considering the mempools are going to be used by the net devices,
it is better to DMA map this memory.

This patch add such mapping now that we have the APIs in place[1].

[1] commit c33a675b6276 ("bus: introduce device level DMA memory mapping")

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoapp/testpmd: support no IOVA contiguous mempools
Shahaf Shuler [Sun, 7 Apr 2019 05:02:25 +0000 (08:02 +0300)]
app/testpmd: support no IOVA contiguous mempools

providing a command line parameter to set the mempool flags accordingly.
This mode is relevant only when creating an empty mempool and then
populating with memory.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoapp/testpmd: fix mempool free on exit
Shahaf Shuler [Sun, 7 Apr 2019 05:02:24 +0000 (08:02 +0300)]
app/testpmd: fix mempool free on exit

Allocated mempools were never free. it is bad practice.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
5 years agonet/ice: fix max frame size
Qi Zhang [Wed, 27 Mar 2019 11:38:50 +0000 (19:38 +0800)]
net/ice: fix max frame size

Max frame size setup should consider double VLAN case.

Fixes: ae2bdd0219cb ("net/ice: support MTU setting")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
5 years agonet/mlx4: fix Tx doorbell register unmap
Yongseok Koh [Mon, 8 Apr 2019 18:23:13 +0000 (11:23 -0700)]
net/mlx4: fix Tx doorbell register unmap

If rdma-core library doesn't support remapping UAR registers, the register
shouldn't be unmapped on device stop.

Fixes: 0203d33a1059 ("net/mlx4: support secondary process")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agonet/mlx5: fix build on Arm
Ori Kam [Mon, 8 Apr 2019 12:43:10 +0000 (12:43 +0000)]
net/mlx5: fix build on Arm

In case of cross compilation on aarch64 we must add include for
stdlib in order to use the free function.

Fixes: cbb66daa3c85 ("net/mlx5: prepare Direct Verbs for Direct Rule")

Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agoapp/testpmd: fix packet headers in txonly mode
Pavan Nikhilesh [Tue, 9 Apr 2019 09:45:47 +0000 (09:45 +0000)]
app/testpmd: fix packet headers in txonly mode

Fix ether header size calculation in Tx only mode.

Coverity issue: 337684
Fixes: 01b645dcff7f ("app/testpmd: move txonly prepare in separate function")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/sfc: set min and max MTU
Andrew Rybchenko [Mon, 8 Apr 2019 14:04:05 +0000 (15:04 +0100)]
net/sfc: set min and max MTU

Advertise minimum and maximum MTU value in device information.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/nfp: fix resource leak on errors
Alejandro Lucero [Mon, 8 Apr 2019 11:02:04 +0000 (12:02 +0100)]
net/nfp: fix resource leak on errors

Not closing the socket implies a resource leak.

Coverity issue: 336865
Fixes: 29a62d1476b6 ("net/nfp: add CPP bridge as service")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
5 years agonet/nfp: fix memory leak
Alejandro Lucero [Mon, 8 Apr 2019 10:49:39 +0000 (11:49 +0100)]
net/nfp: fix memory leak

Coverity issue: 32806
Fixes: ef28aa96e53b ("net/nfp: support multiprocess")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
5 years agonet/nfp: fix memory leak
Alejandro Lucero [Mon, 8 Apr 2019 10:19:29 +0000 (11:19 +0100)]
net/nfp: fix memory leak

If errors, release the allocated structure.

Coverity issue: 277222
Fixes: c7e9729da6b5 ("net/nfp: support CPP")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
5 years agonet/nfp: check return value
Alejandro Lucero [Mon, 8 Apr 2019 09:59:49 +0000 (10:59 +0100)]
net/nfp: check return value

Call to CPP read (nfp_cpp_readl()) can fail, return 0 on fail.

If the call to _nfp6000_cppat_mu_locality fails, the function needs
to return with an error.

If the nfp_cpp_readl() call fails just returns 0.

Coverity issue: 277209, 277215, 277225
Fixes: c7e9729da6b5 ("net/nfp: support CPP")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>