dpdk.git
5 years agovhost: handle unsupported message types in functions
Nikolay Nikolaev [Mon, 24 Sep 2018 20:17:18 +0000 (23:17 +0300)]
vhost: handle unsupported message types in functions

Add new functions to handle the unsupported vhost message types:
 - vhost_user_set_vring_err
 - vhost_user_set_log_fd

Signed-off-by: Nikolay Nikolaev <nicknickolaev@gmail.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
5 years agovhost: make message handling functions prepare the reply
Nikolay Nikolaev [Mon, 24 Sep 2018 20:17:11 +0000 (23:17 +0300)]
vhost: make message handling functions prepare the reply

As VhostUserMsg structure is reused to generate the reply, move the
relevant fields update into the respective message handling functions.

Signed-off-by: Nikolay Nikolaev <nicknickolaev@gmail.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
5 years agovhost: unify struct VhostUserMsg usage
Nikolay Nikolaev [Mon, 24 Sep 2018 20:17:04 +0000 (23:17 +0300)]
vhost: unify struct VhostUserMsg usage

Do not use the typedef version of struct VhostUserMsg. Also unify the
related parameter name.

Signed-off-by: Nikolay Nikolaev <nicknickolaev@gmail.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
5 years agonet/avf: remove keeping CRC configuration
Beilei Xing [Wed, 26 Sep 2018 02:44:34 +0000 (10:44 +0800)]
net/avf: remove keeping CRC configuration

Remove keeping CRC configuration as it's not supported by AVF.

Fixes: 5ce4c2be1a64 ("net/avf: fix offload capabilities")
Cc: stable@dpdk.org
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/mvpp2: support Tx scatter/gather
Zyta Szpak [Tue, 25 Sep 2018 07:05:09 +0000 (09:05 +0200)]
net/mvpp2: support Tx scatter/gather

The patch introduces scatter/gather support on transmit path.
A separate Tx callback is added and set if the application
requests multisegment Tx offload. Multiple descriptors are
sent per one packet.

Signed-off-by: Zyta Szpak <zyta.szpak@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Yelena Krivosheev <yelena@marvell.com>
5 years agonet/mvpp2: document MTR and TM usage
Natalie Samsonov [Tue, 25 Sep 2018 07:05:08 +0000 (09:05 +0200)]
net/mvpp2: document MTR and TM usage

Document MTR (metering) and TM (traffic management) usage plus
do some small updates here and there.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
5 years agonet/mvpp2: align with MUSDK 18.09
Tomasz Duszynski [Tue, 25 Sep 2018 07:05:05 +0000 (09:05 +0200)]
net/mvpp2: align with MUSDK 18.09

This patch introduces necessary changes required by MUSDK 18.09 library.

* As of MUSDK 18.09, pp2_cookie_t is no longer available. Now
  RX descriptor cookie is defined as plain u64 so existing cast
  is no longer valid.

* MUSDK 18.09 increased number of available bpools (buffer hw pools) by
  introducing dma regions support. Update mvpp2 driver accordingly.

* replace MV_NET_IP4_F_TOS with MV_NET_IP4_F_DSCP

  Before this patch, API allowed to configure a classification rule
  according to IPv4 TOS, which was not supported in classifier. This patch
  fixes this by using proper field.

* use 48 bit address mask

  We cannot get pointers exceeding 48 bits thus using 48 bit
  mask for extracting higher IOVA address bits is enough.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Signed-off-by: Yuval Caduri <cyuval@marvell.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Reviewed-by: Shlomi Gridish <sgridish@marvell.com>
Reviewed-by: Alan Winkowski <walan@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
5 years agonet/mvpp2: update MTU and MRU related calculations
Natalie Samsonov [Tue, 25 Sep 2018 07:05:04 +0000 (09:05 +0200)]
net/mvpp2: update MTU and MRU related calculations

This commit updates MTU and MRU related calculations.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Yelena Krivosheev <yelena@marvell.com>
Reviewed-by: Dmitri Epshtein <dima@marvell.com>
5 years agonet/mvpp2: detach Tx QoS from Rx cls/QoS config
Yuval Caduri [Tue, 25 Sep 2018 07:05:03 +0000 (09:05 +0200)]
net/mvpp2: detach Tx QoS from Rx cls/QoS config

Functional change:
Open receive cls/qos related features, only if the
config file contains an rx_related configuration entry.
This allows to configure tx_related entries, w/o unintentionally
opening rx cls/qos.

Code:
'use_global_defaults' is by default set to '1'.
Only if an rx_related entry was configured, it is updated to '0'.
rx cls/qos is performed only if 'use_global_defaults' is '0'.
Default TC configuration is now only mandatory when
'use_global_defaults' is '0'.

Signed-off-by: Yuval Caduri <cyuval@marvell.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
Tested-by: Natalie Samsonov <nsamsono@marvell.com>
5 years agonet/mvpp2: support traffic manager
Tomasz Duszynski [Tue, 25 Sep 2018 07:05:02 +0000 (09:05 +0200)]
net/mvpp2: support traffic manager

Add traffic manager support.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
5 years agonet/mvpp2: add init and deinit to flow
Tomasz Duszynski [Tue, 25 Sep 2018 07:05:01 +0000 (09:05 +0200)]
net/mvpp2: add init and deinit to flow

Add init and deinit functionality to flow implementation.

Init puts structures used by flow in a sane sate.
Deinit deallocates all resources used by flow.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
Reviewed-by: Shlomi Gridish <sgridish@marvell.com>
5 years agonet/mvpp2: change default policer configuration
Tomasz Duszynski [Tue, 25 Sep 2018 07:05:00 +0000 (09:05 +0200)]
net/mvpp2: change default policer configuration

Change QoS configuration file syntax for port's default policer
setup.

Since default policer configuration is performed before
any other policer configuration we can pick a default id.

This simplifies default policer configuration since user
no longer has to choose ids from range [0, PP2_CLS_PLCR_NUM].

Explicitly document values for rate_limit_enable field.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
5 years agonet/mvpp2: support metering
Tomasz Duszynski [Tue, 25 Sep 2018 07:04:59 +0000 (09:04 +0200)]
net/mvpp2: support metering

Add support for configuring plcr via DPDK generic metering API.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
5 years agonet/mvpp2: move common code
Tomasz Duszynski [Tue, 25 Sep 2018 07:04:58 +0000 (09:04 +0200)]
net/mvpp2: move common code

Cleanup sources by moving common code to the pmd
header file.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
5 years agonet/mvpp2: initialize ppio only once
Natalie Samsonov [Tue, 25 Sep 2018 07:04:57 +0000 (09:04 +0200)]
net/mvpp2: initialize ppio only once

This changes stop/start/configure behavior due to issue in MUSDK
library itself.  From now on, ppio can be reconfigured only after interface
is closed.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Yuval Caduri <cyuval@marvell.com>
5 years agoethdev: fix doxygen comment to be with structure
Paul M Stillwell Jr [Tue, 25 Sep 2018 14:31:09 +0000 (15:31 +0100)]
ethdev: fix doxygen comment to be with structure

The doxygen comment describing the rte_eth_dev_info structure
was separated from the structure itself so move the comment
back to be with the structure.

Fixes: 7238e63bce52 ("ethdev: add support for device offload capabilities")
Cc: stable@dpdk.org
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
5 years agonet/bonding: inherit descriptor limits from slaves
Ivan Malov [Wed, 5 Sep 2018 09:13:38 +0000 (10:13 +0100)]
net/bonding: inherit descriptor limits from slaves

Descriptor limits are used by applications to take
optimal decisions on queue sizing.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
5 years agonet/bonding: provide default Rx/Tx configuration
Ivan Malov [Wed, 5 Sep 2018 09:13:37 +0000 (10:13 +0100)]
net/bonding: provide default Rx/Tx configuration

Default Rx/Tx configuration has become a helpful
resource for applications relying on the optimal
values to make rte_eth_rxconf and rte_eth_txconf
structures. These structures can then be tweaked.

Default configuration is also used internally by
rte_eth_rx_queue_setup or rte_eth_tx_queue_setup
API calls when NULL pointer is passed by callers
with the argument for custom queue configuration.

The use cases of bonding driver may also benefit
from exercising default settings in the same way.

Restructure the code to collect various settings
from slave ports and make it possible to combine
default Rx/Tx configuration of these devices and
report it to the callers of rte_eth_dev_info_get.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
5 years agodoc: announce CRC strip changes in release notes
Ferruh Yigit [Mon, 24 Sep 2018 17:31:40 +0000 (18:31 +0100)]
doc: announce CRC strip changes in release notes

Document changes done in
commit 323e7b667f18 ("ethdev: make default behavior CRC strip on Rx")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Marchand <david.marchand@6wind.com>
5 years agonet/cxgbe: announce Rx scatter offload
Rahul Lakkireddy [Mon, 24 Sep 2018 16:05:04 +0000 (21:35 +0530)]
net/cxgbe: announce Rx scatter offload

Scatter Rx is already supported by CXGBE PMD. So, add the missing
DEV_RX_OFFLOAD_SCATTER flag to the list of supported Rx offload
features.

Also, move the macros for supported list of offload features to
header file.

Fixes: 436125e64174 ("net/cxgbe: update to Rx/Tx offload API")
Cc: stable@dpdk.org
Reported-by: Martin Weiser <martin.weiser@allegro-packets.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
5 years agonet/sfc: add 50G and 100G XtremeScale X2 family adapters
Andrew Rybchenko [Mon, 24 Sep 2018 13:50:30 +0000 (14:50 +0100)]
net/sfc: add 50G and 100G XtremeScale X2 family adapters

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: use transceiver ID when reading info
Richard Houldsworth [Mon, 24 Sep 2018 13:50:29 +0000 (14:50 +0100)]
net/sfc/base: use transceiver ID when reading info

In efx_mcdi_phy_module_get_info() probe the
transceiver identification byte rather than assume
the module matches the fixed port type.  This
supports scenarios such as a SFP mounted in a QSFP
port via a QSA module.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add accessor to whole link status
Richard Houldsworth [Mon, 24 Sep 2018 13:50:28 +0000 (14:50 +0100)]
net/sfc/base: add accessor to whole link status

Add a function which makes an MCDI GET_LINK request and
packages up the results. Currently, the get-link function
is triggered from several entry points which then pass
on or store selected parts of the data. When the driver
needs to obtain the current link state, it is more
efficient to do this in a single call.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: guard Rx scale code with corresponding option
Tom Millington [Mon, 24 Sep 2018 13:50:27 +0000 (14:50 +0100)]
net/sfc/base: guard Rx scale code with corresponding option

Previously only some of the code was guarded by this which caused
a build error when EFSYS_OPT_RX_SCALE is 0 (e.g. in manftest).

Signed-off-by: Tom Millington <tmillington@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: infer port mode bandwidth from max link speed
Richard Houldsworth [Mon, 24 Sep 2018 13:50:26 +0000 (14:50 +0100)]
net/sfc/base: infer port mode bandwidth from max link speed

Limit the port mode bandwidth calculations by the maximum
reported link speed. This system detects 25G vs 10G cards,
and 100G port modes vs 40G.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: support improvements to bandwidth calculations
Richard Houldsworth [Mon, 24 Sep 2018 13:50:25 +0000 (14:50 +0100)]
net/sfc/base: support improvements to bandwidth calculations

Change the interface to ef10_nic_get_port_mode_bandwidth()
so more NIC information can be used to infer bandwidth
requirements. Huntington calculations separated out
completely.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add X2 port modes to bandwidth calculator
Richard Houldsworth [Mon, 24 Sep 2018 13:50:24 +0000 (14:50 +0100)]
net/sfc/base: add X2 port modes to bandwidth calculator

Add cases for the new port modes supported by X2 NICs.
Lane bandwidth is calculated for pre-X2 cards so is an
underestimate for X2 in 25G/100G modes.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: update to current port mode terminology
Richard Houldsworth [Mon, 24 Sep 2018 13:50:23 +0000 (14:50 +0100)]
net/sfc/base: update to current port mode terminology

>From Medford onwards, the newer constants enumerating
port modes should be used.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: adjust PHY module info interface
Richard Houldsworth [Mon, 24 Sep 2018 13:50:22 +0000 (14:50 +0100)]
net/sfc/base: adjust PHY module info interface

Adjust data types in interface to permit the complete
module information buffer to be obtained in a single
call.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: expose PHY module device address constants
Richard Houldsworth [Mon, 24 Sep 2018 13:50:21 +0000 (14:50 +0100)]
net/sfc/base: expose PHY module device address constants

Rearrange so the valid addresses are visible to the caller.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: make last byte of module information available
Richard Houldsworth [Mon, 24 Sep 2018 13:50:20 +0000 (14:50 +0100)]
net/sfc/base: make last byte of module information available

Adjust bounds so the interface supports reading
the last available byte of data.

Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Cc: stable@dpdk.org
Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agoethdev: fix error handling in create function
Alejandro Lucero [Mon, 24 Sep 2018 13:43:24 +0000 (14:43 +0100)]
ethdev: fix error handling in create function

This patch fixes how function exit is handled when errors inside
rte_eth_dev_create.

Fixes: e489007a411c ("ethdev: add generic create/destroy ethdev APIs")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/failsafe: support multicast address list set
Evgeny Im [Fri, 21 Sep 2018 15:36:22 +0000 (16:36 +0100)]
net/failsafe: support multicast address list set

Signed-off-by: Evgeny Im <evgeny.im@oktetlabs.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
5 years agonet/failsafe: remove not supported multicast MAC filter
Evgeny Im [Fri, 21 Sep 2018 15:36:21 +0000 (16:36 +0100)]
net/failsafe: remove not supported multicast MAC filter

set_mc_addr_list method is not implemented by the driver yet.

Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Cc: stable@dpdk.org
Signed-off-by: Evgeny Im <evgeny.im@oktetlabs.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
5 years agomempool/dpaa: change debug log level to DP
Hemant Agrawal [Fri, 21 Sep 2018 11:06:02 +0000 (16:36 +0530)]
mempool/dpaa: change debug log level to DP

When the system goes out of buffers temporarily, the logs
further slow down the system. There is no need for this
continuos logs.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agobus/dpaa: add check for re-definition in compat
Hemant Agrawal [Fri, 21 Sep 2018 11:06:01 +0000 (16:36 +0530)]
bus/dpaa: add check for re-definition in compat

Few fields in compat are giving re-defination error
with new drivers such as caam_jr.
Checks have been added.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: tune prefetch in Rx path
Hemant Agrawal [Fri, 21 Sep 2018 11:06:00 +0000 (16:36 +0530)]
net/dpaa: tune prefetch in Rx path

As part of performance optimization excercise, tuning
the prefetch placement.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: separate Rx function for LS1046
Hemant Agrawal [Fri, 21 Sep 2018 11:05:59 +0000 (16:35 +0530)]
net/dpaa: separate Rx function for LS1046

This is to avoid the checks in datapath and help in performance.
LS1046 has different data stash settings.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: rearrange atomic queue support
Sunil Kumar Kori [Fri, 21 Sep 2018 11:05:58 +0000 (16:35 +0530)]
net/dpaa: rearrange atomic queue support

This is to align the code with dpaa2 to ease out maintenance
of both driver code bases.

Signed-off-by: Sunil Kumar Kori <sunil.kori@nxp.com>
5 years agobus/dpaa: avoid big endian conversions for contextb
Nipun Gupta [Fri, 21 Sep 2018 11:05:57 +0000 (16:35 +0530)]
bus/dpaa: avoid big endian conversions for contextb

minor optimization in packet handling path

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agobus/dpaa: avoid tag set for eqcr in Tx path
Nipun Gupta [Fri, 21 Sep 2018 11:05:56 +0000 (16:35 +0530)]
bus/dpaa: avoid tag set for eqcr in Tx path

Minor optimization for TX path.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agobus/dpaa: support interrupt portal based fd
Hemant Agrawal [Fri, 21 Sep 2018 11:05:55 +0000 (16:35 +0530)]
bus/dpaa: support interrupt portal based fd

This patch add supports in bus driver for qbman to support
and configure portal based FDs, which can be used for interrupt
based processing.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: minor debug log enhancements
Hemant Agrawal [Fri, 21 Sep 2018 11:05:54 +0000 (16:35 +0530)]
net/dpaa: minor debug log enhancements

Improving the debug message for event mode and
reducing the log level for less important log

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: fix link speed based on MAC type
Sachin Saxena [Fri, 21 Sep 2018 11:05:53 +0000 (16:35 +0530)]
net/dpaa: fix link speed based on MAC type

The link speed shall be on the basis of mac type.

Fixes: 799db4568c76 ("net/dpaa: support device info and speed capability")
Cc: shreyansh.jain@nxp.com
Cc: stable@dpdk.org
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agonet/dpaa: support scatter offload
Hemant Agrawal [Fri, 21 Sep 2018 11:05:52 +0000 (16:35 +0530)]
net/dpaa: support scatter offload

This patch implement the sg support, which can be
enabled/disabled w.r.t configuration.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: fix jumbo buffer config
Hemant Agrawal [Fri, 21 Sep 2018 11:05:51 +0000 (16:35 +0530)]
net/dpaa: fix jumbo buffer config

Set the missing dev data mtu for the correct size.
Set the max supported size in hw, if user is asking for more.

Fixes: 9658ac3a4ef6 ("net/dpaa: set the correct frame size in device MTU")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/dpaa: configure frame queue on MAC ID basis
Hemant Agrawal [Fri, 21 Sep 2018 11:05:50 +0000 (16:35 +0530)]
net/dpaa: configure frame queue on MAC ID basis

The current code has the hardcoded seq for fq allocation.
It require multiple changes, when some of the interfaces
are assigned to kernel stack. Changing it on the mac
id basis provide the flexibility to assign any interface
to kernel.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agonet/bonding: fix Rx slave fairness
Chas Williams [Thu, 20 Sep 2018 12:52:26 +0000 (08:52 -0400)]
net/bonding: fix Rx slave fairness

Some PMDs, especially ones with vector receives, require a minimum number
of receive buffers in order to receive any packets.  If the first slave
read leaves less than this number available, a read from the next slave
may return 0 implying that the slave doesn't have any packets which
results in skipping over that slave as the next active slave.

To fix this, implement round robin for the slaves during receive that
is only advanced to the next slave at the end of each receive burst.
This is also done to provide some additional fairness in processing in
other bonding RX burst routines as well.

Fixes: 2efb58cbab6e ("bond: new link bonding library")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Matan Azrad <matan@mellanox.com>
5 years agonet/avf: support meson build
Luca Boccassi [Wed, 19 Sep 2018 10:04:17 +0000 (11:04 +0100)]
net/avf: support meson build

Signed-off-by: Luca Boccassi <bluca@debian.org>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agonet/avf: fix missing compiler error flags
Bruce Richardson [Wed, 19 Sep 2018 10:04:16 +0000 (11:04 +0100)]
net/avf: fix missing compiler error flags

The AVF driver was missing $(WERROR_FLAGS) in it's cflags, which means
that a number of compilation errors were getting missed. This patch adds
in the flag and fixes most of the errors, just disabling the
strict-aliasing ones.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")
Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")
Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")
Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx")

CC: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/avf: fix unused variables and label
Bruce Richardson [Wed, 19 Sep 2018 10:04:15 +0000 (11:04 +0100)]
net/avf: fix unused variables and label

Compiling with all warnings turned on causes errors about unused variables
and an unused label. Remove these to allow building without having to
disable those warnings.

Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")
Fixes: 3fd7a3719c66 ("net/avf: enable ops for MTU setting")
Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt")
Fixes: 22b123a36d07 ("net/avf: initialize PMD")
Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx")
Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")
Fixes: 1060591eada5 ("net/avf: enable bulk allocate Rx")

CC: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
5 years agonet/igb: support dev reset
Gaetan Rivet [Tue, 18 Sep 2018 08:56:38 +0000 (10:56 +0200)]
net/igb: support dev reset

Add support for passive device reset on IGB ports.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
5 years agonet/fm10k: add imissed stats
Julien Meunier [Mon, 10 Sep 2018 15:50:35 +0000 (18:50 +0300)]
net/fm10k: add imissed stats

Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
register (see datasheet, section 11.27.2.60), which exposes the number
of receive packets dropped for a queue.

Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
5 years agonet/ixgbe: fix missing Tx multi-segs capability
Didier Pallard [Wed, 19 Sep 2018 15:04:09 +0000 (17:04 +0200)]
net/ixgbe: fix missing Tx multi-segs capability

In former API, ETH_TXQ_FLAGS_NOMULTSEGS was merely a hint indicating
that application will never send multisegmented packets, allowing
pmd to choose different tx methods accordingly.
In new API, DEV_TX_OFFLOAD_MULTI_SEGS became an offload capability
that is advertised by pmds, some of them do not advertise it and
expect to never receive fragmented packets (octeontx, axgbe)
So an ethdev that supports multisegmented packets should properly
advertise it.

Problem was spotted and tested on e1000, should be also present in
ixgbe_vf representor.

Fixes: cf80ba6e2038 ("net/ixgbe: add support for representor ports")
Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agonet/i40e: fix missing Tx multi-segs capability
Didier Pallard [Wed, 19 Sep 2018 15:04:08 +0000 (17:04 +0200)]
net/i40e: fix missing Tx multi-segs capability

In former API, ETH_TXQ_FLAGS_NOMULTSEGS was merely a hint indicating
that application will never send multisegmented packets, allowing
pmd to choose different tx methods accordingly.
In new API, DEV_TX_OFFLOAD_MULTI_SEGS became an offload capability
that is advertised by pmds, some of them do not advertise it and
expect to never receive fragmented packets (octeontx, axgbe)
So an ethdev that supports multisegmented packets should properly
advertise it.

Problem was spotted and tested on e1000, should be also present in
i40e_vf representor.

Fixes: e0cb96204b71 ("net/i40e: add support for representor ports")
Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agonet/fm10k: fix missing Tx multi-segs capability
Didier Pallard [Wed, 19 Sep 2018 15:04:07 +0000 (17:04 +0200)]
net/fm10k: fix missing Tx multi-segs capability

In former API, ETH_TXQ_FLAGS_NOMULTSEGS was merely a hint indicating
that application will never send multisegmented packets, allowing
pmd to choose different tx methods accordingly.
In new API, DEV_TX_OFFLOAD_MULTI_SEGS became an offload capability
that is advertised by pmds, some of them do not advertise it and
expect to never receive fragmented packets (octeontx, axgbe)
So an ethdev that supports multisegmented packets should properly
advertise it.

Problem was spotted and tested on e1000, should be also present in
fm10k.

Fixes: 30f3ce999e6a ("net/fm10k: convert to new Tx offloads API")
Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agonet/e1000: fix missing Tx multi-segs capability
Didier Pallard [Wed, 19 Sep 2018 15:04:06 +0000 (17:04 +0200)]
net/e1000: fix missing Tx multi-segs capability

In former API, ETH_TXQ_FLAGS_NOMULTSEGS was merely a hint indicating
that application will never send multisegmented packets, allowing
pmd to choose different tx methods accordingly.
In new API, DEV_TX_OFFLOAD_MULTI_SEGS became an offload capability
that is advertised by pmds, some of them do not advertise it and
expect to never receive fragmented packets (octeontx, axgbe)
So an ethdev that supports multisegmented packets should properly
advertise it.

Fixes: e5c05e6590ea ("net/e1000: convert to new Tx offloads API")
Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agonet/i40e: update Rx offload
Beilei Xing [Fri, 21 Sep 2018 08:25:29 +0000 (16:25 +0800)]
net/i40e: update Rx offload

HW supports Rx scatter offload, this patch updates
Rx scatter offload for PF.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agonet/sfc: fix a Tx queue double release possibility
Igor Romanov [Fri, 14 Sep 2018 07:31:36 +0000 (08:31 +0100)]
net/sfc: fix a Tx queue double release possibility

There are two function that call sfc_tx_qfini():
sfc_tx_fini_queues() and sfc_tx_queue_release(). But only
sfc_tx_queue_release() sets tx_queues pointer of the device data to NULL.
It may lead to the scenario in which a queue is destroyed by
sfc_tx_fini_queues() and after the queue is attempted to be destroyed again
by sfc_tx_queue_release().

Move NULL assignment to sfc_tx_qfini().

Fixes: b1b7ad933b39 ("net/sfc: set up and release Tx queues")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc: fix an Rx queue double release possibility
Igor Romanov [Fri, 14 Sep 2018 07:31:35 +0000 (08:31 +0100)]
net/sfc: fix an Rx queue double release possibility

There are two function that call sfc_rx_qfini():
sfc_rx_fini_queues() and sfc_rx_queue_release(). But only
sfc_rx_queue_release() sets rx_queues pointer of the device data to NULL.
It may lead to the scenario in which a queue is destroyed by
sfc_rx_fini_queues() and after the queue is attempted to be destroyed again
by sfc_rx_queue_release().

Move NULL assignment to sfc_rx_qfini().

Fixes: ce35b05c635e ("net/sfc: implement Rx queue setup release operations")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add helper API to make Geneve filter spec
Vijay Srivastava [Mon, 10 Sep 2018 09:33:36 +0000 (10:33 +0100)]
net/sfc/base: add helper API to make Geneve filter spec

Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix MAC Tx stats for less or equal to 64 bytes
Andy Moreton [Mon, 10 Sep 2018 09:33:35 +0000 (10:33 +0100)]
net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes

This statistic should include 64byte and smaller frames.
Fix EF10 calculation to match Siena code.

Fixes: 8c7c723dfe7c ("net/sfc/base: import MAC statistics")
Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: modify phy caps to indicate FEC request
Richard Houldsworth [Mon, 10 Sep 2018 09:33:34 +0000 (10:33 +0100)]
net/sfc/base: modify phy caps to indicate FEC request

The capability bits to request FEC modes are implicitly valid
when the corresponding FEC mode is a supported capability.
Drivers expect that it is only valid to advertise those
capabilities explicitly marked as supported. The capabilities
reported by firmware is modified with the implicit capabilities
to present the explicit model to drivers.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: improve handling of legacy RSS hash flags
Ivan Malov [Mon, 10 Sep 2018 09:33:33 +0000 (10:33 +0100)]
net/sfc/base: improve handling of legacy RSS hash flags

Client drivers may use either legacy flags, for example,
EFX_RX_HASH_TCPIPV4, or generalised flags, for example,
EFX_RX_HASH(IPV4_TCP, 4TUPLE), to configure RSS hash.
The libefx is able to recognise what scheme is used.

Legacy flags may be consumed directly by a chip-specific handler to
configure the NIC, that is, on EF10, these flags can be used to fill
in legacy RSS mode field in MCDI request. Generalised flags can also
be directly used in EF10-specific handler as they are fully compatible
with additional fields of the same MCDI request.

Legacy flags undergo conversion to generalised flags before they
are consumed by a chip-specific handler. This conversion is used to
make sure that chip-specific handlers expect only generalised flags
in the input for the sake of clarity of the code.

Depending on firmware capabilities, a chip-specififc handler either
supplies the input to the NIC directly, for example,
EFX_RX_HASH(IPV4_TCP, 4TUPLE) flag will enable 4 bits in
RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE field on EF10, or takes
the opportunity to translate the input to enable bits which don't map
to the generic flag, like setting
RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN on EF10 when the firmware
claims no support for additional modes.

However, this approach has introduced a severe problem which can be
reproduced with ultra-low-latency firmware variant. In order to enable
IP hash, EF10-specific handler requires the user to request 2-tuple
hash for IP-other, TCP and UDP traffic classes, unconditionally.
In example, IPv4 hash can be enabled using the following input:
EFX_RX_HASH(IPV4_TCP, 2TUPLE) | EFX_RX_HASH(IPV4_UDP, 2TUPLE) |
EFX_RX_HASH(IPV4, 2TUPLE).
At the same time, on ultra-low-latency firmware, the common code will
never report support for any UDP tuple to the client driver. That is,
in the same example, the driver will use EFX_RX_HASH(IPV4_TCP, 2TUPLE) |
EFX_RX_HASH(IPV4, 2TUPLE). This input will not be recognised by
EF10-specific handler, and RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN
bit will not be set in the MCDI request.

In order to solve the problem, the patch removes conversion code
from chip-specific handlers and adds appropriate code to convert
EFX_RX_HASH() flags to their legacy counterparts to the common scale
mode set function. If the firmware does not support additional modes,
the function will convert generalised flags to legacy flags correctly
without any demand for UDP flags and pass the result to a chip-specific
handler.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: simplify the code to parse RSS hash type
Ivan Malov [Mon, 10 Sep 2018 09:33:32 +0000 (10:33 +0100)]
net/sfc/base: simplify the code to parse RSS hash type

RSS mode bits can be accessed a lot easier in the hash
type value provided that the variable type is uint32_t.
The macro helper can be removed to enhance readability.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: check buffer size for hash flags
Ivan Malov [Mon, 10 Sep 2018 09:33:31 +0000 (10:33 +0100)]
net/sfc/base: check buffer size for hash flags

The efx_rx_scale_hash_flags_get interface is unsafe, as it does not
have an argument for the size of the output buffer used to return
the flags. While the only caller currently supplies a sufficiently
large buffer, this should be checked at runtime to avoid writing
past the end of the buffer.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: use simpler code to check hash algorithm type
Ivan Malov [Mon, 10 Sep 2018 09:33:30 +0000 (10:33 +0100)]
net/sfc/base: use simpler code to check hash algorithm type

The API which is used to list supported hash flags verifies
hash algorithm choice before writing the output. This check
is based on a switch() statement which has only two options
and no distinctive actions to be conducted for each of them.
Use simpler code instead of switch() to improve readability.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add support to get active FEC type
Vijay Srivastava [Mon, 10 Sep 2018 09:33:29 +0000 (10:33 +0100)]
net/sfc/base: add support to get active FEC type

Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix a typo in unicast filter insertion comment
Ivan Malov [Mon, 10 Sep 2018 09:33:28 +0000 (10:33 +0100)]
net/sfc/base: fix a typo in unicast filter insertion comment

Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix name of the argument to store RSS flags
Ivan Malov [Mon, 10 Sep 2018 09:33:27 +0000 (10:33 +0100)]
net/sfc/base: fix name of the argument to store RSS flags

The function used to retrieve supported RSS flags has an
argument which should be named properly to indicate
that it's a pointer.

Fixes: 613cbe75ae99 ("net/sfc/base: add a new means to control RSS hash")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: prevent access to the NIC config before probe
Mark Spender [Mon, 10 Sep 2018 09:33:26 +0000 (10:33 +0100)]
net/sfc/base: prevent access to the NIC config before probe

NIC config is initialized during NIC probe.

Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Cc: stable@dpdk.org
Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix ID retrieval in v3 licensing
Andy Moreton [Mon, 10 Sep 2018 09:33:25 +0000 (10:33 +0100)]
net/sfc/base: fix ID retrieval in v3 licensing

Fixes: 05fce2ce8451 ("net/sfc/base: import libefx licensing")
Fixes: f67e4719147d ("net/sfc/base: fix coding style")
Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add API to inform libefx of hardware removal
Andy Moreton [Mon, 10 Sep 2018 09:33:24 +0000 (10:33 +0100)]
net/sfc/base: add API to inform libefx of hardware removal

The efx_nic_hw_unavailable() checks ensure that if the NIC hardware
has failed or has been physically removed then libefx will stop
further attempts to access the hardware.

Add an interface for libefx clients to force unavailability, so the
hardware is treated as dead or removed even if still physically present.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add routine to check for hardware presence
Andy Moreton [Mon, 10 Sep 2018 09:33:23 +0000 (10:33 +0100)]
net/sfc/base: add routine to check for hardware presence

Add efx_nic_hw_unavailable() routine to check for hardware presence
before continuing with NIC operations.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix out of bounds read when dereferencing sdup
Gautam Dawar [Mon, 10 Sep 2018 09:33:22 +0000 (10:33 +0100)]
net/sfc/base: fix out of bounds read when dereferencing sdup

Introduce and use macro to make sure that MCDI buffers allocated
on stack are rounded up properly.

Fixes: 6f619653b9b1 ("net/sfc/base: import MCDI implementation")
Fixes: f7dc06bf35f2 ("net/sfc/base: import 5xxx/6xxx family support")
Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
Fixes: 1dae25112a54 ("net/sfc/base: import built-in selftest")
Fixes: 0a7864349106 ("net/sfc/base: import PHY statistics")
Fixes: 8c7c723dfe7c ("net/sfc/base: import MAC statistics")
Fixes: 5935cd8c47d3 ("net/sfc/base: import RSS support")
Fixes: 9ee64bd404fc ("net/sfc/base: import loopback control")
Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Fixes: 05fce2ce8451 ("net/sfc/base: import libefx licensing")
Fixes: ba6afee9a81e ("net/sfc/base: add advanced function to extract FW version")
Fixes: c7815c1d1f20 ("net/sfc/base: use proper MCDI command for encap filters")
Fixes: 17551f6dffcc ("net/sfc/base: add API to control UDP tunnel ports")
Fixes: eff9b666eae5 ("net/sfc/base: move RxDP config get to EF10 NIC code")
Fixes: 4aab7f07a645 ("net/sfc/base: refactor EF10 get datapath capabilities")
Fixes: 480a13044b8b ("net/sfc/base: support FW subvariant choice")
Fixes: 6f60cc4a78b6 ("net/sfc/base: support equal stride super-buffer Rx mode")
Fixes: 9a733758c046 ("net/sfc/base: support MARK and FLAG actions in filters")
Cc: stable@dpdk.org
Signed-off-by: Gautam Dawar <gdawar@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add information if TSO workaround is required
Mark Spender [Mon, 10 Sep 2018 09:33:21 +0000 (10:33 +0100)]
net/sfc/base: add information if TSO workaround is required

In SF bug 61297 it's been confirmed that the hardware does not always
calculate the TCP checksum correctly with TSO sends.

The value of the Total Length field (IPv4) or Payload Length field
(IPv6) is the critical factor. We're sufficiently confident that if
these fields are zero then the checksum will be calculated correctly.

The information may be used by the drivers to check if the workaround is
required when FATSOv2 is implemented.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: avoid usage of too big arrays on stack
Martin Harvey [Mon, 10 Sep 2018 09:33:20 +0000 (10:33 +0100)]
net/sfc/base: avoid usage of too big arrays on stack

Found by PreFAST static analysis.

Fixes: 1dae25112a54 ("net/sfc/base: import built-in selftest")
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: generalise EF10 NVRAM buffer interface
Richard Houldsworth [Mon, 10 Sep 2018 09:33:19 +0000 (10:33 +0100)]
net/sfc/base: generalise EF10 NVRAM buffer interface

The SFN driver's PartitionControl WMI object requires an API to parse
and filter partition data in TLV format, particularly for the Dynamic
Config partition. The ef10_nvram_buffer functions provide this
functionality but are tied to use with license partition only.
Modify functions so they are applicable to all TLV partitions and add
functions to support in-place tag modification.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add accessor for default port mode
Richard Houldsworth [Mon, 10 Sep 2018 09:33:18 +0000 (10:33 +0100)]
net/sfc/base: add accessor for default port mode

Extend efx_mcdi_get_port_modes() to optionally pass on the default
port mode field. This provides a more direct way of handling the case
where the dynamic config does not specify the port mode than the
alternative of a lookup table indexed by MCFW subtype.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add buffer editing functions to boot config
Richard Houldsworth [Mon, 10 Sep 2018 09:33:17 +0000 (10:33 +0100)]
net/sfc/base: add buffer editing functions to boot config

Functions to process the DHCP option list format used by the expansion
ROM config buffers, to support extracting and updating of individual
options.
The initial use case is the driver presenting the global and per-PF
options as separate items, with the driver implementing the
synchronization of global options across the configuration buffers
for all PFs.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add API to retrieve sensor limits
Martin Harvey [Mon, 10 Sep 2018 09:33:16 +0000 (10:33 +0100)]
net/sfc/base: add API to retrieve sensor limits

Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: check size of memory to read sensors data to
Martin Harvey [Mon, 10 Sep 2018 09:33:15 +0000 (10:33 +0100)]
net/sfc/base: check size of memory to read sensors data to

Size of provided memory should be consistent with specified size.

Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add generated description of sensors
Martin Harvey [Mon, 10 Sep 2018 09:33:14 +0000 (10:33 +0100)]
net/sfc/base: add generated description of sensors

Description of sensors is generated from firmware sources.

Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: remove probes when a Tx queue is too full
Mark Spender [Mon, 10 Sep 2018 09:33:13 +0000 (10:33 +0100)]
net/sfc/base: remove probes when a Tx queue is too full

No need for probe messages when a TxQ is too full for a post to be done.

Existing drivers check if there is room in the queue before posting
descriptors, even though efx_tx_qdesc_post() does the check itself.

The new SFN Windows driver doesn't perform the check before calling
efx_tx_qdesc_post(), but that means these probes can get frequently
printed out. It's normal driver behaviour so there's no need to print
an error.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: refactor monitors support
Martin Harvey [Mon, 10 Sep 2018 09:33:12 +0000 (10:33 +0100)]
net/sfc/base: refactor monitors support

Remove obsolete monitor types since Falcon SFN4000 series adapters
no longer supported by libefx.
Rename MCDI monitors to be consistent with YML.
The code may be simplified and generalized since only MCDI monitors
remain.

Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add check for TUNNEL module in NIC reset API
Vijay Srivastava [Mon, 10 Sep 2018 09:33:11 +0000 (10:33 +0100)]
net/sfc/base: add check for TUNNEL module in NIC reset API

Fixes: 17551f6dffcc ("net/sfc/base: add API to control UDP tunnel ports")
Cc: stable@dpdk.org
Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: move empty efsys definitions to EFX headers
Martin Harvey [Mon, 10 Sep 2018 09:33:10 +0000 (10:33 +0100)]
net/sfc/base: move empty efsys definitions to EFX headers

Move empty definitions for platform-specific annotations from efsys.h
to EFX headers.

Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Lee <alee@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix outer IPID field in TSO option descriptors
Vijay Srivastava [Mon, 10 Sep 2018 09:33:09 +0000 (10:33 +0100)]
net/sfc/base: fix outer IPID field in TSO option descriptors

Fixes: 912e603706c5 ("net/sfc/base: add outer IP ID parameter to TSOv2 descriptor")
Cc: stable@dpdk.org
Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add more definitions of partitions
Paul Fox [Mon, 10 Sep 2018 09:33:08 +0000 (10:33 +0100)]
net/sfc/base: add more definitions of partitions

Add definitions of dynamic config and expansion ROM backup
partitions.

Signed-off-by: Paul Fox <pfox@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix build because of no declaration
Andrew Rybchenko [Mon, 10 Sep 2018 09:33:07 +0000 (10:33 +0100)]
net/sfc/base: fix build because of no declaration

Functions declared in mcdi_mon.h are implemented in mcdi_mon.c.
The build fails if compiler options require declaration before definition.

Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: add space after sizeof
Andy Moreton [Mon, 10 Sep 2018 09:33:06 +0000 (10:33 +0100)]
net/sfc/base: add space after sizeof

Required by GLD cstyle.

Fixes: d4f4b8f9d260 ("net/sfc/base: make RxQ type data an union")
Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: properly align on line continuation
Andy Moreton [Mon, 10 Sep 2018 09:33:05 +0000 (10:33 +0100)]
net/sfc/base: properly align on line continuation

Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix SAL annotation for input buffers
Martin Harvey [Mon, 10 Sep 2018 09:33:04 +0000 (10:33 +0100)]
net/sfc/base: fix SAL annotation for input buffers

Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: highlight that image layout header generated
Andrew Jackson [Mon, 10 Sep 2018 09:33:03 +0000 (10:33 +0100)]
net/sfc/base: highlight that image layout header generated

EF10 signed image layout header is generated from firmware sources.

Signed-off-by: Andrew Jackson <ajackson@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix output buffer SAL annotation
Martin Harvey [Mon, 10 Sep 2018 09:33:02 +0000 (10:33 +0100)]
net/sfc/base: fix output buffer SAL annotation

Found by PreFAST warnings.

Fixes: 3f2f0189dd44 ("net/sfc/base: add signed image layout support")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix invalid order of memset arguments
Martin Harvey [Mon, 10 Sep 2018 09:33:01 +0000 (10:33 +0100)]
net/sfc/base: fix invalid order of memset arguments

Found by PreFAST.

Fixes: 3f2f0189dd44 ("net/sfc/base: add signed image layout support")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/sfc/base: fix PreFAST warnings because of unused return
Martin Harvey [Mon, 10 Sep 2018 09:33:00 +0000 (10:33 +0100)]
net/sfc/base: fix PreFAST warnings because of unused return

Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet/vmxnet3: support stats reset
Yogev Chaimovich [Thu, 20 Sep 2018 06:37:05 +0000 (06:37 +0000)]
net/vmxnet3: support stats reset

'stats_reset()' callback was missing because the device backend doesn't
support it.

This commit adds a workaround to this and implements the callback by
taking a snapshot of the stats (SNAPSHOT) each time 'stats_reset()'
is called.  When getting stats with 'stats_get()', hw stats which
always increase reduce SNAPSHOT stats.
That's how we get the "real" stats since the last 'stats_reset()'.

Signed-off-by: Yogev Chaimovich <yogev@cgstowernetworks.com>
Acked-by: Yong Wang <yongwang@vmware.com>
5 years agonet: fix Intel prepare function for IP checksum offload
Didier Pallard [Wed, 19 Sep 2018 14:42:08 +0000 (16:42 +0200)]
net: fix Intel prepare function for IP checksum offload

Current Intel tx prepare function does not properly handle the
case where only IP checksum is requested, without requesting
any L4 checksum or TSO: IP checksum is not properly reset to 0
and output packet may contain invalid IP checksum.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agoapp/testpmd: fix missing jump action in flow action
Reshma Pattan [Wed, 19 Sep 2018 14:01:05 +0000 (15:01 +0100)]
app/testpmd: fix missing jump action in flow action

Added missing JUMP flow action in flow_action array.
Without this the flow rule cannot be created for JUMP action.

Fixes: 938a184a18 ("app/testpmd: implement basic support for flow API")
Cc: stable@dpdk.org
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>