dpdk.git
5 years agonet/enic: support multicast filtering
Hyong Youb Kim [Mon, 10 Dec 2018 18:28:55 +0000 (10:28 -0800)]
net/enic: support multicast filtering

The VIC hardware has 64 MAC filters per vNIC, which can be either
unicast or multicast. Use one half for unicast and the other half for
multicast, as the VIC kernel drivers for Linux and Windows do.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
5 years agonet/enic: add handler to return firmware version
Hyong Youb Kim [Mon, 10 Dec 2018 18:28:54 +0000 (10:28 -0800)]
net/enic: add handler to return firmware version

Cisco VIC adapters run firmware. Add the fw_version_get handler to
help diagnostics.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
5 years agonet/enic: release port upon close
Hyong Youb Kim [Mon, 10 Dec 2018 18:28:53 +0000 (10:28 -0800)]
net/enic: release port upon close

Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so rte_eth_dev_close() can
later free port resources including mac_addrs.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
5 years agonet/cxgbe: fix control queue mbuf pool naming convention
Rahul Lakkireddy [Thu, 6 Dec 2018 10:13:20 +0000 (15:43 +0530)]
net/cxgbe: fix control queue mbuf pool naming convention

When multiple Chelsio adapters are present, the current naming
convention of using underlying physical port number of the adapter
creates conflicts when allocating control queue mbuf pool for
multiple adapters and hence results in allocation failure. Fix by
using port_id from rte_eth_dev_data, instead of physical port number.

Fixes: 3a3aaabc7c77 ("net/cxgbe: add control queue to communicate filter requests")
Cc: stable@dpdk.org
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
5 years agodoc: fix flow action command names in testpmd guide
Dekel Peled [Thu, 6 Dec 2018 12:06:14 +0000 (14:06 +0200)]
doc: fix flow action command names in testpmd guide

testpmd actions set_tp_src and set_tp_dst documentation adds the
of_ prefix to action names, while the implementation doesn't add it.

This patch removes the prefix from action names in testpmd
documentation.

Fixes: 9ccc94919500 ("ethdev: add flow API actions to modify TCP/UDP port numbers")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
Acked-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
5 years agodoc: fix a typo in testpmd guide
Rami Rosen [Wed, 5 Dec 2018 17:05:04 +0000 (19:05 +0200)]
doc: fix a typo in testpmd guide

This patch fixes a typo in testpmd guide (should be ICMP and not IMCP).

Fixes: ac718398f477 ("doc: testpmd application user guide")
Cc: stable@dpdk.org
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
5 years agoapp/testpmd: fix MPLSoGRE encapsulation
Dekel Peled [Tue, 4 Dec 2018 13:52:02 +0000 (15:52 +0200)]
app/testpmd: fix MPLSoGRE encapsulation

In function cmd_set_mplsogre_encap_parsed(), MPLS label value was
set in mplsogre_encap_conf struct without the required offset.
As a result the value was copied incorrectly into
rte_flow_item_mpls struct.

This patch sets MPLS label value in appropriate location at
mplsogre_encap_conf struct, so it is correctly copied to
rte_flow_item_mpls struct.

Fixes: 3e77031be855 ("app/testpmd: add MPLSoGRE encapsulation")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
5 years agoapp/testpmd: fix MPLSoUDP encapsulation
Dekel Peled [Tue, 4 Dec 2018 13:51:33 +0000 (15:51 +0200)]
app/testpmd: fix MPLSoUDP encapsulation

In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was
set in mplsoudp_encap_conf struct without the required offset.
As a result the value was copied incorrectly into
rte_flow_item_mpls struct.

This patch sets MPLS label value in appropriate location at
mplsoudp_encap_conf struct, so it is correctly copied to
rte_flow_item_mpls struct.

Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
5 years agoethdev: fix typo in queue setup error log
Yaroslav Brustinov [Mon, 3 Dec 2018 09:54:04 +0000 (11:54 +0200)]
ethdev: fix typo in queue setup error log

'=' should be '>=" for '[rt]x_desc_lim.nb_min' check.

Fixes: 386c993e95f1 ("ethdev: add a missing sanity check for Tx queue setup")
Fixes: 80a1deb4c77a ("ethdev: add API to retrieve queue information")
Cc: stable@dpdk.org
Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/mlx5: fix validation of Rx queue number
Dekel Peled [Wed, 28 Nov 2018 09:16:17 +0000 (11:16 +0200)]
net/mlx5: fix validation of Rx queue number

Function mlx5_ctrl_flow_vlan() is used to set the rss rule in
MLX5 PMD, using priv->reta_idx_n as number of Rx queues.
This number is passed to mlx5_flow_validate_action_rss(), which
attempts to access the Rx queues at priv->rxqs.
In case priv->rxqs_n is 0, priv->rxqs is empty, and
mlx5_flow_validate_action_rss() will crash with segmentation fault.

priv->reta_idx_n can never be 0, even if priv->rxqs_n is set to 0.
But when priv->rxqs_n is set to 0, setting the rss rule is invalid.

This patch updates mlx5_ctrl_flow_vlan(), if priv->rxqs_n is 0 the
function will fail with EINVAL errno.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agonet/i40e: fix port close
Zhirun Yan [Mon, 10 Dec 2018 14:08:58 +0000 (14:08 +0000)]
net/i40e: fix port close

Port reset will call i40evf_uninit_vf() to release resource. It wants
to call i40evf_dev_close() to release resources. Before this patch,
hw->adapter_stopped was used to mark the status about start/stop and
close. So it will never call i40evf_dev_close() after stopping the port.

This patch added hw->adapter_closed flag in i40evf_dev_close() and
i40e_dev_close() to control the status of close.

Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: stable@dpdk.org
Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/ixgbe: fix overwriting RSS RETA
Xiaoyun Li [Tue, 4 Dec 2018 04:37:57 +0000 (12:37 +0800)]
net/ixgbe: fix overwriting RSS RETA

When starting the device, the RSS table is initialized. So the RSS
update before device_start would be overwritten. This patch allows users
to update the RSS reta table before device_start.

Fixes: db5b65301dde ("ethdev: allow to set RSS hash computation flags and/or key")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/i40e: fix overwriting RSS RETA
Xiaoyun Li [Mon, 3 Dec 2018 08:26:32 +0000 (16:26 +0800)]
net/i40e: fix overwriting RSS RETA

When starting the device, the RSS table is initialized. So the RSS
update before dev_start would be overwritten. This patch allows users
to update the RSS reta table before dev_start and adjusts the order
to set entries sequentially.

Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/i40e: fix using recovery mode firmware
Xiaoyun Li [Mon, 3 Dec 2018 07:07:46 +0000 (15:07 +0800)]
net/i40e: fix using recovery mode firmware

Device can't function properly with a firmware that is in recovery
mode.

Check the firmware status at initialization time. If the firmware is
in recovery mode, alert the user to check it.

Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/ixgbe: fix Rx LRO capability offload for x550
Wei Zhao [Fri, 30 Nov 2018 07:50:30 +0000 (15:50 +0800)]
net/ixgbe: fix Rx LRO capability offload for x550

X550 does support LRO offload.

Fixes: 8eecb3295aed ("ixgbe: add LRO support")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/i40e: fix getting RSS configuration
Qiming Yang [Fri, 30 Nov 2018 09:05:58 +0000 (17:05 +0800)]
net/i40e: fix getting RSS configuration

RSS hash configure get API (i40e_dev_rss_hash_conf_get()) didn't check
the return value of i40e_get_rss_key().
i40e_dev_rss_hash_conf_get() will return success even getting RSS hash
key failed. This patch fixes the issue.

Fixes: d0a349409bd7 ("i40e: support AQ based RSS config")
Cc: stable@dpdk.org
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/ifcvf: fix typo on struct name
Xiaolong Ye [Thu, 29 Nov 2018 08:22:19 +0000 (16:22 +0800)]
net/ifcvf: fix typo on struct name

The struct should be ifcvf_net_config other than ifcvf_net_device_config

The variable is used as named opaque variable, struct fields are not
accessed at all, so using wrong struct type has no effect but it should
be fixed.

Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
Cc: stable@dpdk.org
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
5 years agonet/mlx5: fix function documentation
Asaf Penso [Thu, 29 Nov 2018 11:39:32 +0000 (11:39 +0000)]
net/mlx5: fix function documentation

tso and vlan parameters were removed from the signature
of txq_mbuf_to_swp function.

The documentation of the function was not updated accordingly.

Remove the tso and vlan documentation to match the function signature.

Fixes: 8f6d9e13a98c ("net/mlx5: remove redundant checks")
Cc: stable@dpdk.org
Signed-off-by: Asaf Penso <asafp@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoexamples/bond: fix crash when there is no active slave
Radu Nicolau [Wed, 14 Nov 2018 12:19:09 +0000 (12:19 +0000)]
examples/bond: fix crash when there is no active slave

If bond_ethdev_rx_burst() called more times with no active slaves
the active slave index will point out of bounds, resulting in a
segfault.
The configured slaves needs to be checked, and if none became active
there is no point going further.

Do not start the packet processing threads until all configured
slaves become active.

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>
Acked-by: Chas Williams <chas3@att.com>
5 years agoexamples/bond: fix initialization order
Radu Nicolau [Tue, 13 Nov 2018 16:46:04 +0000 (16:46 +0000)]
examples/bond: fix initialization order

Queue setup will fail if called before adding slaves.

Fixes: 7a0665940fa8 ("net/bonding: inherit descriptor limits from slaves")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Chas Williams <chas3@att.com>
5 years agoapp/testpmd: fix MPLS BoS bit default value
Saleh Alsouqi [Wed, 21 Nov 2018 14:47:24 +0000 (14:47 +0000)]
app/testpmd: fix MPLS BoS bit default value

The Bottom-of-Stack (bos) bit of MPLS indicates
whether its the last MPLS layer (1) or not (0).

Indicating that the encapsulating MPLS is the
last MPLS layer in the packet as the default
behavior is more appropriate since multiple
encapsulation actions is not supported.

Fixes: 3e77031be855 ("app/testpmd: add MPLSoGRE encapsulation")
Fixes: 3e77031be855 ("app/testpmd: add MPLSoGRE encapsulation")
Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
cc: stable@dpdk.org

Signed-off-by: Saleh Alsouqi <salehals@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
5 years agonet/vdev_netvsc: get rid of unnecessary debug log message
Stephen Hemminger [Tue, 20 Nov 2018 21:13:51 +0000 (13:13 -0800)]
net/vdev_netvsc: get rid of unnecessary debug log message

If vdev_netvsc is run with debug logging enabled, then the
log output will fill with:
net_vdev_netvsc: interface lo is non-ethernet device

Remove the message since it is not useful.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Matan Azrad <matan@mellanox.com>
5 years agonet/bnx2x: cleanup info logs
Rasesh Mody [Sat, 17 Nov 2018 09:37:40 +0000 (09:37 +0000)]
net/bnx2x: cleanup info logs

Reduced number of INFO logs in BNX2X PMD by converting some INFO
logs to DEBUG and few NOTICE logs to INFO, removing extra new lines,
printing banner bar once for the adapter and device specific info.

Fixes: ba7eeb035a5f ("net/bnx2x: fix logging to include device name")
Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
5 years agonet/mlx5: report imissed statistics
Tom Barbette [Fri, 23 Nov 2018 08:03:37 +0000 (09:03 +0100)]
net/mlx5: report imissed statistics

The imissed counters (number of packets dropped because the queues were
full) were actually reported through xstats as "rx_out_of_buffer"
but was not reported through stats.

Following a recent discussion on the ML, as there is no way to tell the
user if a counter is implemented or not, this should be considered a
bug. For example, user looking at imissed will think the packets are
lost before reaching the device.

Signed-off-by: Tom Barbette <barbette@kth.se>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
5 years agonet/ixgbe/base: add LHA ID
Luca Boccassi [Tue, 20 Nov 2018 11:27:12 +0000 (11:27 +0000)]
net/ixgbe/base: add LHA ID

ixgbe is able to recognize 1G SX and LX id, but it is missing the LHA.
Add it, so that it can handle LHA SFP plugin.

Fixes: d2e72774e58c ("ixgbe/base: support X550")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <bluca@debian.org>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/igb: fix LSC interrupt when using MSI-X
Timmons C. Player [Mon, 19 Nov 2018 14:48:54 +0000 (14:48 +0000)]
net/igb: fix LSC interrupt when using MSI-X

Take the 'other interrupt' into account when setting up
MSI-X interrupts and use the proper mask when enabling it.
Also, rearm the MSI-X vector after the LSC interrupt fires.

This change allows both LSC and RXQ interrupts to work at
the same time when using MSI-X interrupts.

Cc: stable@dpdk.org
Signed-off-by: Timmons C. Player <timmons.player@spirent.com>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
5 years agodevtools: fix symbol check when adding experimental section
David Marchand [Fri, 30 Nov 2018 12:32:02 +0000 (13:32 +0100)]
devtools: fix symbol check when adding experimental section

The incriminated commit did relax the condition to catch all sections
but dropped the + removal which can trigger false detection of the
special EXPERIMENTAL section when adding symbols and the section in the
same patch.

Fixes: 7281cf520f89 ("devtools: relax rule for identifying symbol section")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
5 years agodevtools: report the incorrect section when complaining
David Marchand [Fri, 30 Nov 2018 12:32:01 +0000 (13:32 +0100)]
devtools: report the incorrect section when complaining

It does not hurt reporting the incriminated section.

Before:
ERROR: symbol rte_plop is added in a section other than the EXPERIMENTAL
section of the version map

After:
ERROR: symbol rte_plop is added in the DPDK_19.02 section, but is
expected to be added in the EXPERIMENTAL section of the version map

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
5 years agodoc: improve release notes template
Thomas Monjalon [Wed, 28 Nov 2018 14:52:40 +0000 (15:52 +0100)]
doc: improve release notes template

Some comments are added to encourage classifying API and ABI changes
with scope labels.

The section "removed items" is moved just after the "new features".

The sample for shared library versions is replaced with foo/bar names.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
5 years agoversion: 19.02-rc0
Thomas Monjalon [Wed, 28 Nov 2018 14:52:39 +0000 (15:52 +0100)]
version: 19.02-rc0

Start version numbering for a new release cycle,
and introduce a template file for release notes.

The release notes comments are updated to mandate
a scope label for API and ABI changes.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
5 years agoversion: 18.11.0
Thomas Monjalon [Mon, 26 Nov 2018 17:17:01 +0000 (18:17 +0100)]
version: 18.11.0

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
5 years agodoc: update release notes for 18.11
John McNamara [Mon, 26 Nov 2018 10:51:01 +0000 (10:51 +0000)]
doc: update release notes for 18.11

Fix grammar, spelling and formatting of DPDK 18.11 release notes.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
5 years agofix dpdk.org URLs
Thomas Monjalon [Mon, 26 Nov 2018 17:51:14 +0000 (18:51 +0100)]
fix dpdk.org URLs

The DPDK website has a new URL scheme since June 2018.

Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
5 years agofix indentation in symbol maps
Thomas Monjalon [Mon, 26 Nov 2018 17:03:25 +0000 (18:03 +0100)]
fix indentation in symbol maps

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
5 years agomem: fix division by zero in no-NUMA mode
Anatoly Burakov [Mon, 26 Nov 2018 10:57:03 +0000 (10:57 +0000)]
mem: fix division by zero in no-NUMA mode

When RTE_EAL_NUMA_AWARE_HUGEPAGES is set to "n", not all memtypes
will be valid, because we skip some due to not supporting other
NUMA nodes, leading to a division by zero error down the line
because the necessary memtype fields weren't populated.

Fix it by limiting number of memtypes to number of memtypes we
have actually created.

Fixes: 1dd342d0fdc4 ("mem: improve segment list preallocation")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>
5 years agoversion: 18.11-rc5
Thomas Monjalon [Sun, 25 Nov 2018 20:19:19 +0000 (21:19 +0100)]
version: 18.11-rc5

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: fix devargs reference after probing failure
Darek Stojaczyk [Fri, 23 Nov 2018 15:43:28 +0000 (16:43 +0100)]
eal: fix devargs reference after probing failure

Even if a device failed to plug, it's still a device
object that references the devargs. Those devargs will
be freed automatically together with the device, but
freeing them any earlier - like it's done in the hotplug
error handling path right now - will give us a dangling
pointer and a segfault scenario.

Consider the following case:
 * secondary process receives the hotplug request IPC message
   * devargs are either created or updated
   * the bus is scanned
     * a new device object is created with the latest devargs
   * the device can't be plugged for whatever reason,
     bus->plug returns error
     * the devargs are freed, even though they're still referenced
       by the device object on the bus

For PCI devices, the generic device name comes from
a buffer within the devargs. Freeing those will make
EAL segfault whenever the device name is checked.

This patch just prevents the hotplug error handling
path from removing the devargs when there's a device
that references them. This is done by simply exiting
early from the hotplug function. As mentioned in the
beginning, those devargs will be freed later, together
with the device itself.

Fixes: 7e8b26650146 ("eal: fix hotplug add / remove")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: fix devargs leak on multi-process detach request
Darek Stojaczyk [Fri, 23 Nov 2018 14:11:07 +0000 (15:11 +0100)]
eal: fix devargs leak on multi-process detach request

Device detach triggered through IPC leaked some memory.
It allocated a devargs objects just to use it for
parsing the devargs string in order to retrieve the
device name. Those devargs weren't passed anywhere
and were never freed.

First of all, let's put those devargs on the stack,
so they doesn't need to be freed. Then free the
additional arguments string as soon as it's allocated,
because we won't need it.

Fixes: ac9e4a17370f ("eal: support attach/detach shared device from secondary")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agoeal: fix multi-process hotplug if attached in secondary
Darek Stojaczyk [Fri, 23 Nov 2018 14:58:24 +0000 (15:58 +0100)]
eal: fix multi-process hotplug if attached in secondary

Consider the following scenario:

 1) primary process (A) starts, probes the bus
 2) a secondary process (B) starts, probes the bus
 3) yet another secondary process (C) starts
 4) (C) registers the pci driver and hotplugs the device
    * an IPC attach req is sent to the primary (A)
      * (A) ignores the -EEXIST from process-local probe
      * (A) propagates the request to all secondary processes
        * (B) responds with -EEXIST
      * (A) replies to the original request with the -EEXIST
        return code
    * the -EEXIST is returned back to the user, although the
      device was successfully attached both locally and in
      all other processes

This patch makes the primary process reply with rc=0 even if
there was another secondary process with the device already
attached. The primary process already didn't reply with -EEXIST
when the device was attached locally, so now this behavior is
even more consistent. Looking by the code, this seems to be the
originally intended behavior.

Fixes: ac9e4a17370f ("eal: support attach/detach shared device from secondary")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agoeal: fix multi-process hotplug if already probed
Darek Stojaczyk [Fri, 23 Nov 2018 21:26:40 +0000 (22:26 +0100)]
eal: fix multi-process hotplug if already probed

When primary process receives an IPC attach request
of a device that's already locally-attached, it
doesn't setup its variables properly and is prone to
segfaulting on a subsequent rollback.

`ret = local_dev_probe(req->devargs, &dev)`

The above function will set `dev` pointer to the
proper device *unless* it returns with error. One of
those errors is -EEXIST, which the hotplug function
explicitly ignores. For -EEXIST, it proceeds with
attaching the device and expects the dev pointer to
be valid.

This patch makes `local_dev_probe` set the dev pointer
even if it returns -EEXIST.

Fixes: ac9e4a17370f ("eal: support attach/detach shared device from secondary")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
6 years agoeal: fix multi-process hotplug rollback
Darek Stojaczyk [Wed, 21 Nov 2018 19:05:07 +0000 (20:05 +0100)]
eal: fix multi-process hotplug rollback

If a device fails to attach before it's plugged,
the subsequent rollback will still try to detach it,
causing a segfault. Unplugging a device that wasn't
plugged isn't really supported, so this patch adds
an extra error check to prevent that from happening.

While here, fix this also for normal (non-rollback)
detach, which could also theoretically segfault on
non-plugged device.

Fixes: 244d5130719c ("eal: enable hotplug on multi-process")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
6 years agovfio: do not needlessly setup device in secondary process
Darek Stojaczyk [Wed, 21 Nov 2018 18:41:32 +0000 (19:41 +0100)]
vfio: do not needlessly setup device in secondary process

Setting up a device that wasn't setup in the primary
process will possibly break the primary process. That's
because the IPC message to retrieve the group fd in the
primary will also *open* that group if it wasn't opened
before. Even though the secondary process closes that fd
soon after as a part of its error handling path, the
primary process leaks it.

What's worse, opening that fd on the primary will
increment the process-local counter of opened groups.
If it was 0 before, then the group will never be added
to the vfio container, nor dpdk memory will be ever
mapped.

This patch moves the proper error checks earlier in the
code to fully prevent setting up devices in secondary
processes that weren't setup in the primary process.

Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agobus/pci: fix allocation of device path
Ferruh Yigit [Fri, 23 Nov 2018 00:29:45 +0000 (00:29 +0000)]
bus/pci: fix allocation of device path

The pci_resource_by_index called strlen() on uninitialized
memory which would lead to the wrong size of memory allocated
for the path portion of the resource map. This would either cause
excessively large allocation, or worse memory corruption.

Coverity issue: 300868
Fixes: ea9d56226e72 ("pci: introduce function to map uio resource by index")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agonet/virtio: avoid annoying IOPL error log
Ilya Maximets [Fri, 23 Nov 2018 15:39:20 +0000 (18:39 +0300)]
net/virtio: avoid annoying IOPL error log

In case of running with not enough capabilities, i.e. running as
non-root user any application linked with DPDK prints the message
about IOPL call failure even if it was just called like
'./testpmd --help'. For example, this breaks most of the OVS unit
tests if it built with DPDK support.

Let's register the virtio driver unconditionally and print error
message while probing the device. Silent iopl() call left in the
constructor to have privileges as early as possible as it was before.

Fixes: 565b85dcd9f4 ("eal: set iopl only when needed")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agoeal/bsd: fix possible IOPL fd leak
Ilya Maximets [Fri, 23 Nov 2018 15:39:19 +0000 (18:39 +0300)]
eal/bsd: fix possible IOPL fd leak

If rte_eal_iopl_init() will be called more than once we'll leak
the file descriptor.

Fixes: b46fe31862ec ("eal/bsd: fix virtio on FreeBSD")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agodoc: improve hash library guide
Yipeng Wang [Wed, 21 Nov 2018 17:42:51 +0000 (09:42 -0800)]
doc: improve hash library guide

This commit improves the programmer guide of the hash
library to be more accurate on new features introduced
in 18.11.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Signed-off-by: Sameh Gobriel <sameh.gobriel@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: remove old options from pdump guide
Tiwei Bie [Thu, 22 Nov 2018 02:51:38 +0000 (10:51 +0800)]
doc: remove old options from pdump guide

The --server-socket-path and --client-socket-path options
have already been removed. So also remove them from the doc
to avoid confusion.

Fixes: 09f4aa2b955f ("app/pdump: remove unused socket path options")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: suggest to keep doc and code in same patch
David Hunt [Fri, 26 Oct 2018 09:37:41 +0000 (10:37 +0100)]
doc: suggest to keep doc and code in same patch

Add a paragraph to the patch contribution guide suggesting that developers
keep doc updates in the same patch as the code, rather than one big
doc update as the final patch in a patch set.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agodoc: add note about bool into coding style
Marko Kovacevic [Mon, 17 Sep 2018 15:24:29 +0000 (16:24 +0100)]
doc: add note about bool into coding style

Added a note into the coding style to
highlight the use of a bool within a struct

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agodoc: announce Linux support change
Thomas Monjalon [Sat, 24 Nov 2018 18:21:31 +0000 (19:21 +0100)]
doc: announce Linux support change

It was agreed by the Technical Board to increase the minimal
supported Linux version, and written in Linux guide.
An announce was missing in the deprecation notices.

Fixes: 8c58f1b83759 ("doc: note minimun Linux version increase for 19.02")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: announce API change for sched library
Jasvinder Singh [Wed, 14 Nov 2018 15:36:42 +0000 (15:36 +0000)]
doc: announce API change for sched library

There will be change in API functions because of mbuf sched field
updates, outlined in deprecation note of mbuf->hash.sched.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
6 years agodoc: announce API change for cryptodev sym session
Konstantin Ananyev [Thu, 11 Oct 2018 14:20:24 +0000 (15:20 +0100)]
doc: announce API change for cryptodev sym session

Below are details and reasoning for proposed changes.

1.rte_cryptodev_sym_session_init()/ rte_cryptodev_sym_session_clear()
  operate based on cytpodev device id, though inside
  rte_cryptodev_sym_session device specific data is addressed
  by driver id (not device id).
  That creates a problem with current implementation when we have
  two or more devices with the same driver used by the same session.
  Consider the following example:

  struct rte_cryptodev_sym_session *sess;
  rte_cryptodev_sym_session_init(dev_id=X, sess, ...);
  rte_cryptodev_sym_session_init(dev_id=Y, sess, ...);
  rte_cryptodev_sym_session_clear(dev_id=X, sess);

  After that point if X and Y uses the same driver,
  then sess can't be used by device Y any more.
  The reason for that - driver specific (not device specific)
  data per session, plus there is no information
  how many device instances use that data.
  Probably the simplest way to deal with that issue -
  add a reference counter per each driver data.

2.rte_cryptodev_sym_session_set_user_data() and
  rte_cryptodev_sym_session_get_user_data() -
  with current implementation there is no defined way for the user to
  determine what is the max allowed size of the private data.
  rte_cryptodev_sym_session_set_user_data() just blindly copies
  user provided data without checking memory boundaries violation.
  To overcome that issue propose to add 'uint16_t priv_size' into
  rte_cryptodev_sym_session structure.

3.rte_cryptodev_sym_session contains an array of variable size for
  driver specific data.
  Though number of elements in that array is determined by static
  variable nb_drivers, that could be modified by
  rte_cryptodev_allocate_driver().
  That construction seems to work ok so far, as right now users register
  all their PMDs at startup, though it doesn't mean that it would always
  remain like that.
  To make it less error prone propose to add 'uint16_t nb_drivers'
  into the rte_cryptodev_sym_session structure.
  At least that allows related functions to check that provided
  driver id wouldn't overrun variable array boundaries,
  again it allows to determine size of already allocated session
  without accessing global variable.

4.#2 and #3 above implies that now each struct rte_cryptodev_sym_session
  would have sort of readonly type data (init once at allocation time,
  keep unmodified through session life-time).
  That requires more changes in current cryptodev implementation:
  Right now inside cryptodev framework both rte_cryptodev_sym_session
  and driver specific session data are two completely different sctrucures
  (e.g. struct cryptodev_sym_session and struct null_crypto_session).
  Though current cryptodev implementation implicitly assumes that driver
  will allocate both of them from within the same mempool.
  Plus this is done in a manner that they override each other fields
  (reuse the same space - sort of implicit C union).
  That's probably not the best programming practice,
  plus make impossible to have readonly fields inside both of them.
  To overcome that situation propose to changed an API a bit, to allow
  to use two different mempools for these two distinct data structures.

 5. Add 'uint64_t userdata' inside struct rte_cryptodev_sym_session.
   I suppose that self-explanatory, and might be used in a lot of places
   (would be quite useful for ipsec library we develop).

The new proposed layout for rte_cryptodev_sym_session:
struct rte_cryptodev_sym_session {
        uint64_t userdata;
        /**< Can be used for external metadata */
        uint16_t nb_drivers;
        /**< number of elements in sess_data array */
        uint16_t priv_size;
        /**< session private data will be placed after sess_data */
        __extension__ struct {
                void *data;
                uint16_t refcnt;
        } sess_data[0];
        /**< Driver specific session material, variable size */
};

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
6 years agodoc: announce ABI change for security session
Konstantin Ananyev [Wed, 14 Nov 2018 11:23:31 +0000 (11:23 +0000)]
doc: announce ABI change for security session

Add 'uint64_t opaque_data' inside struct rte_security_session.
That allows upper layer to easily associate some user defined
data with the session.
Proposed new layout for:
struct rte_security_session {
void *sess_private_data;
/**< Private session material */
+ uint64_t opaque_data;
+ /**< Opaque user defined data */
};

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agodoc: announce ethdev ABI change for MTU limits info
Ian Stokes [Thu, 22 Nov 2018 12:09:09 +0000 (12:09 +0000)]
doc: announce ethdev ABI change for MTU limits info

Maximum and minimum MTU values vary between hardware devices. In
hardware agnostic DPDK applications access to such information would
allow a more accurate way of validating and setting supported MTU values on
a per device basis rather than using a defined default for all devices.

The following solution was proposed:

http://mails.dpdk.org/archives/dev/2018-September/110959.html

This patch adds a depreciation notice for ``rte_eth_dev_info`` as new
members will be added to represent min and max MTU values. These can be
added to fit a hole in the existing structure for amd64 but not for 32 bit,
as such ABI change will occur as size of the structure will be impacted.

Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agodoc: announce deprecation of dpaa2 exposed mem structure
Shreyansh Jain [Thu, 15 Nov 2018 13:29:27 +0000 (13:29 +0000)]
doc: announce deprecation of dpaa2 exposed mem structure

rte_dpaa2_memsegs is no more required once the dpaax (pa-va) translation
library has been introduced. This can be made internal (for fallback
operations) in subsequent release.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agodoc: announce kvargs API change
Thomas Monjalon [Thu, 22 Nov 2018 10:32:23 +0000 (11:32 +0100)]
doc: announce kvargs API change

After processing a kvlist in rte_kvargs_process(),
it may be needed to loop again over kvlist in order to know
whether the key is matched or not.
In order to simplify implementation of kvargs checks,
a new pointer parameter may be used to get the match count.

The change of the function prototype would be as below:

 int
 rte_kvargs_process(const struct rte_kvargs *kvlist,
  const char *key_match,
+ int *match_count,
  arg_handler_t handler,
  void *opaque_arg)

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agodoc: document all EAL parameters in one place
Anatoly Burakov [Mon, 19 Nov 2018 13:10:26 +0000 (13:10 +0000)]
doc: document all EAL parameters in one place

Currently, the most complete (but still incomplete) user guide for
EAL command-line parameters resides in user guide for testpmd.
This is wrong on multiple levels, and should not be the case.

To fix it, we have to create a document that lists all supported
EAL command-line arguments. However, because different platforms
support different subsets of available EAL parameters, instead of
creating a single file, we will create a common file in
doc/guides/common containing documentation for EAL parameters
that are supported on all of our supported platforms (Linux and
FreeBSD at the time of this writing).

We will then include this document in the Getting Started guides
for all supported platforms, so that any changes made to
documentation for commonly supported EAL parameters will be
reflected in Getting Started guides for all platforms.

This patch also removes EAL parameters documentation from the
testpmd user guide, and instead adds references to the newly
created documents in both testpmd user guides and in sample
applications guide.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Rami Rosen <roszenrami@gmail.com>
6 years agodoc: add tested NXP NICs
Shreyansh Jain [Wed, 21 Nov 2018 09:28:46 +0000 (09:28 +0000)]
doc: add tested NXP NICs

18.11-rc4 verification done on NXP SoCs with integrated NICs.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: add tested platforms with Mellanox NICs
Raslan Darawsheh [Mon, 19 Nov 2018 14:04:38 +0000 (14:04 +0000)]
doc: add tested platforms with Mellanox NICs

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
6 years agodoc: add tested Intel platforms with Intel NICs
Lijuan Tu [Mon, 19 Nov 2018 15:46:18 +0000 (23:46 +0800)]
doc: add tested Intel platforms with Intel NICs

Add tested Intel platforms with Intel NICs to the release note.

Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agodoc: add known issue when hot-unplug igb_uio device
Jeff Guo [Tue, 20 Nov 2018 15:09:31 +0000 (23:09 +0800)]
doc: add known issue when hot-unplug igb_uio device

When device has been bound to igb_uio driver and application is running,
hot-unplugging the device may cause kernel crash.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: add vdev ethdev ops restriction in secondary process
Marvin Liu [Wed, 31 Oct 2018 14:49:07 +0000 (22:49 +0800)]
doc: add vdev ethdev ops restriction in secondary process

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: announce disabling GCC AVX512F as known issue
Ferruh Yigit [Tue, 20 Nov 2018 12:50:31 +0000 (12:50 +0000)]
doc: announce disabling GCC AVX512F as known issue

Document that AVX512F has been disabled for GCC builds [1] and document
its potential implications on release notes, known issue section.

[1]
Commit 8d07c82b239f ("mk: disable gcc AVX512F support")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: remove PCI-specific details from EAL guide
Thomas Monjalon [Thu, 22 Nov 2018 14:18:35 +0000 (15:18 +0100)]
doc: remove PCI-specific details from EAL guide

The PCI bus is an independent driver and not part of EAL
as it was in the early days.
EAL must be understood as a generic layer.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agodoc: remove lists of figure and table references
Thomas Monjalon [Thu, 22 Nov 2018 14:18:34 +0000 (15:18 +0100)]
doc: remove lists of figure and table references

The references to the figures and tables in the index
are not maintained.

It is probably better to have no list than an incomplete list.
Anyway the usage of such figures list is not obvious.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
6 years agovhost: fix packed ring constants declaration
Maxime Coquelin [Thu, 22 Nov 2018 17:09:22 +0000 (18:09 +0100)]
vhost: fix packed ring constants declaration

The packed ring defines were declared only if kernel
header does not declare them.
The problem is that they are not applied in upstream kernel,
and some changes in the names have been required.

This patch declares the defines unconditionally, which
fixes potential build issues.

Fixes: 297b1e7350f6 ("vhost: add virtio packed virtqueue defines")
Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agodoc: add mlx5 E-Switch VXLAN tunnels limitations
Viacheslav Ovsiienko [Thu, 22 Nov 2018 13:49:16 +0000 (13:49 +0000)]
doc: add mlx5 E-Switch VXLAN tunnels limitations

This patch adds limitation notice for MLX5 PMD regarding
VXLAN tunnels support on E-Switch Flows.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
6 years agonet/mlx5: fix TPID check for VLAN push action on E-Switch
Viacheslav Ovsiienko [Wed, 21 Nov 2018 11:27:49 +0000 (11:27 +0000)]
net/mlx5: fix TPID check for VLAN push action on E-Switch

The VLAN push action on E-Switch supports only 802.1Q (0x8100)
and 802.1AD (0x88A8) Tag Protocol ID (TPID) insertions. The
parameter check for RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN action
is added.

Fixes: 57123c00c1b8 ("net/mlx5: add Linux TC flower driver for E-Switch flow")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agonet/mlx5: fix VLAN inner ethernet type on E-Switch
Viacheslav Ovsiienko [Wed, 21 Nov 2018 17:44:38 +0000 (17:44 +0000)]
net/mlx5: fix VLAN inner ethernet type on E-Switch

The TCA_FLOWER_KEY_VLAN_ETH_TYPE should be specified for the E-Switch
Flows with VLAN and L3 pattern items in the Netlink messages. The patch
adds missing flower key to the messages. This patch partially reverts to
the code smashed by http://patches.dpdk.org/patch/47781

Fixes: 251e8d02cf37 ("net/mlx5: add VXLAN to flow translate routine")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agonet/ixgbe: fix TDH register write
Yanglong Wu [Tue, 20 Nov 2018 05:59:21 +0000 (13:59 +0800)]
net/ixgbe: fix TDH register write

The only time that software should write to the TDH register
is after a reset (hardware reset or CTRL.RST) and
before enabling the transmit function (TXDCTL.ENABLE).
If software were to write to this register while the transmit
function was enabled, the on-chip descriptor buffers might
be invalidated and the hardware could become confused.

Fixes: 029fd06d40fa ("ixgbe: queue start and stop")
Cc: stable@dpdk.org
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
6 years agodoc: update qede firmware version
Rasesh Mody [Wed, 21 Nov 2018 21:20:51 +0000 (21:20 +0000)]
doc: update qede firmware version

Update QEDE PMD firmware version to 8.37.7.0

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
6 years agonet/qede: fix Tx offload mask
Shahed Shaikh [Wed, 21 Nov 2018 21:20:49 +0000 (21:20 +0000)]
net/qede: fix Tx offload mask

Following commit updated the Tx offload mask
commit 1037ed842c37 ("mbuf: fix Tx offload mask").

So, not having PKT_TX_IPV6 and PKT_TX_IPV4 in qede PMDs supported
Tx offload mask breaks TSO support since application will fail in transmit
prepare function.

Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
6 years agonet/ena: fix out of order completion
Rafal Kozik [Wed, 21 Nov 2018 08:21:14 +0000 (09:21 +0100)]
net/ena: fix out of order completion

rx_buffer_info should be refill not linearly, but out of order.
IDs should be taken from empty_rx_reqs array.

rx_refill_buffer is introduced to temporary storage
bulk of mbufs taken from pool.

In case of error unused mbufs are put back to pool.

Fixes: c2034976673d ("net/ena: add Rx out of order completion")
Cc: stable@dpdk.org
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
6 years agonet/softnic: fix undefined device info fields
Jasvinder Singh [Tue, 20 Nov 2018 13:00:15 +0000 (13:00 +0000)]
net/softnic: fix undefined device info fields

The memcpy operation overwrites the device info fields set
by ethdev API and leaves the device field undefined.
Thus, replaces memcpy by only updating the required fields
at the driver layer.

error log: testpmd> show port info 1

**** Infos for port 1  ****
MAC address: 00:00:00:00:00:00
Device name: net_softnic0

Segmentation fault.
port_infos_display (port_id=1) at /dpdk/app/test-pmd/config.c:418
if (dev_info.device->devargs && dev_info.device->devargs->args)

Fixes: cc6d421574fe ("net/softnic: add softnic PMD")
Cc: stable@dpdk.org
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoethdev: remove unused deferred device state
Ferruh Yigit [Tue, 20 Nov 2018 12:02:36 +0000 (12:02 +0000)]
ethdev: remove unused deferred device state

DEFERRED state replaced by ownership concept and it is no more used as
code comment states.

ethdev ABI broken on this release use this opportunity to remove
DEFERRED state.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Matan Azrad <matan@mellanox.com>
6 years agodoc: update Mellanox supported OFED version
Shahaf Shuler [Mon, 19 Nov 2018 12:46:45 +0000 (14:46 +0200)]
doc: update Mellanox supported OFED version

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agodoc: add mlx5 release notes
Shahaf Shuler [Mon, 19 Nov 2018 12:46:44 +0000 (14:46 +0200)]
doc: add mlx5 release notes

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
6 years agodoc: fix typo in vhost-crypto app guide
Fan Zhang [Mon, 19 Nov 2018 09:38:31 +0000 (09:38 +0000)]
doc: fix typo in vhost-crypto app guide

This patch fixes the mismatch keyword in vhost_crypto sample
application guide.

Fixes: 709521f4c2cd ("examples/vhost_crypto: support multi-core")
Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agonet/i40e/base: fix comment referencing internal data
Ferruh Yigit [Fri, 16 Nov 2018 16:29:57 +0000 (16:29 +0000)]
net/i40e/base: fix comment referencing internal data

DCR is Intel internal information, no need to be in public code.

Fixes: de2cd512b176 ("net/i40e/base: new AQ commands for cloud filter")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/bnx2x: bump version to 1.0.7.1
Rasesh Mody [Sat, 17 Nov 2018 09:37:41 +0000 (09:37 +0000)]
net/bnx2x: bump version to 1.0.7.1

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
6 years agodoc: add known issue for i40e PHY link up
Jeff Guo [Fri, 16 Nov 2018 02:38:18 +0000 (10:38 +0800)]
doc: add known issue for i40e PHY link up

Some kernel drivers are not able to handle the link status correctly
after DPDK application sets the PHY to link down.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agosecurity: restore experimental tag for unimplemented APIs
Akhil Goyal [Thu, 22 Nov 2018 10:07:47 +0000 (10:07 +0000)]
security: restore experimental tag for unimplemented APIs

Following APIs are not currently implemented by any of the
drivers, so marking them as rte_experimental again.

Fixes: 1a81dce780a0 ("security: remove experimental tag")

rte_security_get_userdata;
rte_security_session_stats_get;
rte_security_session_update;

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
6 years agoconfig: enable more than 128 cores for arm64
Joyce Kong [Thu, 22 Nov 2018 07:37:07 +0000 (15:37 +0800)]
config: enable more than 128 cores for arm64

When running dpdk applications on cores whose ids are bigger
than original max_core setting, eal error as below:
EAL: Detected 104 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: invalid core list
-l CORELIST core indexes between 0 and 128

The fix is to increase max_core to 256 on arm64 platform.

Fixes: b3ce00e5 ("mk: introduce ARMv8 architecture")
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 <jerin.jacob@caviumnetworks.com>
6 years agoeventdev: fix unlock in Rx adapter
Nikhil Rao [Tue, 20 Nov 2018 22:09:15 +0000 (03:39 +0530)]
eventdev: fix unlock in Rx adapter

In the eth Rx adapter SW service function,
move the return to after the spinlock unlock.

Coverity issue: 302857
Fixes: a66a83744667 ("eventdev: fix Rx SW adapter stop")
Cc: stable@dpdk.org
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
6 years agoapp/eventdev: fix possible uninitialized variable
Thomas Monjalon [Fri, 16 Nov 2018 16:58:54 +0000 (17:58 +0100)]
app/eventdev: fix possible uninitialized variable

When compiling with -O1, this error can appear:
app/test-eventdev/test_pipeline_common.c:332:6: error:
‘ret’ may be used uninitialized in this function

If there is no device, then ret is returned without being initialized.
It is fixed by setting 0 as initial value.

Fixes: 032a965a8f1d ("app/eventdev: support Tx adapter")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeventdev: fix possible uninitialized variable
Thomas Monjalon [Fri, 16 Nov 2018 16:58:53 +0000 (17:58 +0100)]
eventdev: fix possible uninitialized variable

When compiling with -O1, this error can appear:
lib/librte_eventdev/rte_event_eth_tx_adapter.c:705:6: error:
‘ret’ may be used uninitialized in this function

If tx_queue_id is -1 and nb_queues is 0, then ret is returned
without being initialized.
It is fixed by setting 0 as initial value.

Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agonet/mlx4: fix possible uninitialized variable
Thomas Monjalon [Fri, 16 Nov 2018 16:58:52 +0000 (17:58 +0100)]
net/mlx4: fix possible uninitialized variable

When compiling with gcc -O1, this error appears:
drivers/net/mlx4/mlx4_ethdev.c: In function ‘mlx4_rxmode_toggle’:
rte_log.h:321:3: error:
‘mode’ may be used uninitialized in this function

The function mlx4_rxmode_toggle is never called with a value which
is not in the switch block, but GCC complains about it with -O1.
So the default case is "fixed" by setting string "undefined".

Fixes: eacaac7bae36 ("net/mlx4: restore promisc and allmulti support")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agokni: fix possible uninitialized variable
Thomas Monjalon [Fri, 16 Nov 2018 16:58:51 +0000 (17:58 +0100)]
kni: fix possible uninitialized variable

This error can be raised:
lib/librte_kni/rte_kni.c:531:15: error:
'req' may be used uninitialized in this function

It should not happen because kni_fifo_get() would return 0 if
req is not initialized, so the function would return before using req.
But GCC complains about it in -O1 optimization,
and a NULL initialization is harmless here.

Fixes: 3fc5ca2f6352 ("kni: initial import")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: fix build with -O1
Thomas Monjalon [Fri, 16 Nov 2018 16:58:50 +0000 (17:58 +0100)]
eal: fix build with -O1

In case of optimized compilation, RTE_BUILD_BUG_ON use an external
variable which is neither defined, nor used.
It seems not optimized out in case of OPDL compiled with clang -O1:
opdl_ring.c: undefined reference to `RTE_BUILD_BUG_ON_detected_error'
clang-6.0: fatal error: linker command failed with exit code 1

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: deprecate and rename bsf64 function
Anatoly Burakov [Wed, 21 Nov 2018 12:05:03 +0000 (12:05 +0000)]
eal: deprecate and rename bsf64 function

Rename rte_bsf64 to rte_bsf64_safe (this is a "safe" version in
that it prevents undefined behavior by checking if incoming
parameter is zero) and move it to common header.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
6 years agoeal: remove useless code in bsf64 function
Anatoly Burakov [Wed, 21 Nov 2018 12:05:02 +0000 (12:05 +0000)]
eal: remove useless code in bsf64 function

RTE_BITMAP_OPTIMIZATIONS was never set to 0 and makes no sense
anyway, so remove all code related to it. Also, drop the "likely"
for bsf64 code, because it's a generic function and we cannot
make any assumptions about likely values of incoming arguments.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
6 years agoipc: fix access after async request failure
Anatoly Burakov [Tue, 20 Nov 2018 16:18:46 +0000 (16:18 +0000)]
ipc: fix access after async request failure

Previous fix for rte_panic has moved setting of alarm before
sending the message. This means that whether we send a message,
the alarm would still trigger. The comment noted that cleanup
would happen in the alarm handler, but that's not what actually
happened - instead, in the event of failed send we freed the
memory in-place, before putting the request on the queue.

This works OK when the message is sent, but when sending the
message fails, the alarm would still trigger with a pointer
argument that points to non-existent memory, and cause
memory corruption.

There probably is a "proper" fix for this issue, with correct
handling of sent vs. unsent requests, however it would be
simpler just to sacrifice the sent request in the (extremely
unlikely) event of alarm set failing. The other process would
still send a response, but it will be ignored by the sender.

Fixes: 45e5f49e87fb ("ipc: remove panic in async request")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
6 years agousertools: skip empty categories in devices status
Anatoly Burakov [Mon, 19 Nov 2018 10:33:12 +0000 (10:33 +0000)]
usertools: skip empty categories in devices status

If there aren't any devices of a particular category on user's
system, we still display them, which is bad for usability. Fix
devbind to not print out a category unless there are devices in
it.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: David Hunt <david.hunt@intel.com>
6 years agoversion: 18.11-rc4
Thomas Monjalon [Mon, 19 Nov 2018 00:40:54 +0000 (01:40 +0100)]
version: 18.11-rc4

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
6 years agodoc: update timestamp validity for latency measurement
Reshma Pattan [Thu, 4 Oct 2018 12:23:59 +0000 (13:23 +0100)]
doc: update timestamp validity for latency measurement

Updated the doc on how packets are marked to identify
their timestamp as valid and considered for latency
measurement.

Suggested-by: Bao-Long Tran <longtb5@viettel.com.vn>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
6 years agodoc: fix function name in flow filtering app guide
Rami Rosen [Thu, 8 Nov 2018 19:46:48 +0000 (21:46 +0200)]
doc: fix function name in flow filtering app guide

This patch fixes a typo in flow_filtering.rst. There is no
method named generate_ipv4_rule in DPDK, it should be generate_ipv4_flow.

Signed-off-by: Rami Rosen <ramirose@gmail.com>
6 years agodoc: fix formatting in IP reassembly app guide
Marko Kovacevic [Thu, 16 Aug 2018 16:35:38 +0000 (17:35 +0100)]
doc: fix formatting in IP reassembly app guide

Fixed formatting an extra header was added making it an extra
section when it was not intended.

Fixes: d0dff9ba445e ("doc: sample application user guide")
Cc: stable@dpdk.org
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agodoc: add jansson link instructions for power app
David Hunt [Fri, 16 Nov 2018 15:47:21 +0000 (15:47 +0000)]
doc: add jansson link instructions for power app

Add more info to the docs on how to set environmental variable to
correctly build the vm_power_manager sample app in a cross compile
or multilib environment by setting PKG_CONFIG_LIBDIR.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agodoc: add cross-compilation in sample apps guide
Gavin Hu [Mon, 17 Sep 2018 02:13:23 +0000 (10:13 +0800)]
doc: add cross-compilation in sample apps guide

Fixes: 7cacb05655 ("doc: add generic build instructions for sample apps")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
6 years agodoc: create NXP DPAA2 platform guide
Hemant Agrawal [Wed, 26 Sep 2018 07:42:30 +0000 (13:12 +0530)]
doc: create NXP DPAA2 platform guide

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>