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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: check overflow before mmap
If memory_size + mmap_offset overflows then the memory region is bogus.
Do not use the overflowed mmap_size value for mmap().
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: validate virtqueue size
Check the virtqueue size constraints so that invalid values don't cause
bugs later on in the code. For example, sometimes the virtqueue size is
stored as unsigned int and sometimes as uint16_t, so bad things happen
if it is ever larger than 65535.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: fix message payload union in setting ring address
vhost_user_set_vring_addr() uses the msg->payload.addr union member, not
msg->payload.state. Luckily the offset of the 'index' field is
identical in both structs, so there was never any buggy behavior.
Fixes:
5cd690e4fda9 ("vhost: fix vring addresses not translated")
Cc: stable@dpdk.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: reject invalid log base mmap offset
If the log base mmap_offset is larger than mmap_size then it points
outside the mmap region. We must not write to memory outside the mmap
region, so validate mmap_offset in vhost_user_set_log_base().
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: clear out unused SCM_RIGHTS file descriptors
The number of file descriptors received is not stored by vhost_user.c.
vhost_user_set_mem_table() assumes that memory.nregions matches the
number of file descriptors received, but nothing guarantees this:
for (i = 0; i < memory.nregions; i++)
close(pmsg->fds[i]);
Another questionable code snippet is:
case VHOST_USER_SET_LOG_FD:
close(msg.fds[0]);
If not enough file descriptors were received then fds[] contains
uninitialized data from the stack (see read_fd_message()). This might
cause non-vhost file descriptors to be closed if the uninitialized data
happens to match.
Refactoring vhost_user.c to pass around and check the number of file
descriptors everywhere would make the code more complex. It is simpler
for read_fd_message() to set unused elements in fds[] to -1. This way
close(-1) is called and no harm is done.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: validate untrusted memory regions number field
Check if memory.nregions is valid right away. This eliminates the
possibility of bugs when memory.nregions is used later on in
vhost_user_set_mem_table().
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>