dpdk.git
6 years agopmdinfogen: fix resource leak of file object
Bruce Richardson [Fri, 2 Feb 2018 12:00:58 +0000 (12:00 +0000)]
pmdinfogen: fix resource leak of file object

Coverity flags an issue where the resources used by the FILE object for
the temporary input file are leaked. This is a very minor issue, but is
easily fixed, while also avoiding later problems where we try to close
an invalid file descriptor in the failure case.

The fix is to use "dup()" to get a new file descriptor number rather than
using the value directly from fileno. This allows us to close the file
opened with tmpfile() within in scope block, while allowing the duplicate
to pass to the outer block and be closed when the function terminates.

As a side-effect I/O in the function is therefore changed from using stdio
fread/fwrite to read/write system calls.

Coverity issue: 260399
Fixes: 0d68533617e3 ("pmdinfogen: allow using stdin and stdout")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
6 years agombuf: fix logic of user mempool ops API
Nipun Gupta [Fri, 2 Feb 2018 08:03:01 +0000 (13:33 +0530)]
mbuf: fix logic of user mempool ops API

The existing rte_eal_mbuf_default mempool ops can return the compile time
default ops name if the user has not provided command line inputs for
mempool ops name. It will break the logic of best mempool ops as it will
never return platform hw mempool ops.

This patch introduces a new API to just return the user mempool ops only.

Fixes: 8b0f7f434132 ("mbuf: maintain user and compile time mempool ops name")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
6 years agomempool: fix physical contiguous check
Andrew Rybchenko [Thu, 1 Feb 2018 14:02:23 +0000 (14:02 +0000)]
mempool: fix physical contiguous check

There is not specified dependency between rte_mempool_populate_default()
and rte_mempool_populate_iova(). So, the second should not rely on the
fact that the first adds capability flags to the mempool flags.

Fixes: 65cf769f5e6a ("mempool: detect physical contiguous objects")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
6 years agoevent/dpaa: fix portal allocation
Nipun Gupta [Mon, 5 Feb 2018 05:21:57 +0000 (10:51 +0530)]
event/dpaa: fix portal allocation

Checking if portal has been allocated is now required at the
caller of rte_dpaa_portal_init() API. This patch adds check
in the dpaa eventdev driver.

Fixes: 5d944582d028 ("bus/dpaa: check portal presence in the caller function")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agoevent/dpaa: rename vdev with dpaa1
Nipun Gupta [Mon, 5 Feb 2018 05:21:56 +0000 (10:51 +0530)]
event/dpaa: rename vdev with dpaa1

DPAA2 eventdev is named as event_dpaa2 which conflicts with
event_dpaa when both are compiled in together. So event_dpaa
is required to renamed.

Fixes: 1ee9569576f6 ("config: enable dpaaX drivers for generic ARMv8")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agobus/dpaa: fix mempool ops registration
Nipun Gupta [Mon, 5 Feb 2018 05:21:55 +0000 (10:51 +0530)]
bus/dpaa: fix mempool ops registration

Fixes: 2bd0d5b951a9 ("bus/dpaa: register platform HW mempool on runtime")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Shreyansh Jain <Shreyansh.jain@nxp.com>
6 years agobus/fslmc: fix mempool ops registration
Nipun Gupta [Mon, 5 Feb 2018 05:21:54 +0000 (10:51 +0530)]
bus/fslmc: fix mempool ops registration

Fixes: 8824b74d8f5f ("bus/fslmc: register platform HW mempool on runtime")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agobus/vdev: continue probing after a device failure
Moti Haimovsky [Mon, 5 Feb 2018 17:15:03 +0000 (19:15 +0200)]
bus/vdev: continue probing after a device failure

This commit modifies vdev_probe to continue probing all the devices
regardless of device probing failures.

Cc: stable@dpdk.org
Signed-off-by: Moti Haimovsky <motih@mellanox.com>
6 years agoeal: add error check for core options
Marko Kovacevic [Fri, 2 Feb 2018 14:51:28 +0000 (14:51 +0000)]
eal: add error check for core options

Error information on current core usage list, mask or map
were incomplete. Added states to differentiate core usage
and to inform user.

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agoigb_uio: print IRQ as decimal number
Tonghao Zhang [Tue, 23 Jan 2018 16:17:34 +0000 (08:17 -0800)]
igb_uio: print IRQ as decimal number

The kernel uses the '%d' or '%ld' to print irq num.
But igb_uio may use the '%lx', then the log may confuse
the user what irq num has been used. The log is show as
below.

igb_uio 0000:00:03.0: irq 24 for MSI/MSI-X
igb_uio 0000:00:03.0: uio device registered with irq 18

kernel version: 3.10.0-514.16.1.el7

For avoiding to be confused, change the igb_uio irq
print type.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
6 years agomk: fix external build
Marko Kovacevic [Mon, 5 Feb 2018 15:45:31 +0000 (15:45 +0000)]
mk: fix external build

Code commit for 'make -f' support, breaks the build in cases where
entries in $(MAKEFILE_LIST) are absolute paths. This commit uses
notdir and firstword to ensure that only the local filename is used.

Fixes: 3a5c339d51a4 ("mk: support renamed Makefile in external project")
Cc: stable@dpdk.org
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agonet/tap: fix icc build
Zhiyong Yang [Thu, 1 Feb 2018 04:43:00 +0000 (12:43 +0800)]
net/tap: fix icc build

The following error is reported when compiling 18.02-rc2 using ICC,
"transfer of control bypasses initialization of".
The patch fixes the issue.

Fixes: 1911c5edc6cd ("net/tap: fix eBPF RSS map key handling")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
6 years agoversion: 18.02-rc2
Thomas Monjalon [Thu, 1 Feb 2018 02:09:10 +0000 (03:09 +0100)]
version: 18.02-rc2

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: add procinfo restriction with vdev
Marko Kovacevic [Wed, 24 Jan 2018 16:47:26 +0000 (16:47 +0000)]
doc: add procinfo restriction with vdev

Note added to outline that using
proc_info for virtual devices is not supported

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
6 years agodoc: add procinfo restriction with shared library
Vipin Varghese [Tue, 30 Jan 2018 12:17:02 +0000 (17:47 +0530)]
doc: add procinfo restriction with shared library

added note category to procinfo guide, to intimate users in shared
library mode. Procinfo requires same NIC libraries to probe the NIC
devices as Primary Application.

Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agodoc: add a restriction to multi-process support
Junjie Chen [Wed, 29 Nov 2017 17:17:13 +0000 (12:17 -0500)]
doc: add a restriction to multi-process support

This patch add a restriction to multi-process support: secondary
processes should only run alongside primary process with same DPDK
version, so that secondary processes can use the same hugepage mmap
layout as primary process.

Signed-off-by: Junjie Chen <junjie.j.chen@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agoevent/opdl: fix license header and SPDX tags
Bruce Richardson [Tue, 23 Jan 2018 14:11:33 +0000 (14:11 +0000)]
event/opdl: fix license header and SPDX tags

This patch ensures that the OPDL files all contain correct SPDX tags.
The following changes were made to achieve this:
* replace license text with SPDX tag
* correct occurences where SPDX tag was not on first line of file
* ensure license years were correct

Fixes: 4236ce9bf5bf ("event/opdl: add OPDL ring infrastructure library")
Fixes: 3c7f3dcfb099 ("event/opdl: add PMD main body and helper function")
Fixes: d548ef513cd7 ("event/opdl: add unit tests")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Liang Ma <liang.j.ma@intel.com>
6 years agodoc: replace license text with SPDX tags on SVG images
Bruce Richardson [Tue, 23 Jan 2018 13:33:37 +0000 (13:33 +0000)]
doc: replace license text with SPDX tags on SVG images

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agoconfig: replace Intel license headers with SPDX tags
Bruce Richardson [Tue, 23 Jan 2018 14:21:16 +0000 (14:21 +0000)]
config: replace Intel license headers with SPDX tags

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
6 years agotest: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:29 +0000 (14:11 +0100)]
test: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoapp/testpmd: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:28 +0000 (14:11 +0100)]
app/testpmd: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/ixgbe: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:35 +0000 (14:11 +0100)]
net/ixgbe: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/failsafe: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:34 +0000 (14:11 +0100)]
net/failsafe: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/tap: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:36 +0000 (14:11 +0100)]
net/tap: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/af_packet: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:33 +0000 (14:11 +0100)]
net/af_packet: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/mlx4: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:31 +0000 (14:11 +0100)]
net/mlx4: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/mlx5: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:30 +0000 (14:11 +0100)]
net/mlx5: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoethdev: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:26 +0000 (14:11 +0100)]
ethdev: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agobus/pci: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:32 +0000 (14:11 +0100)]
bus/pci: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agopci: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:27 +0000 (14:11 +0100)]
pci: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: use SPDX tags in 6WIND copyrighted files
Olivier Matz [Mon, 29 Jan 2018 13:11:25 +0000 (14:11 +0100)]
eal: use SPDX tags in 6WIND copyrighted files

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet: use SPDX tags
Olivier Matz [Mon, 29 Jan 2018 13:11:24 +0000 (14:11 +0100)]
net: use SPDX tags

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agokvargs: use SPDX tags
Olivier Matz [Mon, 29 Jan 2018 13:11:23 +0000 (14:11 +0100)]
kvargs: use SPDX tags

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agomempool: use SPDX tags
Olivier Matz [Mon, 29 Jan 2018 13:11:22 +0000 (14:11 +0100)]
mempool: use SPDX tags

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agombuf: use SPDX tags
Olivier Matz [Mon, 29 Jan 2018 13:11:21 +0000 (14:11 +0100)]
mbuf: use SPDX tags

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agocmdline: use SPDX tags
Olivier Matz [Mon, 29 Jan 2018 13:11:20 +0000 (14:11 +0100)]
cmdline: use SPDX tags

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoring: convert license headers to SPDX tags
Jia He [Mon, 22 Jan 2018 07:13:48 +0000 (23:13 -0800)]
ring: convert license headers to SPDX tags

Signed-off-by: Jia He <jia.he@hxt-semitech.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agoexamples/flow_filtering: add delay to wait link update
Beilei Xing [Wed, 24 Jan 2018 10:15:34 +0000 (18:15 +0800)]
examples/flow_filtering: add delay to wait link update

Add up to 9s delay for getting link status to make sure NIC updates
link status successfully, just like other applications such as
testpmd and l2fwd.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Ori Kam <orika@mellanox.com>
6 years agoexamples/bond: check mbuf allocation
Radu Nicolau [Wed, 24 Jan 2018 13:16:46 +0000 (13:16 +0000)]
examples/bond: check mbuf allocation

Coverity issue: 257008
Fixes: cc7e8ae84faa ("examples/bond: add example application for link bonding mode 6")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
6 years agoexamples/vm_power_manager: fix set VF MAC address
David Coyle [Tue, 23 Jan 2018 14:14:15 +0000 (14:14 +0000)]
examples/vm_power_manager: fix set VF MAC address

Current code only sets mac address of first VF. Fix code so that it
continues through the loop and sets the mac address of each VF.

Fixes: c9a4779135c9 ("examples/vm_power_mgr: set MAC address of VF")
Cc: stable@dpdk.org
Signed-off-by: David Coyle <david.coyle@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
6 years agotest/pmd_perf: declare variables as static
Pablo de Lara [Fri, 19 Jan 2018 14:37:13 +0000 (14:37 +0000)]
test/pmd_perf: declare variables as static

Some variables in the PMD perf test were declared as global,
but they are only used in this test, so they should actually
be declared as static.

Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agokni: set initial value for MTU
Hemant Agrawal [Thu, 18 Jan 2018 06:13:00 +0000 (11:43 +0530)]
kni: set initial value for MTU

Configure initial application provided  mtu on the KNI interface.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agokni: support promiscuous mode set
Hemant Agrawal [Thu, 18 Jan 2018 06:12:59 +0000 (11:42 +0530)]
kni: support promiscuous mode set

Inform userspace app about promisc mode change

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agokni: support MAC address change
Hemant Agrawal [Thu, 18 Jan 2018 06:12:58 +0000 (11:42 +0530)]
kni: support MAC address change

This patch adds following:
1. Option to configure the mac address during create. Generate random
   address only if the user has not provided any valid address.
2. Inform usespace, if mac address is being changed in linux.
3. Implement default handling of mac address change in the corresponding
   ethernet device.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agolpm: fix allocation of an existing object
Pavan Nikhilesh [Tue, 30 Jan 2018 18:51:54 +0000 (00:21 +0530)]
lpm: fix allocation of an existing object

Fix rte_lpm_create_*() functions to return NULL and set rte_errno to
EEXIST when lpm object name already exists.
This is the behavior described in the API documentation in the header
file.

Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agocrypto/qat: fix allocation check and leak
Yong Wang [Thu, 25 Jan 2018 06:53:04 +0000 (01:53 -0500)]
crypto/qat: fix allocation check and leak

There are several func calls to rte_zmalloc() which don't do null
point check on the return value. And before return, the memory is not
freed. Fix it by adding null point check and rte_free().

Fixes: 1703e94ac5ce ("qat: add driver for QuickAssist devices")
Fixes: e09231eaa2af ("crypto/qat: add SGL capability")
Cc: stable@dpdk.org
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/tap: remove speed argument
Vipin Varghese [Fri, 26 Jan 2018 22:27:26 +0000 (03:57 +0530)]
net/tap: remove speed argument

TAP is a virtual device created on Kernel. The speed of interface is
set by Kernel to a fixed static value. But this does not prevent using
RX or TX to rate limit. Hence removing the option from user arguments.

Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoexamples/bond: fix vdev name
Radu Nicolau [Thu, 25 Jan 2018 16:26:26 +0000 (16:26 +0000)]
examples/bond: fix vdev name

Fixes: 73db5bad ("net: align ethdev and eal driver names")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
6 years agonet/bonding: fix burst hash computation
Radu Nicolau [Mon, 29 Jan 2018 14:36:03 +0000 (14:36 +0000)]
net/bonding: fix burst hash computation

Wrong function was used for l23 and l34 hashing
slave index was incremented twice.

Fixes: 09150784a776 ("net/bonding: burst mode hash calculation")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
6 years agonet/avf: fix uninitialized variables
Jingjing Wu [Tue, 30 Jan 2018 03:32:58 +0000 (11:32 +0800)]
net/avf: fix uninitialized variables

This patch fixes the coverity UNINIT issue.

Coverity issue: 257016, 257036
Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")

Reported-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
6 years agonet/avf: fix unchecked return in link update
Jingjing Wu [Tue, 30 Jan 2018 09:10:36 +0000 (17:10 +0800)]
net/avf: fix unchecked return in link update

This patch fixes the coverity CHECKED_RETURN issue.

Coverity issue: 257045
Fixes: 48de41ca11f0 ("net/avf: enable link status update")

Reported-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
6 years agonet/dpaa2: fix Tx only mode
Hemant Agrawal [Tue, 30 Jan 2018 15:24:09 +0000 (20:54 +0530)]
net/dpaa2: fix Tx only mode

Fixes: 043b36f621dd ("net/dpaa2: support more than 16 burst size in Rx")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
6 years agonet/tap: fix eBPF RSS map key handling
Ophir Munk [Tue, 30 Jan 2018 16:00:29 +0000 (16:00 +0000)]
net/tap: fix eBPF RSS map key handling

This commit addresses a case of RSS and non RSS flows mixture.
In the corrupted code, if a non-RSS flow is destroyed, it has an eBPF map
index 0 (initialized upon flow creation). This might unintentionally remove
RSS entry 0 from eBPF map.
To fix this issue, add an offset to the real index during a KEY_CMD_GET
operation, and subtract this offset during a KEY_CMD_RELEASE operation, in
order to restore the real index.
Thus, if a non RSS flow is falsely trying to release map entry 0 - The
offset subtraction will calculate the real map index as an
out-of-range value, and the release operation will be silently ignored.

Fixes: 036d721a8229 ("net/tap: implement RSS using eBPF")

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
6 years agonet/tap: fix eBPF file descriptors leakage
Ophir Munk [Tue, 30 Jan 2018 16:00:28 +0000 (16:00 +0000)]
net/tap: fix eBPF file descriptors leakage

When a user creates an RSS rule, the tap PMD dynamically allocates
a 'flow' data structure, and uploads BPF programs (represented by file
descriptors) to the kernel.
The kernel might reject the rule (due to filters overlap, for example)
in which case, flow memory should be freed and BPF file descriptors
should be closed.
In the corrupted code there were scenarios where BPF file descriptors
were not closed.
The fix is to add a new function - tap_flow_free(), which will make sure
to always close BPF file descriptors before freeing the flow allocated
memory.

Fixes: 036d721a8229 ("net/tap: implement RSS using eBPF")

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
6 years agonet/null: support MTU update
Mallesh Koujalagi [Wed, 31 Jan 2018 02:08:15 +0000 (18:08 -0800)]
net/null: support MTU update

NULL device is failed to attach ovs, reported operation not supported
and configuration failed.

To attach ovs:
$VSCTL add-port ovs-br dpdk1 -- set Interface dpdk1 type=dpdk \
        options:dpdk-devargs=eth_null0,size=64,copy=1

Signed-off-by: Mallesh Koujalagi <malleshx.koujalagi@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/mlx5: spawn rdma-core dependency plug-in
Adrien Mazarguil [Tue, 30 Jan 2018 15:34:58 +0000 (16:34 +0100)]
net/mlx5: spawn rdma-core dependency plug-in

When mlx5 is not compiled directly as an independent shared object (e.g.
CONFIG_RTE_BUILD_SHARED_LIB not enabled for performance reasons), DPDK
applications inherit its dependencies on libibverbs and libmlx5 through
rte.app.mk.

This is an issue both when DPDK is delivered as a binary package (Linux
distributions) and for end users because rdma-core then propagates as a
mandatory dependency for everything.

Application writers relying on binary DPDK packages are not necessarily
aware of this fact and may end up delivering packages with broken
dependencies.

This patch therefore introduces an intermediate internal plug-in
hard-linked with rdma-core (to preserve symbol versioning) loaded by the
PMD through dlopen(), so that a missing rdma-core does not cause unresolved
symbols, allowing applications to start normally.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agonet/mlx5: move rdma-core calls to separate file
Nelio Laranjeiro [Tue, 30 Jan 2018 15:34:56 +0000 (16:34 +0100)]
net/mlx5: move rdma-core calls to separate file

This lays the groundwork for externalizing rdma-core as an optional
run-time dependency instead of a mandatory one.

No functional change.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agonet/mlx4: spawn rdma-core dependency plug-in
Adrien Mazarguil [Tue, 30 Jan 2018 15:34:54 +0000 (16:34 +0100)]
net/mlx4: spawn rdma-core dependency plug-in

When mlx4 is not compiled directly as an independent shared object (e.g.
CONFIG_RTE_BUILD_SHARED_LIB not enabled for performance reasons), DPDK
applications inherit its dependencies on libibverbs and libmlx4 through
rte.app.mk.

This is an issue both when DPDK is delivered as a binary package (Linux
distributions) and for end users because rdma-core then propagates as a
mandatory dependency for everything.

Application writers relying on binary DPDK packages are not necessarily
aware of this fact and may end up delivering packages with broken
dependencies.

This patch therefore introduces an intermediate internal plug-in
hard-linked with rdma-core (to preserve symbol versioning) loaded by the
PMD through dlopen(), so that a missing rdma-core does not cause unresolved
symbols, allowing applications to start normally.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agonet/mlx4: move rdma-core calls to separate file
Adrien Mazarguil [Tue, 30 Jan 2018 15:34:52 +0000 (16:34 +0100)]
net/mlx4: move rdma-core calls to separate file

This lays the groundwork for externalizing rdma-core as an optional
run-time dependency instead of a mandatory one.

No functional change.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
6 years agonet/ixgbe: fix reset error handling
Wei Zhao [Mon, 29 Jan 2018 08:07:26 +0000 (16:07 +0800)]
net/ixgbe: fix reset error handling

Add error handling for resetting HW.

Fixes: 0a45657a6794 ("pci: rework interrupt handling")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
6 years agonet/i40e: fix flow RSS return error
Wei Zhao [Fri, 26 Jan 2018 08:46:51 +0000 (16:46 +0800)]
net/i40e: fix flow RSS return error

This patch fixes issues reported by Coverity check. Function
parse_rss_action and i40e_config_rss_filter might return at wrong
time which will cause error for RSS configuration and parser. Hash
function variable with 32 bits width might also cause error when
it needs more than 32 bits, so change this variable to 64 bits.

Coverity issue: 257020, 257024, 257037
Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agoexamples: increase default ring sizes to 1024
Kevin Laatz [Fri, 12 Jan 2018 10:48:44 +0000 (10:48 +0000)]
examples: increase default ring sizes to 1024

Increase the default RX/TX ring sizes to 1024/1024 to
accommodate for NICs with higher throughput (25G, 40G etc)

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agotest: increase default ring sizes to 1024
Kevin Laatz [Fri, 12 Jan 2018 10:48:46 +0000 (10:48 +0000)]
test: increase default ring sizes to 1024

Increase the default RX/TX ring sizes to 1024/1024 to
accommodate for NICs with higher throughput (25G, 40G etc)

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agoapp/testpmd: increase default ring sizes to 1024
Kevin Laatz [Fri, 12 Jan 2018 10:48:45 +0000 (10:48 +0000)]
app/testpmd: increase default ring sizes to 1024

Increase the default RX/TX ring sizes to 1024/1024 to
accommodate for NICs with higher throughput (25G, 40G etc)

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agodoc: fix testpmd commands for TM capabilities
Tomasz Duszynski [Sun, 28 Jan 2018 15:08:14 +0000 (16:08 +0100)]
doc: fix testpmd commands for TM capabilities

Command used for querying node or level capabilities requires
argument which specifies which set of capabilities to show.

Thus trying to show node/level capabilities using current
documentation will not work. Fix that by adding missing
arguments to command documentation.

Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding mode")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agoapp/testpmd: add meter to flow actions table
Tomasz Duszynski [Sun, 28 Jan 2018 11:58:39 +0000 (12:58 +0100)]
app/testpmd: add meter to flow actions table

Since METER action is supported by the testpmd application
suitable entry should exist in flow actions information table.

Without that testpmd will return error on adding a new flow to
the list of flows attached to a given port.

Fixes: 30ffb4e67ee3 ("app/testpmd: add commands traffic metering and policing")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
6 years agoapp/testpmd: fix allocation check in TM config
Jasvinder Singh [Mon, 22 Jan 2018 15:45:53 +0000 (15:45 +0000)]
app/testpmd: fix allocation check in TM config

Calloc() function might returns NULL due to insufficient space. Therefore,
check for handling memory allocation failure is added.

Coverity issue: 257030
Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding mode")
Cc: stable@dpdk.org
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agoapp/testpmd: fix allocation check in MTR parsing
Jasvinder Singh [Mon, 22 Jan 2018 15:15:04 +0000 (15:15 +0000)]
app/testpmd: fix allocation check in MTR parsing

Malloc() function might return NULL due to insufficient space. Therefore,
check for handling memory allocation failure is added.

Coverity issue: 257039
Fixes: e63b50162aa3 ("app/testpmd: clean metering and policing commands")

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
6 years agoapp/testpmd: move variables definition in source
Georgios Katsikas [Wed, 24 Jan 2018 11:53:36 +0000 (12:53 +0100)]
app/testpmd: move variables definition in source

This patch moves the definition of 3 variables in testpmd.h
into the respective .c file. The idea behind this move is
to allow external applications to compile against testpmd
without throwing compilation errors related to multiple
definition of variables.

Also, an extern dcb_q_mapping in testpmd.h is removed
since it appears that this variable is not defined
elsewhere in the tree.

Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
6 years agoapp/testpmd: change log level at run time
Elza Mathew [Mon, 22 Jan 2018 22:09:45 +0000 (14:09 -0800)]
app/testpmd: change log level at run time

Introduced a run time command to change the
log level for a given log type. Added the
necessary documentation.

Signed-off-by: Elza Mathew <elza.mathew@intel.com>
6 years agoapp/testpmd: fix port id size
Remy Horton [Fri, 19 Jan 2018 13:27:22 +0000 (13:27 +0000)]
app/testpmd: fix port id size

The word size of port_id is now 16 bits, but there were parsing directives
that assumed it was still of type UINT8, resulting in incorrect commandline
parse results.

Fixes: f14a210a65fe ("app: fix port id type")
Cc: stable@dpdk.org
Signed-off-by: Remy Horton <remy.horton@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoapp/testpmd: fix SW checksum calculation enabling
Jiayu Hu [Thu, 25 Jan 2018 02:13:44 +0000 (10:13 +0800)]
app/testpmd: fix SW checksum calculation enabling

In current design, we can't enable SW checksum calculation
for the devices which don't have checksum offloading abilities
via the command "csum set ip|tcp|udp|sctp|outer-ip sw <port_id>".
But SW checksum calculation shouldn't depend on HW offloading
abilities. This patch is to fix this issue.

Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agoapp/testpmd: disable Rx VLAN offloads by default
Moti Haimovsky [Wed, 31 Jan 2018 17:32:03 +0000 (19:32 +0200)]
app/testpmd: disable Rx VLAN offloads by default

Removed the hardcoded preconfigured Rx VLAN offload configuration
from testpmd and changed the Rx offload command line parameters from
disable to enable.

It has been decided by the Technical Board that testers who wish to
use these offloads will now have to explicitly write them in the
command-line when running testpmd.
The agreement is to keep two exceptions enabled by default in 18.02:
Rx CRC strip and Tx fast free.

Motivation:
Some PMDs such at the mlx4 may not implement all the offloads.
After the offload API rework assuming no offload is enabled by default,
  commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API")
  commit cba7f53b717d ("ethdev: introduce Tx queue offloads API") trying
to enable a not supported offload is clearly an error which will cause
configuration failing.

Considering that testpmd is an application to test the PMD, it should
not fail on a configuration which was not explicitly requested.
The behavior of this test application is then turned to an opt-in
model.

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoapp/testpmd: fix invalid port detach
Matan Azrad [Tue, 30 Jan 2018 14:13:40 +0000 (14:13 +0000)]
app/testpmd: fix invalid port detach

Using registration to all ports includes also the ports which should not
be used by the application.

It is nice to print each port event by testpmd but in case of RMV
event, testpmd tries to detach the port and this case is problematic
when the port should not be used by the application.

Check the port validation before detach API calling.

Fixes: 4fb82244b394 ("app/testpmd: extend event printing")

Signed-off-by: Matan Azrad <matan@mellanox.com>
6 years agoapp/testpmd: fix port validation
Matan Azrad [Tue, 30 Jan 2018 14:13:39 +0000 (14:13 +0000)]
app/testpmd: fix port validation

rte_eth_dev_is_valid_port() API validates each valid port from ethdev
point of view and may validate ports which should not be used by the
application.

Testpmd should use only the ports available through the
RTE_ETH_FOREACH_DEV iterator.

Replace rte_eth_dev_is_valid_port() usage by RTE_ETH_FOREACH_DEV
iterator usage for testpmd ports validation.

Fixes: 7d89b2610353 ("app/testpmd: use ethdev iterator to list devices")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
6 years agonet/failsafe: use ownership mechanism for slaves
Matan Azrad [Mon, 22 Jan 2018 16:38:22 +0000 (16:38 +0000)]
net/failsafe: use ownership mechanism for slaves

Fail-safe PMD sub devices management is based on ethdev port mechanism.
So, the sub-devices management structures are exposed to other DPDK
entities which may use them in parallel to fail-safe PMD.

Use the new port ownership mechanism to avoid multiple managments of
fail-safe PMD sub-devices.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
6 years agonet/failsafe: free port by dedicated function
Matan Azrad [Mon, 22 Jan 2018 16:38:21 +0000 (16:38 +0000)]
net/failsafe: free port by dedicated function

Call dedicated ethdev API to free port in remove time as was done in
other fail-safe places.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
6 years agoethdev: synchronize port allocation
Matan Azrad [Mon, 22 Jan 2018 16:38:20 +0000 (16:38 +0000)]
ethdev: synchronize port allocation

Ethernet port allocation was not thread safe, means 2 threads which tried
to allocate a new port at the same time might get an identical port
identifier and caused to memory overwrite.
Actually, all the port configurations were not thread safe from ethdev
point of view.

The port ownership mechanism added to the ethdev is a good point to
redefine the synchronization rules in ethdev:

1. The port allocation and port release synchronization will be
   managed by ethdev.
2. The port usage synchronization will be managed by the port owner.
3. The port ownership synchronization will be managed by ethdev.

Add port allocation synchronization to complete the new rules.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agoethdev: add port ownership
Matan Azrad [Mon, 22 Jan 2018 16:38:19 +0000 (16:38 +0000)]
ethdev: add port ownership

The ownership of a port is implicit in DPDK.
Making it explicit is better from the next reasons:
1. It will define well who is in charge of the port usage synchronization.
2. A library could work on top of a port.
3. A port can work on top of another port.

Also in the fail-safe case, an issue has been met in testpmd.
We need to check that the application is not trying to use a port which
is already managed by fail-safe.

A port owner is built from owner id(number) and owner name(string) while
the owner id must be unique to distinguish between two identical entity
instances and the owner name can be any name.
The name helps to logically recognize the owner by different DPDK
entities and allows easy debug.
Each DPDK entity can allocate an owner unique identifier and can use it
and its preferred name to owns valid ethdev ports.
Each DPDK entity can get any port owner status to decide if it can
manage the port or not.

The mechanism is synchronized for both the primary process threads and
the secondary processes threads to allow secondary process entity to be
a port owner.

Add a synchronized ownership mechanism to DPDK Ethernet devices to
avoid multiple management of a device by different DPDK entities.

The current ethdev internal port management is not affected by this
feature.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agoethdev: fix port id allocation
Matan Azrad [Mon, 22 Jan 2018 16:38:18 +0000 (16:38 +0000)]
ethdev: fix port id allocation

rte_eth_dev_find_free_port() found a free port by state checking.
The state field are in local process memory, so other DPDK processes
may get the same port ID because their local states may be different.

Replace the state checking by the ethdev port name checking,
so, if the name is an empty string the port ID will be detected as
unused.

Fixes: d948f596fee2 ("ethdev: fix port data mismatched in multiple process model")
Cc: stable@dpdk.org
Suggested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agoethdev: fix port data reset timing
Matan Azrad [Mon, 22 Jan 2018 16:38:17 +0000 (16:38 +0000)]
ethdev: fix port data reset timing

rte_eth_dev_data structure is allocated per ethdev port and can be
used to get a data of the port internally.

rte_eth_dev_attach_secondary tries to find the port identifier using
rte_eth_dev_data name field comparison and may get an identifier of
invalid port in case of this port was released by the primary process
because the port release API doesn't reset the port data.

So, it will be better to reset the port data in release time instead of
allocation time.

Move the port data reset to the port release API.

Fixes: d948f596fee2 ("ethdev: fix port data mismatched in multiple process model")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
6 years agonet/tap: fix build on ARM32
Ophir Munk [Wed, 31 Jan 2018 16:03:58 +0000 (16:03 +0000)]
net/tap: fix build on ARM32

This commit adds eBPF system call definitions for ARM architecture.
Old Linux header files may not define eBPF system call numbers.
In order to successful compile eBPF on all Linux platforms - the
missing ARM system call definition is explicitly added.

Fixes: b02d85e1 ("net/tap: add eBPF API")

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
6 years agocrypto/scheduler: fix strncpy
Pablo de Lara [Mon, 29 Jan 2018 09:22:02 +0000 (09:22 +0000)]
crypto/scheduler: fix strncpy

The coverity issue was not completely fixed, since strncpy
should not be called with max length.
Instead, snprintf is used as a safer option.

Coverity issue: 143431
Fixes: d040aca67170 ("crypto/scheduler: fix strings not null terminated")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
6 years agoexamples/bbdev: fix unchecked return of stats
Amr Mokhtar [Wed, 31 Jan 2018 14:40:25 +0000 (14:40 +0000)]
examples/bbdev: fix unchecked return of stats

Added a check on rte_bbdev_stats_get() return before
printing out the statistics results.

Coverity issue: 257018
Fixes: 1ffee690eaa1 ("examples/bbdev: add sample app")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoexamples/bbdev: fix memory leak in stats print
Amr Mokhtar [Wed, 31 Jan 2018 14:30:29 +0000 (14:30 +0000)]
examples/bbdev: fix memory leak in stats print

xstats and xstats_names buffers were allocated for
the purpose of printing eth_xstats, but were not
freed before exit.
A fix is added to free before exit points.

Coverity issue: 257013
Fixes: 1ffee690eaa1 ("examples/bbdev: add sample app")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoexamples/bbdev: fix out-of-bounds access in MAC print
Amr Mokhtar [Wed, 31 Jan 2018 14:19:34 +0000 (14:19 +0000)]
examples/bbdev: fix out-of-bounds access in MAC print

eth_address was improperly accessed in bbdev example
app, this patch removes the use of port_id, it is
irrelevant here.

Coverity issue: 257021
Fixes: 1ffee690eaa1 ("examples/bbdev: add sample app")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoapp/bbdev: fix unchecked return value
Amr Mokhtar [Wed, 31 Jan 2018 13:54:28 +0000 (13:54 +0000)]
app/bbdev: fix unchecked return value

add check for rte_bbdev_callback_register() retun

Coverity issue: 257027
Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoapp/bbdev: fix out-of-bounds read in vector array
Amr Mokhtar [Wed, 31 Jan 2018 13:46:21 +0000 (13:46 +0000)]
app/bbdev: fix out-of-bounds read in vector array

Coverity issue: 257033
Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoapp/bbdev: fix division by zero in latency measure
Amr Mokhtar [Wed, 31 Jan 2018 12:56:21 +0000 (12:56 +0000)]
app/bbdev: fix division by zero in latency measure

check that iter > 0 before division

Coverity issue: 257027, 257038, 257014
Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agoapp/bbdev: fix null termination in argument parsing
Amr Mokhtar [Wed, 31 Jan 2018 12:40:40 +0000 (12:40 +0000)]
app/bbdev: fix null termination in argument parsing

use snprintf instead of strncpy to ensure null termination when
copying test_vector_filename from cmd arguments.

Coverity issue: 257001
Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
6 years agodoc: add rawdev library guide and doxygen page
Shreyansh Jain [Wed, 31 Jan 2018 09:13:18 +0000 (14:43 +0530)]
doc: add rawdev library guide and doxygen page

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agotest: enable rawdev skeleton test
Shreyansh Jain [Wed, 31 Jan 2018 09:13:17 +0000 (14:43 +0530)]
test: enable rawdev skeleton test

Skeleton rawdevice test cases are part of driver layer. This patch
allows test cases to be executed using 'rawdev_autotest' command
in test framework.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agoraw/skeleton: add test cases
Shreyansh Jain [Wed, 31 Jan 2018 09:13:16 +0000 (14:43 +0530)]
raw/skeleton: add test cases

Patch introduces rawdev unit testcase for validation against the
Skeleton rawdev dummy PMD implementation.

Test cases are added along with the skeleton driver implementation.
It can be enabled by using vdev argument to any DPDK binary:

  --vdev="rawdev_skeleton,self_test=1"

In case 'self_test=1' is not provided, autotest doesn't execute the
test cases but the vdev is still available for application use.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agoraw/skeleton: introduce skeleton rawdev driver
Shreyansh Jain [Wed, 31 Jan 2018 09:13:15 +0000 (14:43 +0530)]
raw/skeleton: introduce skeleton rawdev driver

Skeleton rawdevice driver, on the lines of eventdev skeleton, is for
showcasing the rawdev library. This driver implements some of the
operations of the library based on which a test module can be
developed.

Design of skeleton involves a virtual device which is plugged into
VDEV bus on initialization.

Also, enable compilation of rawdev skeleton driver.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: add self test
Shreyansh Jain [Wed, 31 Jan 2018 09:13:14 +0000 (14:43 +0530)]
rawdev: add self test

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: add firmware management
Shreyansh Jain [Wed, 31 Jan 2018 09:13:13 +0000 (14:43 +0530)]
rawdev: add firmware management

Some generic operations for firmware management can loading, unloading,
starting, stopping and querying firmware of a device.

This patch adds support for such generic operations.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: add extended stats
Shreyansh Jain [Wed, 31 Jan 2018 09:13:12 +0000 (14:43 +0530)]
rawdev: add extended stats

Generic rawdev library cannot define a pre-defined set of stats
for devices which are yet to be defined.

This patch introduces the xstats support for rawdev so that any
implementation can create its own statistics.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: add buffer stream IO
Shreyansh Jain [Wed, 31 Jan 2018 09:13:11 +0000 (14:43 +0530)]
rawdev: add buffer stream IO

Introduce handlers for raw buffer enqueue and dequeue. A raw buffer
is essentially a void object which is transparently passed via the
library onto the driver.

Using a context field as argument, any arbitrary meta information
can be passed by application to the driver/implementation. This can
be any data on which driver needs to define the operation semantics.
For example, passing along a queue identifier can suggest the driver
the queue context to perform I/O on.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: add attribute get and set
Shreyansh Jain [Wed, 31 Jan 2018 09:13:10 +0000 (14:43 +0530)]
rawdev: add attribute get and set

A rawdevice can have various attributes. This patch introduce support
for transparently setting attribute value or getting current attribute
state. This is done by allowing an opaque set of key and value to be
passed through rawdev library.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
6 years agorawdev: introduce raw device library
Shreyansh Jain [Wed, 31 Jan 2018 09:13:09 +0000 (14:43 +0530)]
rawdev: introduce raw device library

Each device in DPDK has a type associated with it - ethernet, crypto,
event etc. This patch introduces 'rawdevice' which is a generic
type of device, not currently handled out-of-the-box by DPDK.

A device which can be scanned on an installed bus (pci, fslmc, ...)
or instantiated through devargs, can be interfaced using
standardized APIs just like other standardized devices.

This library introduces an API set which can be plugged on the
northbound side to the application layer, and on the southbound side
to the driver layer.

The APIs of rawdev library exposes some generic operations which can
enable configuration and I/O with the raw devices. Using opaque
data (pointer) as API arguments, library allows a high flexibility
for application and driver implementation.

This patch introduces basic device operations like start, stop, reset,
queue and info support.
Subsequent patches would introduce other operations like buffer
enqueue/dequeue and firmware support.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>