dpdk.git
6 years agodoc: fix NFP NIC guide grammar
Alejandro Lucero [Thu, 22 Feb 2018 12:15:53 +0000 (12:15 +0000)]
doc: fix NFP NIC guide grammar

My english is far worse than those from the marketing team.

Fixes: 80bc1752f16e ("nfp: add guide")
Fixes: d625beafc8be ("doc: update NFP with PF support information")
Fixes: 80987c40fd28 ("config: enable nfp driver on Linux")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
6 years agonet/nfp: fix link speed capabilities
Alejandro Lucero [Thu, 22 Feb 2018 11:57:20 +0000 (11:57 +0000)]
net/nfp: fix link speed capabilities

Mixing numeric macros with bit shifts macros is not a good idea.

Fixes: 011411586e03 ("net/nfp: extend speed capabilities advertised")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
6 years agonet/nfp: fix barrier location
Alejandro Lucero [Thu, 22 Feb 2018 11:30:39 +0000 (11:30 +0000)]
net/nfp: fix barrier location

The barrier needs to be after reading the DD bit. It has not been
a problem because the potential reads which can not happen before
reading the DD bit seem to be far enough, so the compiler is not
rescheduling them. However, a refactoring could make this problem
to arise.

Fixes: b812daadad0d ("nfp: add Rx and Tx")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
6 years agonet/nfp: fix assigning port id in mbuf
Alejandro Lucero [Thu, 22 Feb 2018 11:13:48 +0000 (11:13 +0000)]
net/nfp: fix assigning port id in mbuf

Although this can be done by the app, because other PMDs are doing it,
apps expect this behaviour from the PMD.

Fixes: b812daadad0d ("nfp: add Rx and Tx")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
6 years agonet/sfc: remove void pointer cast
Zhiyong Yang [Mon, 26 Feb 2018 08:11:03 +0000 (16:11 +0800)]
net/sfc: remove void pointer cast

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/bnxt: remove void pointer cast
Zhiyong Yang [Mon, 26 Feb 2018 08:11:02 +0000 (16:11 +0800)]
net/bnxt: remove void pointer cast

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/e1000: remove void pointer cast
Zhiyong Yang [Mon, 26 Feb 2018 08:11:01 +0000 (16:11 +0800)]
net/e1000: remove void pointer cast

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/ixgbe: remove void pointer cast
Zhiyong Yang [Mon, 26 Feb 2018 08:11:00 +0000 (16:11 +0800)]
net/ixgbe: remove void pointer cast

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agoflow_classify: remove void pointer cast
Zhiyong Yang [Mon, 26 Feb 2018 08:10:59 +0000 (16:10 +0800)]
flow_classify: remove void pointer cast

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/octeontx: fix uninitialized variable in port open
Santosh Shukla [Tue, 20 Feb 2018 17:14:16 +0000 (22:44 +0530)]
net/octeontx: fix uninitialized variable in port open

Coverity issue: 195045
Fixes: f18b146c498d ("net/octeontx: create ethdev ports")
Cc: stable@dpdk.org
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
6 years agonet/octeontx: fix null pointer dereference
Santosh Shukla [Tue, 20 Feb 2018 17:14:15 +0000 (22:44 +0530)]
net/octeontx: fix null pointer dereference

Coverity issue: 195040
Fixes: f18b146c498d ("net/octeontx: create ethdev ports")
Cc: stable@dpdk.org
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
6 years agonet/bonding: fix primary slave port id storage type
Gowrishankar Muthukrishnan [Tue, 6 Mar 2018 09:37:04 +0000 (15:07 +0530)]
net/bonding: fix primary slave port id storage type

primary_slave_port_id is uint16_t which needs to be correctly stored
with the same data type of input parameter in bond_ethdev_configure.

In powerpc, creating bond pmd results in below error due to wrong
cast on input param. This is reproducible, only when using shared
libraries.

sudo -E LD_LIBRARY_PATH=$PWD/$RTE_TARGET/lib $RTE_TARGET/app/testpmd \
  -l 0,8 --socket-mem=1024,1024 \
  --vdev 'net_tap0,iface=dpdktap0' --vdev 'net_tap1,iface=dpdktap1' \
  --vdev 'net_bonding0,mode=1,slave=0,slave=1,primary=0,socket_id=1' \
  -d $RTE_TARGET/lib/librte_pmd_tap.so \
  -d $RTE_TARGET/lib/librte_mempool_ring.so -- --forward-mode=rxonly

Configuring Port 0 (socket 0)
PMD: net_tap0: 0x70a854070280: TX configured queues number: 1
PMD: net_tap0: 0x70a854070280: RX configured queues number: 1
Port 0: 86:EA:6D:52:3E:DB
Configuring Port 1 (socket 0)
PMD: net_tap1: 0x70a854074300: TX configured queues number: 1
PMD: net_tap1: 0x70a854074300: RX configured queues number: 1
Port 1: 42:9A:B8:49:B6:00
Configuring Port 2 (socket 1)
EAL: Failed to set primary slave port 7424 on bonded device net_bonding0
Fail to configure port 2
EAL: Error - exiting with code: 1
  Cause: Start ports failed

Fixes: f8244c6399 ("ethdev: increase port id range")
Cc: stable@dpdk.org
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
6 years agonet/sfc/base: sync MCDI headers and TLV layout
Andrew Rybchenko [Tue, 20 Feb 2018 07:34:38 +0000 (07:34 +0000)]
net/sfc/base: sync MCDI headers and TLV layout

Regenerate MCDI and TLV layout headers from firmwaresrc to
pick up DPDK firmware variant and related Rx queue and filtering
extensions.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add signed image layout support
Andy Moreton [Tue, 20 Feb 2018 07:34:37 +0000 (07:34 +0000)]
net/sfc/base: add signed image layout support

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add firmware image layout option
Andy Moreton [Tue, 20 Feb 2018 07:34:36 +0000 (07:34 +0000)]
net/sfc/base: add firmware image layout option

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add outer IP ID parameter to TSOv2 descriptor
Vijay Srivastava [Tue, 20 Feb 2018 07:34:35 +0000 (07:34 +0000)]
net/sfc/base: add outer IP ID parameter to TSOv2 descriptor

Set outer_ip_id in the TX option descriptor for encapsulated packets.

Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add encapsulated TSOv2 capability
Vijay Srivastava [Tue, 20 Feb 2018 07:34:34 +0000 (07:34 +0000)]
net/sfc/base: add encapsulated TSOv2 capability

Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: support CTPIO stats
Andy Moreton [Tue, 20 Feb 2018 07:34:33 +0000 (07:34 +0000)]
net/sfc/base: support CTPIO stats

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: regenerate headers to pick up CTPIO stats
Andy Moreton [Tue, 20 Feb 2018 07:34:32 +0000 (07:34 +0000)]
net/sfc/base: regenerate headers to pick up CTPIO stats

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add bit to indicate CTPIO availability
Guido Barzini [Tue, 20 Feb 2018 07:34:31 +0000 (07:34 +0000)]
net/sfc/base: add bit to indicate CTPIO availability

Signed-off-by: Guido Barzini <gbarzini@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add CTPIO statistics
Guido Barzini [Tue, 20 Feb 2018 07:34:30 +0000 (07:34 +0000)]
net/sfc/base: add CTPIO statistics

Signed-off-by: Guido Barzini <gbarzini@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: run genfwdef to update headers
Andy Moreton [Tue, 20 Feb 2018 07:34:29 +0000 (07:34 +0000)]
net/sfc/base: run genfwdef to update headers

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: document the event type for CTPIO sends
Guido Barzini [Tue, 20 Feb 2018 07:34:28 +0000 (07:34 +0000)]
net/sfc/base: document the event type for CTPIO sends

Document the TX_EV_TYPE used for TX completion events corresponding
to CTPIO sends.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add 1.3V voltage and current sensors
Andy Moreton [Tue, 20 Feb 2018 07:34:27 +0000 (07:34 +0000)]
net/sfc/base: add 1.3V voltage and current sensors

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: provide a flag for controlling CTPIO mode
Guido Barzini [Tue, 20 Feb 2018 07:34:26 +0000 (07:34 +0000)]
net/sfc/base: provide a flag for controlling CTPIO mode

Either cut-through or store-and-forward mode.

Signed-off-by: Guido Barzini <gbarzini@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support for tunnel encapsulations
Andy Moreton [Tue, 20 Feb 2018 07:34:25 +0000 (07:34 +0000)]
net/sfc/base: add Medford2 support for tunnel encapsulations

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support for licensing
Andy Moreton [Tue, 20 Feb 2018 07:34:24 +0000 (07:34 +0000)]
net/sfc/base: add Medford2 support for licensing

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support for external port numbers
Andy Moreton [Tue, 20 Feb 2018 07:34:23 +0000 (07:34 +0000)]
net/sfc/base: add Medford2 support for external port numbers

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: group Medford external port mapping entries
Andy Moreton [Tue, 20 Feb 2018 07:34:22 +0000 (07:34 +0000)]
net/sfc/base: group Medford external port mapping entries

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: clarify port mode names and masks
Andy Moreton [Tue, 20 Feb 2018 07:34:21 +0000 (07:34 +0000)]
net/sfc/base: clarify port mode names and masks

New port mode names are defined for Medford2 and later, and
the existing names are aliased to them. Add comments with the
numeric port mode to clarify the external port modes table.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: support Medford2 event timer semantics
Andy Moreton [Tue, 20 Feb 2018 07:34:20 +0000 (07:34 +0000)]
net/sfc/base: support Medford2 event timer semantics

The event timer interface has changed for Medford2 - for
details see bug66418 comment 9. Update the common code to
use the new timer semantics for Medford2.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: support FEC mode settings
Andy Moreton [Tue, 20 Feb 2018 07:34:19 +0000 (07:34 +0000)]
net/sfc/base: support FEC mode settings

Medford2 controllers support control and reporting of
FEC modes for 25G and higher links. See SF-109306-TC
for suggested usage in client code.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: remove obsolete comments
Andy Moreton [Tue, 20 Feb 2018 07:34:18 +0000 (07:34 +0000)]
net/sfc/base: remove obsolete comments

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move VI window size config to ef10 NIC board
Andy Moreton [Tue, 20 Feb 2018 07:34:17 +0000 (07:34 +0000)]
net/sfc/base: move VI window size config to ef10 NIC board

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move privilege config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:16 +0000 (07:34 +0000)]
net/sfc/base: move privilege config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move vector config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:15 +0000 (07:34 +0000)]
net/sfc/base: move vector config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move limits config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:14 +0000 (07:34 +0000)]
net/sfc/base: move limits config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move Tx config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:13 +0000 (07:34 +0000)]
net/sfc/base: move Tx config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move Rx config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:12 +0000 (07:34 +0000)]
net/sfc/base: move Rx config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move datapath config to ef10 NIC board cfg
Andy Moreton [Tue, 20 Feb 2018 07:34:11 +0000 (07:34 +0000)]
net/sfc/base: move datapath config to ef10 NIC board cfg

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move PHY/link config to ef10 NIC board cfg
Andy Moreton [Tue, 20 Feb 2018 07:34:10 +0000 (07:34 +0000)]
net/sfc/base: move PHY/link config to ef10 NIC board cfg

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move legacy board config to ef10 NIC board cfg
Andy Moreton [Tue, 20 Feb 2018 07:34:09 +0000 (07:34 +0000)]
net/sfc/base: move legacy board config to ef10 NIC board cfg

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move MAC address config to ef10 NIC board cfg
Andy Moreton [Tue, 20 Feb 2018 07:34:08 +0000 (07:34 +0000)]
net/sfc/base: move MAC address config to ef10 NIC board cfg

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move PF/VF config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:07 +0000 (07:34 +0000)]
net/sfc/base: move PF/VF config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move port config to ef10 NIC board config
Andy Moreton [Tue, 20 Feb 2018 07:34:06 +0000 (07:34 +0000)]
net/sfc/base: move port config to ef10 NIC board config

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add ef10 NIC board config method
Andy Moreton [Tue, 20 Feb 2018 07:34:05 +0000 (07:34 +0000)]
net/sfc/base: add ef10 NIC board config method

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: use correct name for frame truncation event
Andy Moreton [Tue, 20 Feb 2018 07:34:04 +0000 (07:34 +0000)]
net/sfc/base: use correct name for frame truncation event

The RX_ECC_ERR flag in RX events was misnamed, as it
reported frame truncation. Use the new RX_TRUNC_ERR
name for this flag.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: remove MAC stats size define
Andy Moreton [Tue, 20 Feb 2018 07:34:03 +0000 (07:34 +0000)]
net/sfc/base: remove MAC stats size define

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc: size MAC stats DMA buffer to support Medford2
Andrew Rybchenko [Tue, 20 Feb 2018 07:34:02 +0000 (07:34 +0000)]
net/sfc: size MAC stats DMA buffer to support Medford2

Medford2 supports more MAC stats than previous HW. So DMA
buffer must be sized properly.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: resolve code analysis warnings
Richard Houldsworth [Tue, 20 Feb 2018 07:34:01 +0000 (07:34 +0000)]
net/sfc/base: resolve code analysis warnings

Minimal changes adding buffer size checks and simplifying checksum
processing.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: decode Medford2 FEC stats if available
Andy Moreton [Tue, 20 Feb 2018 07:34:00 +0000 (07:34 +0000)]
net/sfc/base: decode Medford2 FEC stats if available

Decode Medford2 FEC stats if available in MAC stats DMA buffer.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: run mkconfig.py to add FEC MAC stats
Andy Moreton [Tue, 20 Feb 2018 07:33:59 +0000 (07:33 +0000)]
net/sfc/base: run mkconfig.py to add FEC MAC stats

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: use MAC stats DMA buffer size when decoding
Andy Moreton [Tue, 20 Feb 2018 07:33:58 +0000 (07:33 +0000)]
net/sfc/base: use MAC stats DMA buffer size when decoding

On Medford2 and later the MAC stats buffer has been enlarged.
Use the MAC stats DMA buffer size to ensure that the stats END
generation count is read from the correct location, and that
over-reading of the DMA buffer is prevented.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: use MAC stats DMA buffer size from caps
Andy Moreton [Tue, 20 Feb 2018 07:33:57 +0000 (07:33 +0000)]
net/sfc/base: use MAC stats DMA buffer size from caps

For Medford2 the DMA buffer used for one-shot or periodic MAC stats
has been extended. Ensure the MAC stats DMA buffer size is large
enough to hold the number of stats counters supported by firmware.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: improve robustness of MAC stats get via MCDI
Andy Moreton [Tue, 20 Feb 2018 07:33:56 +0000 (07:33 +0000)]
net/sfc/base: improve robustness of MAC stats get via MCDI

Previously the code relied on the callers of efx_mcdi_mac_stats
to provide a DMA buffer or NULL depending on the action. Fix
this so that the DMA buffer is only passed in the request when
needed, and that an error is reported for a missing DMA buffer.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: retrieve number of MAC stats from NIC
Andy Moreton [Tue, 20 Feb 2018 07:33:55 +0000 (07:33 +0000)]
net/sfc/base: retrieve number of MAC stats from NIC

This reports the number of stats (and hence the DMA buffer size)
for MAC stats. If MC_GET_CAPABABILITIES_V4 is not supported then
use the legacy Siena-compatible MC_CMD_MAC_NSTATS value.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: refactor EF10 get datapath capabilities
Andy Moreton [Tue, 20 Feb 2018 07:33:54 +0000 (07:33 +0000)]
net/sfc/base: refactor EF10 get datapath capabilities

Inline efx_mcdi_get_capabilities() to prepare for reading
newer capabilities response versions.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: handle new speeds in link events
Andy Moreton [Tue, 20 Feb 2018 07:33:53 +0000 (07:33 +0000)]
net/sfc/base: handle new speeds in link events

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add efsys macro to get memory region size
Andy Moreton [Tue, 20 Feb 2018 07:33:52 +0000 (07:33 +0000)]
net/sfc/base: add efsys macro to get memory region size

EFSYS_MEM_SIZE() reports the DMA mapped size of an efsys_mem_t
allocated region (the allocation size may be different due to
memory allocator and DMA alignment restrictions).

This ensures that common code internals have explicit knowledge
of the usable size of DMA mapped memory regions.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add new loopback modes
Andy Moreton [Tue, 20 Feb 2018 07:33:51 +0000 (07:33 +0000)]
net/sfc/base: add new loopback modes

Report supported loopback modes for new Medford2 link speeds.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: support new link modes
Andy Moreton [Tue, 20 Feb 2018 07:33:50 +0000 (07:33 +0000)]
net/sfc/base: support new link modes

Add basic support for new link modes for Medford2.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: simplify loopback type checking
Andy Moreton [Tue, 20 Feb 2018 07:33:49 +0000 (07:33 +0000)]
net/sfc/base: simplify loopback type checking

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: report memory BAR number
Andy Moreton [Tue, 20 Feb 2018 07:33:48 +0000 (07:33 +0000)]
net/sfc/base: report memory BAR number

On Medford and earlier controllers the BAR layout is:
  PF BAR 0: (32bit I/O) I/O mapped registers
  PF BAR 2: (64bit Mem) Memory mapped registers (VI aperture)
  PF BAR 4: (64bit Mem) MSI-X tables

  VF BAR 0: (64bit Mem) Memory mapped registers (VI aperture)
  VF BAR 2: (64bit Mem) MSI-X tables

On Medford2, the layout is:
  PF/VF BAR 0: (64bit Mem) Memory mapped registers (VI aperture)
  PF/VF BAR 2: (64bit Mem) MSI-X tables

Make the VI aperture BAR number available for drivers that need it.
Remove EFX_MEM_BAR define as it it is not correct on all platforms.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: update notes on interrupt testing on VFs
Andy Moreton [Tue, 20 Feb 2018 07:33:47 +0000 (07:33 +0000)]
net/sfc/base: update notes on interrupt testing on VFs

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: fix too long line
Andrew Rybchenko [Tue, 20 Feb 2018 07:33:46 +0000 (07:33 +0000)]
net/sfc/base: fix too long line

Fixes: 6f619653b9b1 ("net/sfc/base: import MCDI implementation")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: refactoring eliminating code analysis warnings
Richard Houldsworth [Tue, 20 Feb 2018 07:33:45 +0000 (07:33 +0000)]
net/sfc/base: refactoring eliminating code analysis warnings

Addresses most of the warnings reported by the sfn windows driver.

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: update hardware headers for Medford2
Andy Moreton [Tue, 20 Feb 2018 07:33:44 +0000 (07:33 +0000)]
net/sfc/base: update hardware headers for Medford2

The changes to efx_regs_ef10.h are auto-generated and include:

 - Updated event RX_L4_CLASS which is now 2 bits (was 3).
   The encoding of TCP, UDP and UNKNOWN are unchanged so
   the narrower Medford2 field definition is compatible with
   all controllers.

 - Fix definition of FATSOv2 option descriptors. These were
   added manually and differ from the auto-generated values
   in some fields (not yet used in common code). The field
   definitions have been corrected to agree with the Linux net
   driver headers and SF-108452-SW.

The remaining changes adapt the common code to use the updated
headers.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add method to make checksum option descriptors
Mark Spender [Tue, 20 Feb 2018 07:33:43 +0000 (07:33 +0000)]
net/sfc/base: add method to make checksum option descriptors

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: improve comments for EF10 ext port mapping
Richard Houldsworth [Tue, 20 Feb 2018 07:33:42 +0000 (07:33 +0000)]
net/sfc/base: improve comments for EF10 ext port mapping

Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: support runtime VI window size
Andy Moreton [Tue, 20 Feb 2018 07:33:41 +0000 (07:33 +0000)]
net/sfc/base: support runtime VI window size

Medford2 uses a configurable VI window size, and requires
updates to register accesses to use a runtime VI window size
rather than the *_STEP register constants used for earlier
controllers.

Update the common code to query the VI window size via MCDI,
and add new EFX_BAR_VI_* accessor macros for per-VI registers.

The existing EFX_BAR_TBL_* macros can be used for non-VI
register tables (and for code that can never be called for
a Medford2 controller e.g. Siena-only code).

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to MON module
Andy Moreton [Tue, 20 Feb 2018 07:33:40 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to MON module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to VPD module
Andy Moreton [Tue, 20 Feb 2018 07:33:39 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to VPD module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to BOOTCFG module
Andy Moreton [Tue, 20 Feb 2018 07:33:38 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to BOOTCFG module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to SRAM module
Andy Moreton [Tue, 20 Feb 2018 07:33:37 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to SRAM module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to NVRAM module
Andy Moreton [Tue, 20 Feb 2018 07:33:36 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to NVRAM module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to Tx module
Andy Moreton [Tue, 20 Feb 2018 07:33:35 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to Tx module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to Rx module
Andy Moreton [Tue, 20 Feb 2018 07:33:34 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to Rx module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to PHY module
Andy Moreton [Tue, 20 Feb 2018 07:33:33 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to PHY module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to MCDI module
Andy Moreton [Tue, 20 Feb 2018 07:33:32 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to MCDI module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to MAC module
Andy Moreton [Tue, 20 Feb 2018 07:33:31 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to MAC module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to INTR module
Andy Moreton [Tue, 20 Feb 2018 07:33:30 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to INTR module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to FILTER module
Andy Moreton [Tue, 20 Feb 2018 07:33:29 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to FILTER module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to EV module
Andy Moreton [Tue, 20 Feb 2018 07:33:28 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to EV module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: move RxDP config get to EF10 NIC code
Andy Moreton [Tue, 20 Feb 2018 07:33:27 +0000 (07:33 +0000)]
net/sfc/base: move RxDP config get to EF10 NIC code

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: correct PIO buffer dimensions for Medford2
Andy Moreton [Tue, 20 Feb 2018 07:33:26 +0000 (07:33 +0000)]
net/sfc/base: correct PIO buffer dimensions for Medford2

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 support to NIC module
Andy Moreton [Tue, 20 Feb 2018 07:33:25 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 support to NIC module

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add efsys option for Medford2
Andy Moreton [Tue, 20 Feb 2018 07:33:24 +0000 (07:33 +0000)]
net/sfc/base: add efsys option for Medford2

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add Medford2 PCI IDs
Andy Moreton [Tue, 20 Feb 2018 07:33:23 +0000 (07:33 +0000)]
net/sfc/base: add Medford2 PCI IDs

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: add 3.3V and 12.0V current sensors
Andy Moreton [Tue, 20 Feb 2018 07:33:22 +0000 (07:33 +0000)]
net/sfc/base: add 3.3V and 12.0V current sensors

Automatically generated using mkconfig.py.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: update autogenerated headers from firmwaresrc
Andrew Rybchenko [Tue, 20 Feb 2018 07:33:21 +0000 (07:33 +0000)]
net/sfc/base: update autogenerated headers from firmwaresrc

Pick up Medford2 interfaces.

Split AOE operations out into own header.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc/base: regenerate files with genfwdef after ID update
Andrew Jackson [Tue, 20 Feb 2018 07:33:20 +0000 (07:33 +0000)]
net/sfc/base: regenerate files with genfwdef after ID update

Add security level to image boot header.

Signed-off-by: Andrew Jackson <ajackson@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agonet/sfc: add missing defines for SAL annotation
Andrew Rybchenko [Tue, 20 Feb 2018 07:33:19 +0000 (07:33 +0000)]
net/sfc: add missing defines for SAL annotation

Fixes: e1b944598579 ("net/sfc: build libefx")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
6 years agovhost: fix ring index returned to master on stop
Tomasz Kulasek [Fri, 9 Feb 2018 17:28:00 +0000 (18:28 +0100)]
vhost: fix ring index returned to master on stop

According to the "Vhost-user Protocol" document,
VHOST_USER_GET_VRING_BASE should get the available vring base offset.

Fixes: 8f972312b8f4 ("vhost: support vhost-user")
Cc: stable@dpdk.org
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: fix log macro name conflict
Tomasz Kulasek [Fri, 9 Feb 2018 17:24:00 +0000 (18:24 +0100)]
vhost: fix log macro name conflict

LOG_DEBUG is a symbol defined by POSIX, so if sys/log.h is
included the symbols conflict.

This patch changes LOG_DEBUG to VHOST_LOG_DEBUG.

Fixes: 1c01d52392d5 ("vhost: add debug print")
Cc: stable@dpdk.org
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: avoid function call in data path
Jianfeng Tan [Wed, 14 Feb 2018 04:01:00 +0000 (05:01 +0100)]
vhost: avoid function call in data path

Previously, get_device() is a function call. It's OK for slow path
configuration, but takes some cycles for data path.

To avoid that, we turn this function to inline type.

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: remove unused log constant
Jianfeng Tan [Wed, 14 Feb 2018 04:01:00 +0000 (05:01 +0100)]
vhost: remove unused log constant

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: fix realloc failure
Tomasz Kulasek [Fri, 9 Feb 2018 17:19:00 +0000 (18:19 +0100)]
vhost: fix realloc failure

When reallocation of guest pages fails, vhost_user_set_mem_table() also
should fail.

Fixes: e246896178e6 ("vhost: get guest/host physical address mappings")
Cc: stable@dpdk.org
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: fix device cleanup at stop
Tomasz Kulasek [Fri, 9 Feb 2018 17:10:00 +0000 (18:10 +0100)]
vhost: fix device cleanup at stop

This prevents from destroying & recreating user device in "incomplete"
vring state. virtio_is_ready() was returning true for devices with
vrings which did not have valid callfd (their VHOST_USER_SET_VRING_CALL
hasn't arrived yet)

Fixes: 8f972312b8f4 ("vhost: support vhost-user")
Cc: stable@dpdk.org
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: check cmsg not null
Tomasz Kulasek [Fri, 9 Feb 2018 17:05:00 +0000 (18:05 +0100)]
vhost: check cmsg not null

Fixes: 8f972312b8f4 ("vhost: support vhost-user")
Cc: stable@dpdk.org
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
6 years agovhost: fix offset while mmaping log base address
Tomasz Kulasek [Thu, 8 Feb 2018 16:59:00 +0000 (17:59 +0100)]
vhost: fix offset while mmaping log base address

QEMU always set offset to 0 but for sanity we should take the offset
into account.

Fixes: 54f9e32305d4 ("vhost: handle dirty pages logging request")
Cc: stable@dpdk.org
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>