Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> Acked-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
Moti Haimovsky [Thu, 9 Nov 2017 17:30:56 +0000 (19:30 +0200)]
doc: update mlx4 documentation
This updates mlx4 documentation and DPDK release notes
to reflect the PMD support for rdma-core from linux-rdma.
- PMD is now freed from Mellanox OFED and now only depends on the
public rdma-core package (v15 and above) instead.
(see https://github.com/linux-rdma/rdma-core/releases)
This PMD should run under Linux v4.14 and above.
- In case any of the above requirements can't be satisfied,
Mellanox OFED v4.2 and above also provide an updated rdma-core
as well back-ported kernel modules for most Linux distributions
and previous Linux versions.
(see http://www.mellanox.com/page/products_dyn?product_family=26).
Thomas Monjalon [Wed, 8 Nov 2017 20:44:10 +0000 (21:44 +0100)]
doc: move fast mbuf free feature in net guide
The feature was added at the end of the table.
And the description was between the anchor _nic_features_timesync
and its title.
It is moved near related features with a new anchor.
It is also renamed from "mbuf fast free" to "fast mbuf free".
Fixes: d6f90afd3070 ("ethdev: add mbuf fast free Tx offload") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
If pdump_pktmbuf_copy_data() fails it's possible to have segment leak
as rte_pktmbuf_free() only handles m_dup chain but not the seg just
allocated and yet not chained.
Fixes: 278f945402c5 ("pdump: add new library for packet capture") Signed-off-by: Ilya V. Matveychikov <matvejchikov@gmail.com>
This patch fixes three problems in memory autotest:
- the regex for IOVA
- missing validation of second and following output lines
- propagation of error to consecutive tests
- conversion base for mem size (hex indtead of dec)
First fix is for changes introduced with IOVA, the regex was not
updated which lead to unit test failure. Patch now also uses loop for
line outputs processing to verify more than just one line. By this we
also satisfy the pexpect() and scan the "Test OK"/"Test Failed" so in
case of error all output lines are consumed and does not break the
consecutive test (error does not propagate).
Fixes: 7ba49d39f14c ("mem: rename segment address from physical to IOVA") Fixes: b4ce15aa2bc7 ("app/test: fix memory autotest") Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
This patch fixes the memory leaks in memzone_autotest. Those memory leaks
lead to failures in tests from the same testing group due to out of memory
problems. With introduction of rte_memzone_free() it is now possible to
free the memzone. Fix uses this API call to make a clean after each test
case.
Jasvinder Singh [Fri, 10 Nov 2017 10:30:49 +0000 (10:30 +0000)]
app/testpmd: remove port status check from TM command
Currently, testpmd CLI doesn't permit to add leaf and non-leaf node when
port is started. It doesn't work in case of i40e device as DCB
configuration is deleted when port is stopped. Therefore, removes the
port status check before invoking leaf and nonleaf node API in the cli.
If needed, device can add port status check at the driver layer.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Zhiyong Yang [Thu, 9 Nov 2017 09:21:24 +0000 (17:21 +0800)]
net/virtio: fix Rx interrupt with VFIO
When running l3fwd-power to test virtio rxq interrupt using vfio
pci noiommu mode, startup fails. In the function virtio_read_caps,
the code if (flags & PCI_MSIX_ENABLE) intends to double check
if vfio msix is enabled or not. However, it is not enable at that
time. So use_msix is assigned to "0", not "1", which causes the
failure of configuring rxq intr in l3fwd-power.
This patch adds the function "vtpci_msix_detect" to detect the status
of msix when interrupt changes happen.
In the meanwhile, virtio_intr_enable/disable are introduced to wrap
rte_intr_enable/disable to enhance the ability to detect msix.
use_msix can indicate three different msix status by:
VIRTIO_MSIX_NONE (0)
VIRTIO_MSIX_DISABLED (1)
VIRTIO_MSIX_ENABLED (2)
Fixes: cb482cb3a305 ("net/virtio: fix MAC address read") Cc: stable@dpdk.org Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com> Acked-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Edward Makarov [Fri, 10 Nov 2017 14:18:04 +0000 (14:18 +0000)]
net/mlx5: fix link speed bitmasks
The constant ETHTOOL_LINK_MODE_1000baseT_Full_BIT and the others like
that in mlx5_link_update_unlocked_gs must be bit masks but unfortunately
they are bit numbers. This commit fixes the issue.
Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds") Cc: stable@dpdk.org Signed-off-by: Edward Makarov <makarov@kraftway.ru> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Matan Azrad [Fri, 10 Nov 2017 08:27:18 +0000 (08:27 +0000)]
net/mlx4: fix missing stamp during Tx completion
After processing completed packets, the owner bit of each TXBB comprised
in its WQEs must be invalidated. The loop stops short of processing the
last WQE.
Ajit Khaparde [Thu, 9 Nov 2017 17:46:28 +0000 (11:46 -0600)]
net/bnxt: fix link handling and configuration
Remove a case where we were sending a deprecated field to the FW.
There is no need to send auto_link_speed to the FW.
Also set the auto_mode correctly depending on the setting requested.
Fixes: 7bc8e9a227cc ("net/bnxt: support async link notification") Cc: stable@dpdk.org Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
We do not know how big can the BAR be, but we know anything less
than 1MB is an error. This BAR needs to be big enough for accessing
most of NFP internals.
Coverity issue: 195024 Fixes: d12206e00590 ("net/nfp: add NSP user space interface") Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Fixes: 97cb466d65c9 ("mbuf: use 2 bytes for port and nb segments") Cc: stable@dpdk.org Signed-off-by: Ilya V. Matveychikov <matvejchikov@gmail.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Moti Haimovsky [Thu, 9 Nov 2017 08:59:33 +0000 (10:59 +0200)]
net/mlx4: fix Rx packet type offloads
This patch improves Rx packet type offload report in case the device is
a virtual function device.
In these devices we observed that the L2 tunnel flag is set also for
non-tunneled packets, this leads to a complete misinterpretation of the
packet type being received.
This issue occurs since the tunnel_mode is not set to 0x7 by the driver
for virtual devices and therefore the value in the L2 tunnel flag is
meaningless and should be ignored.
Xiaoyun Li [Thu, 9 Nov 2017 06:30:14 +0000 (14:30 +0800)]
net/i40e: fix VF cannot forward packets issue
When Rx interrupt is not enabled, there is no need to check if interrupt
allow others. It will cause VF cannot forwarding packets issue. This patch
fixes this issue.
Fixes: 96a9fd03c25f ("net/i40e: fix Rx queue interrupt mapping in VF") Cc: stable@dpdk.org Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Akhil Goyal [Thu, 9 Nov 2017 12:23:57 +0000 (17:53 +0530)]
security: fix anonymous unions in structure definitions
Fixes: c261d1431bd8 ("security: introduce security API and framework") Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Radu Nicolau [Thu, 9 Nov 2017 09:57:21 +0000 (09:57 +0000)]
examples/ipsec-secgw: fix build with gcc 4.5.1
On SUSE11 with gcc 4.5.1 the following build error occurred,
most likely because of improper handling of annonymous unions:
examples/ipsec-secgw/ipsec.c:87:4 error:
unknown field ‘ipsec’ specified in initializer
Fixes: ec17993a145a ("examples/ipsec-secgw: support security offload") Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Thomas Monjalon [Mon, 6 Nov 2017 14:40:54 +0000 (15:40 +0100)]
doc: adjust column width of PMD overview tables
The net PMD overview table is big and required to be shrunk.
The crypto PMD tables had variable column sizes: the latest
columns were smaller.
The minimum width is set to 0.9em without any forced padding.
The maximum width is set to 2em.
The width of the first column set by sphinx is overridden to 0
for full elasticity.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: John McNamara <john.mcnamara@intel.com>
Rasesh Mody [Tue, 7 Nov 2017 08:34:25 +0000 (00:34 -0800)]
net/qede: fix null pointer dereferences
Fix null pointer dereferences in qede_vxlan_enable() and
qede_conf_udp_dst_port()
Coverity issue: 195010, 195012, 198439 Fixes: e0947ed912f7 ("net/qede: add support for VXLAN UDP port config over VF") Fixes: 739a5b2f2b49 ("net/qede/base: use passed ptt handler") Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
Rasesh Mody [Tue, 7 Nov 2017 08:34:20 +0000 (00:34 -0800)]
net/qede: fix device link structure
8ea656f8c app/testpmd: request link status interrupt
requires QEDE PMD to populate the device link structure without
having to query the driver for link status change event.
This patch updates the device link structure when link status event is
received.
Remove unused param from qed_link_update()
Harish Patil [Tue, 7 Nov 2017 08:34:18 +0000 (00:34 -0800)]
net/qede: disable per-VF Tx switching feature
Provide a knob to control per-VF Tx switching feature by adding a config
option, CONFIG_RTE_LIBRTE_QEDE_VF_TX_SWITCH. By default, it will be kept
in disabled state for better performance with small sized frames.
net/mlx5: fix flow director delete with drop action
Removing a flow director rule with a drop action ends by not removing it
due to a missing verbs drop specification in the conversion process between
the flow director and generic flow API.
Fixes: 4c3e9bcdd52e ("net/mlx5: support flow director") Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Ferruh Yigit [Tue, 7 Nov 2017 22:29:13 +0000 (22:29 +0000)]
igb_uio: remove device reset in release
More error reported for device reset in release() [1],
when device pass-through to the guest, host kernel crash on guest exit.
Removing the reset completely.
This is close to reverting commit b58eedfc7dd5 [2], taking into account
previous fix to remove reset in open as well [3], but not exactly same.
With latest code, interrupts are enabled in uio open() callback and
disabled in uio release() callback, so when a DPDK application exit
device interrupts are disabled. Previously interrupts were only enabled
once in igb_uio module insert and disabled in module removal.
Also with latest code device set as bus master in open() and master
cleared in release(), clearing bus master should prevent further DMA
which was one of the target of the initial patch.
The initial intention was also to reset the device to be sure it has
been left in proper state, but currently that part is missing because of
reported problem(s).
Still igb_uio should be safer comparing to the pre b58eedfc7dd5 state.
Olivier Matz [Thu, 5 Oct 2017 07:53:27 +0000 (09:53 +0200)]
devtools: rework ABI checker script
The initial version of the script had some limitations:
- cannot work on a non-clean workspace
- environment variables are not documented
- no compilation log in case of failure
- return success even it abi is incompatible
This patch addresses these issues and rework the code.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Neil Horman <nhorman@tuxdriver.com>
Thomas Monjalon [Wed, 11 Oct 2017 13:28:58 +0000 (15:28 +0200)]
devtools: rename build dependency of mlx drivers
The Mellanox drivers were requiring MOFED at compilation time.
It is now possible to use the upstream rdma-core package.
So the dependency option is renamed in the build tool.
Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Jerin Jacob [Mon, 16 Oct 2017 10:32:55 +0000 (16:02 +0530)]
eventdev: remove experimental label
The eventdev API was introduced in DPDK 17.05 release.
Since then it
- has been reviewed and iterated for 17.08, 17.11 releases
- three drivers were implemented using the API.
- introduced another subsystem like service core and ethdev-eventdev Rx
adapter APIs to abstract the difference between HW and SW
eventdev implementations in a transparent way.
- had extensive use by the app/test-eventdev/ and
examples/eventdev_pipeline_sw_pmd/
I believe the API is now stable and the EXPERIMENTAL label
should be removed.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Gage Eads <gage.eads@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
The Flow Classify Library Programmers Guide documents
librte_flow_classify.
The Flow Classify Sample Application Guide documents the
flow_classify sample application which is used to
demonstrate the use of the Flow Classify Library,
librte_flow_classify.
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Ori Kam [Wed, 25 Oct 2017 14:51:16 +0000 (17:51 +0300)]
doc: add basic howto for flow API
As the rte_flow is a new complex module in the DPDK.
In order to ease developers in to using this feature
it was suggested to supply a simple howto doc.
Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: John McNamara <john.mcnamara@intel.com>
All PCI functionality should be hidden from apps via the PCI bus driver,
the EAL and individual device drivers. Therefore remove the inclusion of
rte_pci.h from sample apps.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Ophir Munk [Tue, 7 Nov 2017 13:52:30 +0000 (13:52 +0000)]
app/testpmd: fix forwarding between non consecutive ports
When defining two failsafe devices in testpmd the port numbers of the
failsafe devices may not be consecutive.
For example: if failsafe device includes a PCI device and a TAP device
then failsafe port numbers would be 0 and 3.
Port 0 - failsafe #1 device
Port 1 - PCI #1 device
Port 2 - TAP #1 device
Port 3 - failsafe #2 device
Port 4 - PCI #2 device
Port 5 - TAP #2 device
If forwarding is defined between the failsafe devices including a peer
address the forwarding should be between peer addresses of ports 0
and 3. Instead testpmd establishes forwarding between peer addresses
of consecutive ports 0 and 1. This commit fixes this bug.
Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Herbert Guan [Wed, 25 Oct 2017 07:13:46 +0000 (15:13 +0800)]
test/memcpy_perf: provide perf ratio and test time
The printed time values presented in TSC is not straight forward
showing the performance difference. And if the high resolution
counter is not enabled, time value is too small to show the actual
performance (e.g. "1 - 1" seems the same but in fact the perfomance
diffs by 50% or more).
With the performance difference ratio caculated and printed, it'll be
easier for people to read and compare the performance between
rte_memcpy() and memcpy().
Since the TSC values' units may diff a lot on different platforms,
the total execution time of aligned/unaligned memcpy test are
provided to allow comparation between platforms.
Signed-off-by: Herbert Guan <herbert.guan@arm.com> Acked-by: Jianbo Liu <jianbo.liu@arm.com>
Daniel Mrzyglod [Fri, 27 Oct 2017 16:24:08 +0000 (18:24 +0200)]
test/pmd_perf: fix crash with multiple devices
Error can be reproduce if we run pmd_perf_autotest with more then
one device in such way:
RTE>>set_rxtx_sc poll_before_xmit
RTE>>pmd_perf_autotest
if first burst was value less than MAX_PKT_BURST in the end we overwrite
pkts_burst table for rx which was supposed for another interface.
Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") Cc: stable@dpdk.org Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com> Acked-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Maxime Coquelin [Mon, 6 Nov 2017 20:38:11 +0000 (21:38 +0100)]
vhost: add flag to enable IOMMU support
Qemu versions from v2.7.0 to v2.9.0 have their reply-ack protocol
feature implementation broken with multiqueue. The reply-ack
protocol feature is optional except for IOMMU feature.
This patch introduce a new RTE_VHOST_USER_IOMMU_SUPPORT flag to
enable VIRTIO_F_IOMMU_PLATFORM virtio feature.
By default, the IOMMU support is now disabled.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Maxime Coquelin [Mon, 6 Nov 2017 20:38:10 +0000 (21:38 +0100)]
vhost: disable reply-ack feature if IOMMU disabled
If the application has disabled VIRTIO_F_IOMMU_PLATFORM, disable
VHOST_USER_PROTOCOL_F_REPLY_ACK protocol feature that is only
mandatory with IOMMU for now.
This is done to provide a way for the application to support
multiqueue with old Qemu versions (v2.7.0 to v2.9.0) that have
reply-ack feature broken.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Stefan Baranoff [Sun, 5 Nov 2017 17:24:45 +0000 (12:24 -0500)]
net/pcap: fix memory leak in dumper open
In open_single_tx_pcap there is a call to pcap_open_dead which calls
malloc to create and return a pcap_t. That object is never freed in
this case. Other places it is freed by passing it back similar to the
way the pcap_dumper_t is in this case.
The pcap_t is only used to create the pcap_dumper_t and is never used
again so freeing it here is safe and much simpler than trying to pass
it back to be freed in eth_dev_stop along with the other
pcap_t/pcap_dumper_t objects.
Fixes: 4c173302c307 ("pcap: add new driver") Cc: stable@dpdk.org Signed-off-by: Stefan Baranoff <sbaranoff@gmail.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Rami Rosen [Sat, 4 Nov 2017 12:03:49 +0000 (14:03 +0200)]
net/kni: remove driver struct forward declaration
This patch removes the forward declaration of eth_kni_drv
in rte_eth_kni.c; this forward declaration was made unnecessary
by commit 050fe6e9ff970ff92d842912136be8f9f52e171f
("drivers/net: use ethdev allocation helper for vdev"), which
removes the usage of eth_kni_drv in the eth_kni_create() method.
Fixes: 050fe6e9ff97 ("drivers/net: use ethdev allocation helper for vdev") Cc: stable@dpdk.org Signed-off-by: Rami Rosen <rami.rosen@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Shahaf Shuler [Mon, 6 Nov 2017 14:00:25 +0000 (16:00 +0200)]
net/mlx5: fix flow creation on port start
While the PMD avoids from creating hash RXQ with no hash fields and
array of queues after the port was already started, it lacks such
protection when re-creating the flows after the port restarts.
This may lead to inconsistent behavior for flows depending if they were
created before or after the port start.
Xiaoyun Li [Mon, 6 Nov 2017 02:41:40 +0000 (10:41 +0800)]
net/igb: fix Rx interrupt with VFIO and MSI-X
When using VFIO and MSIX interrupt mode, cannot get Rx interrupts. Because
when enabling the interrupt vectors, the offset is computed in a way which
only supports IGB_UIO. But the offset should be different when using VFIO.
This patch fixes this issue.
Fixes: c3cd3de0ab50 ("igb: enable Rx queue interrupts for PF") Cc: stable@dpdk.org Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
With -f-strict-aliasing enabled by default from -O2, gcc > 5.x gives
undefined behavior in port_groupx4 in ARM. 'pn' and 'pnum' are
two different pointers pointing to same chunk of memory and
with -f-strict-aliasing the pointers are assumed to be pointing to
different memory and compiler reorders instructions that depend on
pnum and pn. This breaks port grouping algorithm.
This patch eliminates the above problem by introducing a compiler
barrier between the instructions that depend on pnum, pn and lp.
Fixes: 569b290cdb36 ("examples/l3fwd: add NEON implementation") Cc: stable@dpdk.org Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Jianbo Liu <jianbo.liu@arm.com>
To group consecutive packets with same destination port in bursts of 4
neon intrinsic data types dp1 and dp2 are calculated such that if
dst_port[]={a,b,c,d,e,f,g,h,i...} dp1 should contain: <a,b,c,d> and
dp2 should contain: <b,c,d,e> in the first iteration. dp1 should
be <e,f,g,h> and dp2 should be <f,g,h,i> in the next iteration.
Whereas the existing code incorrectly calculates dp1 as <d,e,f,g> from
second iteration.
This patch fixes the incorrect ARM NEON instructions on dp1.
Fixes: 569b290cdb36 ("examples/l3fwd: add NEON implementation") Cc: stable@dpdk.org Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com> Acked-by: Jianbo Liu <jianbo.liu@arm.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>