dpdk.git
4 years agonet/bnxt: add a field for FW capabilities
Kalesh AP [Tue, 10 Dec 2019 15:05:29 +0000 (20:35 +0530)]
net/bnxt: add a field for FW capabilities

The purpose of this patch is used to add a new field "fw_cap"
in bnxt structure. The new "fw_cap" field store all the capabilities
reported by the FW. This information will help us to determine
the device capabilities when registering feature support with FW.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agonet/bnxt: reset filter indices on free
Kalesh AP [Tue, 10 Dec 2019 15:05:28 +0000 (20:35 +0530)]
net/bnxt: reset filter indices on free

Fix bnxt_free_filter() to ensure that the filter indices
are reset correctly when a filter is freed.

This change helps in avoiding few duplicate code as well.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agonet/bnxt: remove unnecessary macro for unused variables
Kalesh AP [Tue, 10 Dec 2019 15:05:27 +0000 (20:35 +0530)]
net/bnxt: remove unnecessary macro for unused variables

Remove "__rte_unused" instances that are not required.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Rahul Gupta <rahul.gupta@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
4 years agonet/bnxt: fix request for hot reset support
Kalesh AP [Tue, 10 Dec 2019 15:05:26 +0000 (20:35 +0530)]
net/bnxt: fix request for hot reset support

During the registration process, the drivers must publish
"HOT_RESET_SUPPORTED" capability to the core firmware only
if core firmware is capable of Hot Reset.

Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW")
Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
4 years agonet/bnxt: restore VLAN filters during reset recovery
Kalesh AP [Tue, 10 Dec 2019 15:05:25 +0000 (20:35 +0530)]
net/bnxt: restore VLAN filters during reset recovery

Older Firmware could have state information such as
MAC Filters, VLAN settings etc configured by user.
But new Firmware is unaware of this state information
and as a result driver should restore these settings
during reset recovery.

This patch restores the user configured vlan settings
prior to hot FW upgrade or FW error.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agonet/bnxt: restore MAC filters during reset recovery
Kalesh AP [Tue, 10 Dec 2019 15:05:24 +0000 (20:35 +0530)]
net/bnxt: restore MAC filters during reset recovery

Older Firmware could have state information such as
MAC Filters, VLAN settings etc configured by user.
But new Firmware is unaware of this state information
and as a result driver should restore these settings
during reset recovery.

This patch restores the user configured mac addresses
prior to hot FW upgrade or FW error.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
4 years agonet/mlx5: fix multiple flow table hash list
Xiaoyu Min [Mon, 16 Dec 2019 09:27:41 +0000 (11:27 +0200)]
net/mlx5: fix multiple flow table hash list

The eth devices which share one ibv device only need one hash list of
flow table.

Currently, flow table hash list is created per each eth device
whatever whether they share one ibv device or not.

If the devices share one ibv device, the previously created hash list
will become dangle because the pointer point to (sh->flow_tbls) is
overwritten by the later created hast list.

To fix this, just don't create hash list if it is already created.

Fixes: 54534725d2f3 ("net/mlx5: fix flow table hash list conversion")
Cc: stable@dpdk.org
Reported-by: Zhike Wang <wangzhike@jd.com>
Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
4 years agonet/mlx5: clean up redundant assignment
Tonghao Zhang [Wed, 27 Nov 2019 14:18:42 +0000 (22:18 +0800)]
net/mlx5: clean up redundant assignment

The type of txq has been assigned in mlx5_txq_hairpin_new.

Fixes: ae18a1ae9692 ("net/mlx5: support Tx hairpin queues")
Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/mlx5: fix crash when setting hairpin queues
Tonghao Zhang [Wed, 27 Nov 2019 14:18:41 +0000 (22:18 +0800)]
net/mlx5: fix crash when setting hairpin queues

If configuring the number of tx/rx queue with rte_eth_dev_configure
to nr_queues + hairpin_nr_queues, and setting tx/rx queues to
nr_queues with rte_eth_tx/rx_queue_setup. But not configuring the
hairpin queues via rte_eth_tx/rx_hairpin_queue_setup.

When starting the netdev, there is a crash because of NULL accessing.

Fixes: cf5516696d77 ("ethdev: add hairpin queue")
Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Acked-by: Ori Kam <orika@mellanox.com>
4 years agonet/i40e: re-program promiscuous mode on VF interface
Eelco Chaudron [Tue, 19 Nov 2019 13:45:21 +0000 (08:45 -0500)]
net/i40e: re-program promiscuous mode on VF interface

During a kernel PF reset, this event is propagated to the VF.
The DPDK VF PMD will execute the reset task before the PF is done
with his. This results in the admin queue message not being responded
to leaving the port in "promiscuous" mode.

This patch makes sure the promiscuous mode is configured independently
of the current admin state.

Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Reviewed-by: Xiao Zhang <xiao.zhang@intel.com>
4 years agonet/ixgbe: fix link up in FreeBSD
Lunyuan Cui [Mon, 16 Dec 2019 02:24:18 +0000 (02:24 +0000)]
net/ixgbe: fix link up in FreeBSD

In FreeBSD environment, nic_uio drivers do not support interrupts,
rte_intr_callback_register() will fail to register interrupts.
We cannot make link status to change from down to up by interrupt
callback. So we need to wait for the controller to acquire link
when ports start. Through multiple tests, 5s should be enough.

Fixes: b9bd0f09fa15 ("ethdev: fix link status query")
Cc: stable@dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agonet/ixgbe: fix link status
Lunyuan Cui [Tue, 17 Dec 2019 06:12:03 +0000 (06:12 +0000)]
net/ixgbe: fix link status

The link status for ixgbevf is not correct when PF link up.
IXGBE_ESDP register is only used when media type is fiber.

Fixes: 1ca05831b9be ("net/ixgbe: fix link status")
Cc: stable@dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
4 years agonet/iavf: add TSO offload use basic path
Tao Zhu [Tue, 3 Dec 2019 15:28:25 +0000 (23:28 +0800)]
net/iavf: add TSO offload use basic path

IAVF choices VECTOR TX path or Basic TX path by macro
IAVF_NO_VECTOR_FLAGS. TSO offload only processed by Basic TX path.

Fixes: 605c6f9ca52f ("net/avf: convert to new Rx and Tx offload API")
Cc: stable@dpdk.org
Signed-off-by: Tao Zhu <taox.zhu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/i40e: fix port close in FreeBSD
Chenxu Di [Wed, 11 Dec 2019 09:06:03 +0000 (09:06 +0000)]
net/i40e: fix port close in FreeBSD

FreeBSD OS doesn't support igb_uio interrupt, so it will fail when
unregister the interrupt callback in port close. We can fix the issue by
passing -ENOENT when check the return value of unregister interrupt
callback function.

Fixes: ac89d46096d5 ("net/i40e: release port upon close")
Cc: stable@dpdk.org
Signed-off-by: Chenxu Di <chenxux.di@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
4 years agonet/iavf: fix Rx total stats
Jiaqi Min [Fri, 13 Dec 2019 01:23:29 +0000 (01:23 +0000)]
net/iavf: fix Rx total stats

Rx total stats is the total number of successfully received packets,
so exclude the number of rx_discards for Rx total stats.

Fixes: f4a41a6953af ("net/avf: support stats")
Cc: stable@dpdk.org
Signed-off-by: Jiaqi Min <jiaqix.min@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
4 years agonet/ipn3ke: fix meson build
Bruce Richardson [Thu, 12 Dec 2019 17:28:43 +0000 (17:28 +0000)]
net/ipn3ke: fix meson build

The ipn3ke driver and the ifpga driver had circular dependencies on each
other, meaning that neither could be built with meson. Fix this by:

* setting the build order of net and raw to match that in makefiles
* removing the dependency from the net driver on the rawdev one
* fixing the dependency names in the rawdev driver meson.build file

Fixes: 8418c92811b4 ("net/ipn3ke: remove configuration for i40e port bonding")
Fixes: e1defba4cf66 ("raw/ifpga/base: support device tree")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
4 years agomaintainers: update for OCTEON TX
Jerin Jacob [Wed, 11 Dec 2019 14:23:42 +0000 (19:53 +0530)]
maintainers: update for OCTEON TX

Harman thankfully accepted to replace myself as maintainer for OCTEONTX
ethdev PMD.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agomaintainers: adjust maintainership of Intel tree
Xiaolong Ye [Wed, 11 Dec 2019 09:12:35 +0000 (17:12 +0800)]
maintainers: adjust maintainership of Intel tree

Currently I am the main committer of dpdk-next-net-intel tree.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/ice: fix packet type table
Shougang Wang [Tue, 10 Dec 2019 01:33:21 +0000 (01:33 +0000)]
net/ice: fix packet type table

According to comms package, index 94 should be MAC_IPV6_ICMP,
not MAC_IPV4_ICMP. This patch fixes the issue.

Fixes: 4cf29798b4c9 ("net/ice: fix packet type table")
Cc: stable@dpdk.org
Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
4 years agonet/netvsc: disable before changing RSS parameters
Stephen Hemminger [Fri, 6 Dec 2019 23:52:48 +0000 (15:52 -0800)]
net/netvsc: disable before changing RSS parameters

In order to change RSS parameters, the host requires that RSS
is disable first.

Fixes: 92d23a57cafe ("net/netvsc: support configuring RSS parameters")
Cc: stable@dpdk.org
Signed-off-by: Donald Lee <donald_lee@trendmicro.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Tested-by: Dexuan Cui <decui@microsoft.com>
Tested-by: Abhishek Marathe <abmarath@microsoft.com>
4 years agonet/netvsc: fix RSS offload flag
Stephen Hemminger [Fri, 6 Dec 2019 23:52:47 +0000 (15:52 -0800)]
net/netvsc: fix RSS offload flag

The change to add OFFLOAD_RSS_HASH broke use of netvsc PMD
with testpmd. The netvsc driver fails during configure step:

Configuring Port 1 (socket 0)
hn_dev_configure(): unsupported RX offload: 0x80000

Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agonet/ice: disable TSO offload in vector path
Tao Zhu [Tue, 3 Dec 2019 15:28:52 +0000 (23:28 +0800)]
net/ice: disable TSO offload in vector path

ICE choices VECTOR TX path or Basic TX path by macro
ICE_NO_VECTOR_FLAGS.
TSO offload only processed by Basic TX path.

Fixes: f88de4694d94 ("net/ice: support Tx SSE vector")
Cc: stable@dpdk.org
Signed-off-by: Tao Zhu <taox.zhu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
4 years agonet/fm10k: fix descriptor VLAN field filling in Tx
Lu Qiuwen [Thu, 5 Dec 2019 13:30:08 +0000 (21:30 +0800)]
net/fm10k: fix descriptor VLAN field filling in Tx

The VLAN field in the descriptor is not filled when ol_flags has
no VLAN flag. When the caller sends some packets with VLAN tags,
but other packets do not have VLAN tags, the behavior of the program
cannot be determined.

Fixes: 4b61d3bfa941 ("fm10k: add receive and tranmit")
Cc: stable@dpdk.org
Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
4 years agonet/pcap: truncate packet if it is too large
Zhike Wang [Mon, 9 Dec 2019 01:53:09 +0000 (09:53 +0800)]
net/pcap: truncate packet if it is too large

Previously large packet would be dropped, instead now it is better to
keep it via truncating it.

Signed-off-by: Zhike Wang <wangzhike@jd.com>
Reviewed-by: Cian Ferriter <cian.ferriter@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoapp/testpmd: fix device mcast list error handling
Ciara Power [Wed, 4 Dec 2019 16:38:15 +0000 (16:38 +0000)]
app/testpmd: fix device mcast list error handling

The multicast set list function now has a return value, which is checked
by the calling functions. A rollback occurs on detection of failure, to
realign local config with the device config.

The error print statement in the function had included the port_id and
mc_addr_nb values in the wrong order, these are now swapped.

Fixes: 8fff667578a7 ("app/testpmd: new command to add/remove multicast MAC addresses")
Cc: stable@dpdk.org
Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agonet/bnxt: use macro for getting default VNIC
Kalesh AP [Mon, 2 Dec 2019 04:18:09 +0000 (09:48 +0530)]
net/bnxt: use macro for getting default VNIC

BNXT_GET_DEFAULT_VNIC macro returns the default VNIC of the
function and fixed all occurrences of code to use the macro.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
4 years agonet/bnxt: remove a log while deleting EM filters
Kalesh AP [Mon, 2 Dec 2019 04:18:08 +0000 (09:48 +0530)]
net/bnxt: remove a log while deleting EM filters

Remove an unnecessary log while deleting EM filters.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
4 years agonet/bnxt: refactor chip type selection
Kalesh AP [Mon, 2 Dec 2019 04:18:07 +0000 (09:48 +0530)]
net/bnxt: refactor chip type selection

Use switch-case statement to replace if-else statement.

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
4 years agoapp/testpmd: show MAC addresses added to a port
Kalesh AP [Mon, 25 Nov 2019 08:27:50 +0000 (13:57 +0530)]
app/testpmd: show MAC addresses added to a port

Patch adds a runtime function to display the unicast and
multicast MAC addresses added to a port.

Syntax:
show port (port_id) macs|mcast_macs

Usage:
testpmd> show port 0 macs
Number of MAC address added: 1
  B0:26:28:7F:F5:C1
testpmd>
testpmd> show port 0 mcast_macs
Number of Multicast MAC address added: 0
testpmd>
testpmd> mac_addr add 0 B0:26:28:7F:22:33
testpmd> mac_addr add 0 B0:26:28:7F:22:34
testpmd> show port 0 macs
Number of MAC address added: 3
  B0:26:28:7F:F5:C1
  B0:26:28:7F:22:33
  B0:26:28:7F:22:34
testpmd>
testpmd> mac_addr remove 0 B0:26:28:7F:22:33
testpmd> show port 0 macs
Number of MAC address added: 2
  B0:26:28:7F:F5:C1
  B0:26:28:7F:22:34

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoeventdev: use custom element size rings
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:47 +0000 (13:32 -0600)]
eventdev: use custom element size rings

Use custom element size ring APIs to replace event ring
implementation. This avoids code duplication.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
4 years agohash: use 32-bit elements rings to save memory
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:46 +0000 (13:32 -0600)]
hash: use 32-bit elements rings to save memory

The freelist and external bucket indices are 32b. Using rings
that use 32b element sizes will save memory.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agotest/ring: add custom element size performance tests
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:45 +0000 (13:32 -0600)]
test/ring: add custom element size performance tests

Adjust the performance test cases to test rte_ring_xxx_elem APIs.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
4 years agotest/ring: add custom element size functional tests
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:44 +0000 (13:32 -0600)]
test/ring: add custom element size functional tests

Add basic infrastructure to test rte_ring_xxx_elem APIs.
Adjust the existing test cases to test for various ring
element sizes.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
4 years agoring: support configurable element size
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:43 +0000 (13:32 -0600)]
ring: support configurable element size

Current APIs assume ring elements to be pointers. However, in many
use cases, the size can be different. Add new APIs to support
configurable ring element sizes.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
4 years agotest/ring: use division for cycle count calculation
Honnappa Nagarahalli [Sat, 18 Jan 2020 19:32:42 +0000 (13:32 -0600)]
test/ring: use division for cycle count calculation

Use division instead of modulo operation to calculate more
accurate cycle count.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
4 years agoci: switch to Ubuntu 18.04 in Travis
Kevin Laatz [Tue, 17 Dec 2019 11:42:59 +0000 (11:42 +0000)]
ci: switch to Ubuntu 18.04 in Travis

Currently, the Travis CI is using Ubuntu 16.04 LTS (Xenial) which is
becoming increasingly outdated. This patch updates Travis to use Ubuntu
18.04 LTS (Bionic) which will give us the benefit of more up-to-date
packages being available and the newer features that come with them.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Andrzej Ostruszka <amo@semihalf.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agotest/crypto: add Chacha Poly cases
Arek Kusztal [Wed, 15 Jan 2020 17:55:24 +0000 (18:55 +0100)]
test/crypto: add Chacha Poly cases

This patch adds Chacha20-Poly1305 implementation to
cryptodev tests.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
4 years agocrypto/qat: support Chacha Poly
Arek Kusztal [Wed, 15 Jan 2020 17:55:23 +0000 (18:55 +0100)]
crypto/qat: support Chacha Poly

This patchset adds Chacha20-Poly1305 implementation to Intel
QuickAssist Technology pmd.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
4 years agotest/crypto: add mixed encypted-digest
Adam Dybkowski [Wed, 15 Jan 2020 14:59:23 +0000 (15:59 +0100)]
test/crypto: add mixed encypted-digest

This patch adds unit tests for QAT PMD for mixed encrypted-digest
cases, involving SNOW3G UIA2, ZUC EIA3, AES CMAC and NULL auth
algorithms together with SNOW3G UEA2, ZUC EEA3, AES CTR and NULL
cipher algorithms in various combinations.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
4 years agocrypto/qat: handle mixed hash-cipher requests on GEN3
Adam Dybkowski [Wed, 15 Jan 2020 14:59:22 +0000 (15:59 +0100)]
crypto/qat: handle mixed hash-cipher requests on GEN3

This patch implements handling mixed encrypted digest hash-cipher
requests (e.g. SNOW3G + ZUC or ZUC + AES CTR) possible when running
on GEN3 QAT. Such algorithm combinations are not supported on
GEN1/GEN2 hardware.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
4 years agoexamples/ipsec-secgw: fix crash on unsupported algo
Savinay Dharmappa [Fri, 13 Dec 2019 11:49:55 +0000 (11:49 +0000)]
examples/ipsec-secgw: fix crash on unsupported algo

If algo is NULL set the status to error and return. This change
prevent crashing of ipsec-secgw application when a specific
cipher/auth/aead algo are not supported by application.

Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Cc: stable@dpdk.org
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agocrypto/qat: add minimum enqueue threshold
Arek Kusztal [Wed, 15 Jan 2020 14:32:11 +0000 (15:32 +0100)]
crypto/qat: add minimum enqueue threshold

This patch adds minimum enqueue threshold to Intel
QuickAssist Technology PMD.
It is an optimisation, configured by a command line option,
which can be used to reduce MMIO write occurrences.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
4 years agocommon/qat: support dual threads for enqueue/dequeue
Fiona Trahe [Wed, 15 Jan 2020 14:32:10 +0000 (15:32 +0100)]
common/qat: support dual threads for enqueue/dequeue

Remove the limitation whereby enqueue and dequeue must be
done in same thread.
The inflight calculation is reworked to be thread-safe for 2
threads - note this is not general multi-thread support, i.e
all enqueues to a qp must still be done in one thread and
all dequeues must be done in one thread, but enqueues and
dequeues may be in separate threads.
Documentation updated.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
4 years agocommon/qat: move max in-flights param into qp
Fiona Trahe [Wed, 15 Jan 2020 14:32:09 +0000 (15:32 +0100)]
common/qat: move max in-flights param into qp

The max_inflights parameter is moved from qat_queue to qat_qp as it's
a more appropriate location.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
4 years agocommon/qat: remove tail write coalescing
Fiona Trahe [Wed, 15 Jan 2020 14:32:08 +0000 (15:32 +0100)]
common/qat: remove tail write coalescing

The feature Coalescing Tail Writes on Enqueue is removed
as it is not thread-safe and a dual-thread feature will be added shortly.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
4 years agotest/crypto: add ECPM cases
Sunila Sahu [Wed, 15 Jan 2020 12:56:34 +0000 (18:26 +0530)]
test/crypto: add ECPM cases

Add test vectors and verify routines for
asymmetric operation, EC Point Multiplication.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocrypto/octeontx2: support ECPM
Sunila Sahu [Wed, 15 Jan 2020 12:56:33 +0000 (18:26 +0530)]
crypto/octeontx2: support ECPM

Add support asymmetric operation EC Point MUltiplication,
in crypto_octeontx2 PMD.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidipati@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocrypto/octeontx: support ECPM
Sunila Sahu [Wed, 15 Jan 2020 12:56:32 +0000 (18:26 +0530)]
crypto/octeontx: support ECPM

Add support for asymmetric operation EC Point Multiplication,
in crypto_octeontx PMD.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidipati@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocryptodev: support ECPM
Balakrishna Bhamidipati [Wed, 15 Jan 2020 12:56:31 +0000 (18:26 +0530)]
cryptodev: support ECPM

Asymmetric crypto library is extended to add ECPM (Elliptic Curve Point
Multiplication). The required xform type and op parameters are
introduced.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidipati@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
4 years agotest/crypto: add ECDSA sign/verify cases
Ayuj Verma [Wed, 15 Jan 2020 12:43:39 +0000 (18:13 +0530)]
test/crypto: add ECDSA sign/verify cases

This patch adds ECDSA sign and verify test
routine and test vectors.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocrypto/octeontx2: support ECDSA
Sunila Sahu [Wed, 15 Jan 2020 12:43:38 +0000 (18:13 +0530)]
crypto/octeontx2: support ECDSA

Adding support for ECDSA asymmetric crypto
operations in crypto_octeontx2 PMD.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidipati@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocrypto/octeontx: support ECDSA
Sunila Sahu [Wed, 15 Jan 2020 12:43:37 +0000 (18:13 +0530)]
crypto/octeontx: support ECDSA

Adding support for ECDSA asymmetric crypto operations
in crypto_octeontx PMD.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
4 years agocryptodev: support ECDSA
Ayuj Verma [Wed, 15 Jan 2020 12:43:36 +0000 (18:13 +0530)]
cryptodev: support ECDSA

Asymmetric crypto library is extended to add ECDSA. Elliptic curve
xform and ECDSA op params are introduced.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Sunila Sahu <ssahu@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
4 years agotest/crypto: fix missing operation status check
Adam Dybkowski [Fri, 20 Dec 2019 12:58:52 +0000 (13:58 +0100)]
test/crypto: fix missing operation status check

This patch adds checking of the symmetric crypto operation status
that was silently skipped before. It fixes the wireless algorithms
session creation (SNOW3G, KASUMI, ZUC) and passing of the digest
data for the verification by PMD. Also fixed the missing aad padding
issue revealed after op status checking was introduced.

Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented")
Fixes: 77a217a19bb7 ("test/crypto: add AES-CCM tests")
Cc: stable@dpdk.org
Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Tested-by: Ankur Dwivedi <adwivedi@marvell.com>
Reviewed-by: Anoob Joseph <anoobj@marvell.com>
4 years agocryptodev: add Chacha20-Poly1305 AEAD algorithm
Arek Kusztal [Mon, 13 Jan 2020 10:43:47 +0000 (11:43 +0100)]
cryptodev: add Chacha20-Poly1305 AEAD algorithm

This patch adds Chacha20-Poly1305 AEAD algorithm to Cryptodev.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
4 years agoevent/opdl: use new API to save cycles on aarch64
Gavin Hu [Thu, 7 Nov 2019 21:35:28 +0000 (22:35 +0100)]
event/opdl: use new API to save cycles on aarch64

Use the new API to wait in low power state instead of continuous
polling to save CPU cycles and power.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
4 years agonet/thunderx: use new API to save cycles on aarch64
Gavin Hu [Thu, 7 Nov 2019 21:35:27 +0000 (22:35 +0100)]
net/thunderx: use new API to save cycles on aarch64

Use the new API to wait in low power state instead of continuous
polling to save CPU cycles and power.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agoticketlock: use new API to reduce contention on aarch64
Gavin Hu [Thu, 7 Nov 2019 21:35:26 +0000 (22:35 +0100)]
ticketlock: use new API to reduce contention on aarch64

While using ticket lock, cores repeatedly poll the lock variable.
This is replaced by rte_wait_until_equal API.

Running ticketlock_autotest on ThunderX2, Ampere eMAG80, and Arm N1SDP[1],
there were variances between runs, but no notable performance gain or
degradation were seen with and without this patch.

[1] https://community.arm.com/developer/tools-software/oss-platforms/w/\
docs/440/neoverse-n1-sdp

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Tested-by: Phil Yang <phil.yang@arm.com>
Tested-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
4 years agoeal: add wait until equal API
Gavin Hu [Thu, 7 Nov 2019 21:35:25 +0000 (22:35 +0100)]
eal: add wait until equal API

The rte_wait_until_equal_xx APIs abstract the functionality of
'polling for a memory location to become equal to a given value'.

Add the RTE_ARM_USE_WFE configuration entry for aarch64, disabled
by default. When it is enabled, the above APIs will call WFE instruction
to save CPU cycles and power.

From a VM, when calling this API on aarch64, it may trap in and out to
release vCPUs whereas cause high exit latency. Since kernel 4.18.20 an
adaptive trapping mechanism is introduced to balance the latency and
workload.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agobus/fslmc: remove conflicting memory barrier macro
Gavin Hu [Thu, 7 Nov 2019 21:35:24 +0000 (22:35 +0100)]
bus/fslmc: remove conflicting memory barrier macro

There are two definitions conflicting each other, for more
details, refer to [1].

include/rte_atomic_64.h:19: error: "dmb" redefined [-Werror]
drivers/bus/fslmc/mc/fsl_mc_sys.h:36: note: this is the location of the
previous definition
 #define dmb() {__asm__ __volatile__("" : : : "memory"); }

The fix is to reuse the EAL definition to avoid conflicts.

[1] http://inbox.dpdk.org/users/VI1PR08MB537631AB25F41B8880DCCA988FDF0@
VI1PR08MB5376.eurprd08.prod.outlook.com/T/#u

Fixes: 3af733ba8da8 ("bus/fslmc: introduce MC object functions")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoevent/octeontx2: relax memory requirement for timers
Pavan Nikhilesh [Tue, 7 Jan 2020 13:17:38 +0000 (18:47 +0530)]
event/octeontx2: relax memory requirement for timers

Relax memory requirement for event timers when internal mempool used is
octeontx2 mempool.
Add debug log to print the memory used.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agoevent/octeontx2: fix device name in device info
Pavan Nikhilesh [Mon, 6 Jan 2020 07:43:18 +0000 (13:13 +0530)]
event/octeontx2: fix device name in device info

Fix imcorrect device name being used in device info.

Fixes: bebc3dbcf4a6 ("event/octeontx2: add device capabilities function")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agotest/event: fix OCTEON TX2 event device name
Pavan Nikhilesh [Mon, 6 Jan 2020 07:42:42 +0000 (13:12 +0530)]
test/event: fix OCTEON TX2 event device name

Fix octeontx2 event device name used in eventdevice test.

Fixes: 62561532ac4c ("event/octeontx2: add SSO selftest")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agotest/event: fix unintended vdev creation
Pavan Nikhilesh [Mon, 6 Jan 2020 07:42:41 +0000 (13:12 +0530)]
test/event: fix unintended vdev creation

Virtual eventdevice should only be created when there is no existing
device with the same name.

Fixes: e0f4a0ed4237 ("test: skip tests when missing requirements")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
4 years agoexamples/l2fwd-event: fix ethdev RSS setup
Pavan Nikhilesh [Tue, 14 Jan 2020 05:52:23 +0000 (11:22 +0530)]
examples/l2fwd-event: fix ethdev RSS setup

Setup RSS configuration based on underlying device capabilities.

Fixes: 4ff457986f76 ("examples/l2fwd-event: add default poll mode routines")
Cc: stable@dpdk.org
Signed-off-by: Satananda Burla <sburla@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agoevent/dsw: avoid credit leak on oversized enqueue bursts
Mattias Rönnblom [Tue, 14 Jan 2020 18:03:38 +0000 (19:03 +0100)]
event/dsw: avoid credit leak on oversized enqueue bursts

If an application issues rte_event_enqueue_new_burst() or
rte_event_enqueue_forward_burst() call with a burst of events longer
than the configured max enqueue burst size, DSW allocates credits not
only for events actually enqueued, but for the complete burst. If this
process is repeated, enough credits will have leaked to cause the
event device to backpressure (i.e. disallow) any new enqueue
operations.

In addition, the port-level enqueue xstats will log the wrong number
of events enqueued for oversized enqueues.

This patch makes DSW gracefully handle oversized enqueue bursts.

Fixes: 1c8e3caa3bfb ("event/dsw: add event scheduling and device start/stop")
Cc: stable@dpdk.org
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
4 years agoexamples/l2fwd-event: fix event device config
Pavan Nikhilesh [Fri, 20 Dec 2019 14:27:41 +0000 (19:57 +0530)]
examples/l2fwd-event: fix event device config

Always enable implicit release since we don't support explicit release
in datapath.
Master lcore is used only for printing stats so don't allocate event
port for it.
Fix service launch for event device without distributed scheduling.

Fixes: bcb6f841d42a ("examples/l2fwd-event: setup service core")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
4 years agoevent/dsw: flush buffers immediately on zero-sized enqueue
Mattias Rönnblom [Tue, 17 Dec 2019 11:13:44 +0000 (12:13 +0100)]
event/dsw: flush buffers immediately on zero-sized enqueue

Fix DSW's rte_event_enqueue_burst(), so that a call with a zero-sized
event array immediately flushes the port's output buffers. Prior to
this patch, the flush operation would be deferred to the next enqueue
or dequeue call, which is inconsistent with DSW documentation.

Fixes: 1c8e3caa3bfb ("event/dsw: add event scheduling and device start/stop")
Cc: stable@dpdk.org
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
4 years agoevent/dsw: add xstats query by name
Mattias Rönnblom [Thu, 12 Dec 2019 18:44:13 +0000 (19:44 +0100)]
event/dsw: add xstats query by name

Implement rte_event_dev_stats_by_name().

Suggested-by: Niclas Storm <niclas.storm@ericsson.com>
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
4 years agodoc: reduce indentation in meson build file
Bruce Richardson [Fri, 10 Jan 2020 21:52:05 +0000 (21:52 +0000)]
doc: reduce indentation in meson build file

When building the API docs, we can make the meson.build file easier to
read, and allow more code per line, by using subdir_done() to quit early.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
4 years agodoc: rebuild with meson whenever a file changes
Bruce Richardson [Fri, 10 Jan 2020 21:52:04 +0000 (21:52 +0000)]
doc: rebuild with meson whenever a file changes

Add proper support for calling sphinx whenever a file in the doc
directory changes. This is accomplished by using a wrapper script
for sphinx, which runs sphinx but also emits a gcc-format dependency
file listing all the doc files. This is used by ninja so that any
change to the doc files triggers a rebuild of the docs.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
4 years agodoc: reduce whitespace in meson build file
Bruce Richardson [Fri, 10 Jan 2020 21:52:03 +0000 (21:52 +0000)]
doc: reduce whitespace in meson build file

For building the guides, we can make the meson.build easier to read by
using the subdir_done function to quit early.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
4 years agodoc: fix warning with meson
Bruce Richardson [Fri, 10 Jan 2020 21:52:02 +0000 (21:52 +0000)]
doc: fix warning with meson

The install parameter to configure_file is new in 0.50 and generates a
warning since it is newer than our minimum version of 0.47.1. The
parameter, however, is unneeded as the documentation states:

"When omitted it defaults to true when install_dir is set and not empty,
false otherwise."

Given that install_dir is not set for this file, install defaults to false
so no need to explicitly specify it.

Fixes: 720b14db3ae2 ("build: generate API documentation with meson")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
4 years agokni: fix meson warning about console keyword
Bruce Richardson [Fri, 10 Jan 2020 21:52:00 +0000 (21:52 +0000)]
kni: fix meson warning about console keyword

Since kni no longer includes the ethtool code and so is faster to build, we
no longer need the console parameter to have incremental screen updates as
it builds. Therefore, we drop the keyword which removes the warning.

Fixes: b78f32cff94d ("kni: support meson build")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
4 years agoci: add travis ci support for native aarch64
Ruifeng Wang [Mon, 13 Jan 2020 06:26:06 +0000 (14:26 +0800)]
ci: add travis ci support for native aarch64

Add Travis compilation jobs for native aarch64. gcc/clang compilations
for static/shared libraries are added.

Some limitations for current aarch64 Travis support:
1. Container is used. Huge page is not available due to security reason.
2. Missing kernel header package in Xenial distribution.

Solutions to address the limitations:
1. Not to add unit test for now. And run tests with no-huge in future.
2. Use Bionic distribution for all aarch64 jobs.

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Aaron Conole <aconole@redhat.com>
4 years agodevtools: add path to additional shared object files
Ruifeng Wang [Mon, 13 Jan 2020 06:26:05 +0000 (14:26 +0800)]
devtools: add path to additional shared object files

Drivers librte_mempool_ring.so and librte_pmd_null.so are loaded by
librte_eal.so when running testpmd.
In Ubuntu Xenial, driver path is installed to RPATH on testpmd. This
allows librte_eal.so to find drivers by using the RPATH.
However, in Ubuntu Bionic, driver path is installed to RUNPATH instead.
The RUNPATH on testpmd is not available by librte_eal.so and therefore
lead to driver load failure:

EAL: Detected 32 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: librte_mempool_ring.so: cannot open shared object file:
No such file or directory
EAL: FATAL: Cannot init plugins
EAL: Cannot init plugins

Add 'drivers' into LD_LIBRARY_PATH so that testpmd can find and make
use of these shared libraries.

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Aaron Conole <aconole@redhat.com>
4 years agodrivers: move ifc to vDPA directory
Matan Azrad [Thu, 9 Jan 2020 11:00:17 +0000 (11:00 +0000)]
drivers: move ifc to vDPA directory

A new vDPA class was recently introduced.

IFC driver implements the vDPA operations,
hence it should be moved to the vDPA class.

Move it.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agodoc: add vDPA features table
Matan Azrad [Thu, 9 Jan 2020 11:00:16 +0000 (11:00 +0000)]
doc: add vDPA features table

Add vDPA devices features table and explanation.

Any vDPA driver can add its own supported features by ading a new ini
file to the features directory in doc/guides/vdpadevs/features.

Signed-off-by: Matan Azrad <matan@mellanox.com>
4 years agodrivers: introduce vDPA class
Matan Azrad [Thu, 9 Jan 2020 11:00:15 +0000 (11:00 +0000)]
drivers: introduce vDPA class

The vDPA (vhost data path acceleration) drivers provide support for
the vDPA operations introduced by the rte_vhost library.

Any driver which provides the vDPA operations should be moved\added to
the vdpa class under drivers/vdpa/.

Create the general files for vDPA class in drivers and in documentation.

The management tree for vDPA drivers is
git://dpdk.org/next/dpdk-next-virtio.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
4 years agoci: use meson 0.47.1
David Marchand [Thu, 9 Jan 2020 12:59:16 +0000 (13:59 +0100)]
ci: use meson 0.47.1

meson 0.53.0 has a compatibility issue [1] with the python 3.5.2 that comes
in Ubuntu 16.04.
On the other hand, the minimal version supported in dpdk is 0.47.1.

Stick to this version to avoid getting hit by regressions in meson latest
shiny release.

1: https://github.com/mesonbuild/meson/issues/6427

Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agobuild: fix libm detection in meson
David Marchand [Thu, 9 Jan 2020 12:59:15 +0000 (13:59 +0100)]
build: fix libm detection in meson

Using version 0.47.1, meson is unable to find the math library in Travis
for the 32bits job.
Quite surprisingly, this problem is not seen with the 64bits jobs.

Switching to 0.48.0, the problem disappears.

But we should pass 'm' to find_library instead of 'libm' anyway.

Fixes: 98edcbb5ab2f ("eal/windows: introduce Windows support")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agobuild: explicitly enable sse4 for meson
Bruce Richardson [Mon, 23 Dec 2019 10:38:40 +0000 (10:38 +0000)]
build: explicitly enable sse4 for meson

If the compiler does not recognise the specific CPU when building with the
default "native" machine type, sse4.2 instructions can be missing, causing
a build error. Rather than advising the user to change the machine type,
we can just turn on SSE4.2 directly. This can prevent issues with running
automated tests with older compilers/distros on newer hardware.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoservice: don't walk out of bounds when checking services
Aaron Conole [Tue, 3 Dec 2019 21:15:44 +0000 (16:15 -0500)]
service: don't walk out of bounds when checking services

The service_valid call is used without properly bounds checking the
input parameter.  Almost all instances of the service_valid call are
inside a for() loop that prevents excessive walks, but some of the
public APIs don't bounds check and will pass invalid arguments.

Prevent this by using SERVICE_GET_OR_ERR_RET where it makes sense,
and adding a bounds check to one service_valid() use.

Fixes: 8d39d3e237c2 ("service: fix race in service on app lcore function")
Fixes: e9139a32f6e8 ("service: add function to run on app lcore")
Fixes: e30dd31847d2 ("service: add mechanism for quiescing")
Cc: stable@dpdk.org
Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agotest/common: fix log2 check
David Marchand [Fri, 20 Dec 2019 14:01:49 +0000 (15:01 +0100)]
test/common: fix log2 check

We recently started to get random failures on the common_autotest ut with
clang on Ubuntu 16.04.6.

Example: https://travis-ci.com/DPDK/dpdk/jobs/263177424

Wrong rte_log2_u64(0) val 0, expected ffffffff
Test Failed

The ut passes 0 to log2() to get an expected value.

Quoting log2 / log(3) manual:
If x is zero, then a pole error occurs, and the functions return
-HUGE_VAL, -HUGE_VALF, or -HUGE_VALL, respectively.

rte_log2_uXX helpers handle 0 as a special value and return 0.
Let's have dedicated tests for this case.

Fixes: 05c4345ef5c2 ("test: add unit test for integer log2 function")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
4 years agobuild: fix soname info for 19.11 compatibility
Bruce Richardson [Thu, 12 Dec 2019 11:58:26 +0000 (11:58 +0000)]
build: fix soname info for 19.11 compatibility

The soname for each stable ABI version should be just the ABI version major
number without the minor number. Unfortunately both major and minor were
used causing version 20.1 to be incompatible with 20.0.

This patch fixes the issue by switching from 2-part to 3-part ABI version
numbers so that we can keep 20.0 as soname and using the final digits to
identify the 20.x releases which are ABI compatible. This requires changes
to both make and meson builds to handle the three-digit version and shrink
it to 2-digit for soname.

The final fix needed in this patch is to adjust the library version number
for the ethtool example library, which needs to be upped to 2-digits, as
external libraries using the DPDK build system also use the logic in this
file.

Fixes: cba806e07d6f ("build: change ABI versioning to global")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Ray Kinsella <mdr@ashroe.eu>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Kevin Laatz <kevin.laatz@intel.com>
Tested-by: David Marchand <david.marchand@redhat.com>
4 years agodevtools: fix debug build test
Thomas Monjalon [Mon, 16 Dec 2019 14:45:32 +0000 (15:45 +0100)]
devtools: fix debug build test

When testing build with +debug options, the statistics are enabled.
It was wrongly matching CONFIG_RTE_IBVERBS_LINK_STATIC.
The pattern is fixed to match only statistics config options.

Fixes: 2c0dd7b69fb0 ("config: add static linkage of mlx dependency")
Cc: stable@dpdk.org
Reported-by: Ali Alnubani <alialnu@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agonet/mlx: fix build with clang 9
Ali Alnubani [Wed, 11 Dec 2019 06:49:25 +0000 (06:49 +0000)]
net/mlx: fix build with clang 9

This rewrites the MKSTR macro appending an empty string to its arguments
to resolve build failures similar to:

  drivers/net/mlx4/mlx4.c:461:14: fatal error: format string is not a
  string literal [-Wformat-nonliteral]
          MKSTR(path, "%s/device/uevent", device->ibdev_path);

  drivers/net/mlx4/mlx4_utils.h:82:30: note: expanded from macro 'MKSTR'
          char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \

  drivers/net/mlx5/mlx5_stats.c:144:15: fatal error: format string is not a
  string literal [-Wformat-nonliteral]
   MKSTR(path, "%s/ports/%d/hw_counters/%s",

  drivers/net/mlx5/mlx5_utils.h:149:30: note: expanded from macro 'MKSTR'
   char name[snprintf(NULL, 0, __VA_ARGS__) + 1]; \

The errors reproduce with clang version 9.0.0, and the release notes
don't mention what could have caused them.

Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")
Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters")
Cc: stable@dpdk.org
Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
4 years agodoc: fix build with python 3.8
Thomas Monjalon [Mon, 9 Dec 2019 20:43:12 +0000 (21:43 +0100)]
doc: fix build with python 3.8

After upgrading to python-3.8.0, a syntax mismatch is revealed:

doc/guides/conf.py:240: SyntaxWarning: "is not" with a literal.
    Did you mean "!="?
    if value is not '':

Removing "is not ''" seems the right thing to do.

A patch may also be needed in the RTD theme package:
https://github.com/readthedocs/sphinx_rtd_theme/commit/a49a812c.diff
(not included in release 0.4.3)

Fixes: 9db3f52126fb ("doc: generate NIC overview table from ini files")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agoeal/linux: fix build error on RHEL 7.6
David Marchand [Wed, 4 Dec 2019 13:16:22 +0000 (14:16 +0100)]
eal/linux: fix build error on RHEL 7.6

Previous fix gives hiccups to gcc on RHEL 7.6:

== Build lib/librte_eal/linux/eal
  CC eal_interrupts.o
...lib/librte_eal/linux/eal/eal_interrupts.c: In function
  ‘eal_intr_thread_main’:
...lib/librte_eal/linux/eal/eal_interrupts.c:1048:9: error: missing
  initializer for field ‘events’ of ‘struct epoll_event’
  [-Werror=missing-field-initializers]
  struct epoll_event ev = { };
         ^
In file included from ...lib/librte_eal/linux/eal/eal_interrupts.c:15:0:
/usr/include/sys/epoll.h:89:12: note: ‘events’ declared here
   uint32_t events; /* Epoll events */
            ^
...lib/librte_eal/linux/eal/eal_interrupts.c: At top level:
cc1: error: unrecognized command line option
  "-Wno-address-of-packed-member" [-Werror]
cc1: all warnings being treated as errors

Fixes: e0ab8020ac2a ("eal/linux: fix uninitialized data valgrind warning")
Cc: stable@dpdk.org
Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agoeal/linux: fix uninitialized data valgrind warning
Stephen Hemminger [Wed, 27 Nov 2019 22:32:32 +0000 (14:32 -0800)]
eal/linux: fix uninitialized data valgrind warning

Valgrind reports that eal interrupt thread is calling epoll_ctl
with uninitialized data.
This is a false positive, because the kernel is not going to care about
the unused bits in the union but trivial to fix by initializing it.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoversion: 20.02-rc0
Thomas Monjalon [Mon, 2 Dec 2019 14:49:08 +0000 (15:49 +0100)]
version: 20.02-rc0

Start a new release cycle with empty release notes.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
5 years agoversion: 19.11.0
Thomas Monjalon [Thu, 28 Nov 2019 22:13:49 +0000 (23:13 +0100)]
version: 19.11.0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
5 years agoconfig: add pkgconfig for arm64
Ali Alnubani [Thu, 28 Nov 2019 07:24:38 +0000 (07:24 +0000)]
config: add pkgconfig for arm64

Meson fails to find a pkg-config executable if pkgconfig
isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
is useless in this case, and meson fails to locate dependencies
that are built in non-standard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agodoc: update arm64 cross build tool version
Joyce Kong [Thu, 28 Nov 2019 06:32:59 +0000 (14:32 +0800)]
doc: update arm64 cross build tool version

Update the cross build tool version to gcc8.3.

Fixes: 01add9da25cd ("doc: add cross compiling guide")
Cc: stable@dpdk.org
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: update libnuma dependency on arm64
Ali Alnubani [Wed, 27 Nov 2019 15:23:18 +0000 (15:23 +0000)]
doc: update libnuma dependency on arm64

Previous versions of numactl may produce the following error
on some systems (at least on Fedora 30 and RHEL7.4):

  ./.libs/libnuma.so: undefined reference to `minor'
  ./.libs/libnuma.so: undefined reference to `major'
  collect2: error: ld returned 1 exit status

This was fixed in upstream commit:
https://github.com/numactl/numactl/commit/25691a084a2012a339395ade567dbae814e237e9
The fix is available in v2.0.13.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
5 years agodoc: update example output in FreeBSD guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:50 +0000 (16:33 +0000)]
doc: update example output in FreeBSD guide

The output of running the helloworld example on FreeBSD was a little
out-of-date and can be shortened by using the latest version of DPDK.
Update appropriately.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agodoc: remove reference to old version of FreeBSD
Bruce Richardson [Thu, 28 Nov 2019 16:33:49 +0000 (16:33 +0000)]
doc: remove reference to old version of FreeBSD

FreeBSD 10 is now EOL and all testing with DPDK takes place on BSD versions
11 and 12, so we can just remove the note. The BSD ports are supported on
all non-EOL versions of BSD.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agodoc: reorder meson and make build instructions for Arm
Bruce Richardson [Thu, 28 Nov 2019 16:33:48 +0000 (16:33 +0000)]
doc: reorder meson and make build instructions for Arm

Since the meson instructions are the simpler of the two sets, and also the
ones most future-proof, put those first in the user documentation with make
instructions following them.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
5 years agodoc: add building with meson to Linux guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:47 +0000 (16:33 +0000)]
doc: add building with meson to Linux guide

Add instructions on building DPDK and using the pkg-config file to the
linux GSG.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agodoc: update system requirements in Linux guide
Bruce Richardson [Thu, 28 Nov 2019 16:33:46 +0000 (16:33 +0000)]
doc: update system requirements in Linux guide

Update the system requirements section of the doc to cover builds with
meson and ninja. This involves updating the package dependencies to include
meson, ninja and python 3.5, and also updating the optional dependencies
section to explain that the components are enabled/disabled automatically
by meson.

As part of this update, the relevant sections were simplified to keep the
document shorter. For mandatory requirements, we can refer to the various
distro's development tools package groups rather than requiring gcc, core
tools etc. individually. The optional package list was very incomplete, and
if complete would duplicate information in the individual driver's guides.
Therefore we can simplify it by listing only the library optional
requirements and referring users to the driver docs to find details on
their dependencies.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>