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>
Stefan Hajnoczi [Mon, 5 Feb 2018 12:16:00 +0000 (13:16 +0100)]
vhost: avoid enum fields in VhostUserMsg
The VhostUserMsg struct binary representation must match the vhost-user
protocol specification since this struct is read from and written to the
socket.
The VhostUserMsg.request union contains enum fields. Enum binary
representation is implementation-defined according to the C standard and
it is unportable to make assumptions about the representation:
6.7.2.2 Enumeration specifiers
...
Each enumerated type shall be compatible with char, a signed integer
type, or an unsigned integer type. The choice of type is
implementation-defined, but shall be capable of representing the
values of all the members of the enumeration.
Additionally, librte_vhost relies on the enum type being unsigned when
validating untrusted inputs:
if (ret <= 0 || msg.request.master >= VHOST_USER_MAX) {
If msg.request.master is signed then negative values pass this check!
Even if we assume gcc on x86_64 (SysV amd64 ABI) and don't care about
portability, the actual enum constants still affect the final type. For
example, if we add a negative constant then its type changes to signed
int:
typedef enum VhostUserRequest {
...
VHOST_USER_INVALID = -1,
};
This is very fragile and it's unlikely that anyone changing the code
would remember this. A security hole can be introduced accidentally.
This patch switches VhostUserMsg.request fields to uint32_t to avoid the
portability and potential security issues.
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: add security model documentation
Input validation is not applied consistently in vhost_user.c. This
suggests that not everyone has the same security model in mind when
working on the code.
Make the security model explicit so that everyone can understand and
follow the same model when modifying the code.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Yongseok Koh [Mon, 26 Feb 2018 17:50:57 +0000 (09:50 -0800)]
net/mlx5: fix disabling Tx packet inlining
Adding 'txq_inline=0' to PMD parameter should disable Tx packet inlining
but it doesn't work properly for Enhanced Multi-Packet Send.
Fixes:
6ce84bd88919 ("net/mlx5: add enhanced multi-packet send for ConnectX-5")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Shahaf Shuler [Sun, 25 Feb 2018 07:28:37 +0000 (09:28 +0200)]
net/mlx5: fix tunnel offloads cap query
The query for the tunnel stateless offloads is wrongly implemented
because of:
1. It was using the device id to query for the offloads.
2. It was using a compilation flag for Verbs which no longer exits.
The main reason was lack of proper API from Verbs.
Fixing the query to use rdma-core API. The capability returned from
rdma-core refer to both Tx and Rx sides.
Eventhough there is a separate cap for GRE and VXLAN, implementation merge
them into a single flag in order to simplify the checks on the data
path.
Fixes:
43e9d9794cde ("net/mlx5: support upstream rdma-core")
Fixes:
f5fde5205101 ("net/mlx5: add hardware checksum offload for tunnel packets")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Nélio Laranjeiro [Wed, 14 Feb 2018 15:04:45 +0000 (16:04 +0100)]
net/mlx5: fix flow creation with a single target queue
Adding a pattern targeting a single queues wrongly behaves as it is an RSS
request, ending by creating several Verbs flows rules to match the RSS
configuration.
Fixes:
8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Feb 2018 16:37:06 +0000 (17:37 +0100)]
net/mlx: control netdevices through ioctl only
Several control operations implemented by these PMDs affect netdevices
through sysfs, itself subject to file system permission checks enforced by
the kernel, which limits their use for most purposes to applications
running with root privileges.
Since performing the same operations through ioctl() requires fewer
capabilities (only CAP_NET_ADMIN) and given the remaining operations are
already implemented this way, this patch standardizes on ioctl() and gets
rid of redundant code.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Thomas Monjalon [Thu, 29 Mar 2018 15:28:26 +0000 (17:28 +0200)]
mk: fix kernel modules build dependency
Some kernel modules may need some header files to be "installed"
in the build directory.
When running multiple threads of make, kernel modules can try to
be compiled before the lib headers are ready:
make -j3
kernel/linux/kni/kni_misc.c:19:37: fatal error:
exec-env/rte_kni_common.h: No such file or directory
This error appeared recently after moving kernel modules in their
own directory.
Fixes:
acaa9ee991b5 ("move kernel modules directories")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Xiaohua Zhang [Mon, 5 Mar 2018 09:16:32 +0000 (17:16 +0800)]
usertools: support AVP device
Signed-off-by: Xiaohua Zhang <xiaohua.zhang@windriver.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Keith Wiles [Sat, 10 Mar 2018 16:24:28 +0000 (10:24 -0600)]
kvargs: fix syntax in comments
Use commas as separator, not semicolons.
Fixes:
a8b97e3a1db0 ("devargs: use a comma instead of semicolon to separate key/values")
Cc: stable@dpdk.org
Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Radu Nicolau [Tue, 20 Feb 2018 12:05:57 +0000 (12:05 +0000)]
examples/exception_path: limit core count to 64
Application doesn't support more that 64 lcores due to command
line limitation of using a coremask that is parsed as a 64bit
value, so changed it to reflect this limitation.
Coverity issue: 30688
Fixes:
af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Radu Nicolau [Tue, 20 Feb 2018 13:52:22 +0000 (13:52 +0000)]
app/procinfo: fix strncpy usage in args parsing
Replace strncpy with snprintf to avoid overwriting the last
NULL character.
Coverity issue: 143252
Fixes:
2deb6b5246d7 ("app/procinfo: add collectd format and host id")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Nachiketa Prachanda [Mon, 12 Mar 2018 16:54:00 +0000 (09:54 -0700)]
bus/vdev: fix finding device by name
Use strcmp to compare device names as the strncmp in original code
causes find_vdev to return -EEXIST for names that are prefix
of another. The creation of interfaces fails unpredictably based
on the order of their creation. An easy way hit this bug is to create
eth_vhost1 after eth_vhost11.
Fixes:
dda987315ca2 ("vdev: make virtual bus use its device struct")
Cc: stable@dpdk.org
Signed-off-by: Nachiketa Prachanda <nprachan@vyatta.att-mail.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Lee Roberts [Thu, 1 Mar 2018 23:20:35 +0000 (16:20 -0700)]
kni: fix build on RHEL 7.5
Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:27 +0000 (11:26 +0000)]
meter: fix library version in meson build
Fixes:
c06ddf9698e0 ("meter: add configuration profile")
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:25 +0000 (11:26 +0000)]
table: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:24 +0000 (11:26 +0000)]
pdump: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:23 +0000 (11:26 +0000)]
mempool: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:22 +0000 (11:26 +0000)]
eventdev: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:21 +0000 (11:26 +0000)]
cryptodev: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:20 +0000 (11:26 +0000)]
bitratestats: fix library version in meson build
Fixes:
5b9656b157d3 ("lib: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:18 +0000 (11:26 +0000)]
net/null: fix library version in meson build
Fixes:
efd5d1a8d8dd ("drivers/net: build some vdev PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:19 +0000 (11:26 +0000)]
net/ring: fix library version in meson build
Fixes:
efd5d1a8d8dd ("drivers/net: build some vdev PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:16 +0000 (11:26 +0000)]
net/i40e: fix library version in meson build
Fixes:
e940646b20fa ("drivers/net: build Intel NIC PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:17 +0000 (11:26 +0000)]
net/ixgbe: fix library version in meson build
Fixes:
e940646b20fa ("drivers/net: build Intel NIC PMDs with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Andrew Rybchenko [Tue, 20 Mar 2018 11:26:15 +0000 (11:26 +0000)]
net/bonding: fix library version in meson build
Fixes:
a0ace286a60b ("net/bonding: build with meson")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Ferruh Yigit [Thu, 15 Mar 2018 16:48:54 +0000 (16:48 +0000)]
pci: remove duplicated symbol from map file
Remove duplicated symbol rte_pci_device_name from .map file.
Also sort the map file to be able to detect any possible duplication
easier in the future.
Fixes:
0e3ef055bee5 ("pci: fix namespace prefix of new functions")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Hemant Agrawal [Thu, 22 Feb 2018 06:09:05 +0000 (11:39 +0530)]
move kernel modules directories
This patch moves the kernel modules code from EAL to a common place.
- Separate the kernel module code from user space code.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Tue, 20 Feb 2018 17:11:12 +0000 (18:11 +0100)]
doc: adapt features tables header height
The length of the longest header name is used to adjust the padding
of the header row automatically, instead of fixed length.
The previous length (10) was too short for vdev_netvsc.
Fixes:
6086ab3bb3d2 ("net/vdev_netvsc: introduce Hyper-V platform driver")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Thomas Monjalon [Tue, 20 Feb 2018 17:00:34 +0000 (18:00 +0100)]
doc: reduce features tables column width
The font size of the header row is reduced in order to shrink
the column size of the tables.
It is required for the NICs features table which is too large to fit
in the page width.
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Mark Kavanagh [Tue, 27 Feb 2018 11:01:24 +0000 (11:01 +0000)]
maintainers: resign from GSO lib
I will not be directly working on the DPDK project anymore.
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
Yuanhan Liu [Mon, 12 Feb 2018 08:51:58 +0000 (16:51 +0800)]
maintainers: resign from vhost/virtio
Signed-off-by: Yuanhan Liu <yliu@fridaylinux.org>
Jianfeng Tan [Sun, 11 Feb 2018 01:04:51 +0000 (01:04 +0000)]
maintainers: update for vhost lib and PMD
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thomas Monjalon [Fri, 9 Mar 2018 20:56:06 +0000 (21:56 +0100)]
drivers: rename bbdev directory to baseband
The drivers directory contains some sub-directories
for each kind of device (or bus, mem):
net, crypto, event, raw
They are not suffixed with "dev" because it is obvious.
For consistency, the sub-directory drivers/bbdev/
is renamed to drivers/baseband/.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
Anatoly Burakov [Thu, 22 Feb 2018 17:13:59 +0000 (17:13 +0000)]
vfio: fix headers for C++ support
Fixes:
279b581c897d ("vfio: expose functions")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:40 +0000 (17:42 +0000)]
eal: ignore IPC messages until init is complete
If we receive messages that don't have a callback registered for
them, and we haven't finished initialization yet, it can be reasonably
inferred that we shouldn't have gotten the message in the first
place. Therefore, send requester a special message telling them to
ignore response to this request, as if this process wasn't there.
Since it is not possible for primary process to receive any messages
during initialization, this change in practice only applies to
secondary processes.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:39 +0000 (17:42 +0000)]
eal: simplify IPC sync request timeout
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:38 +0000 (17:42 +0000)]
eal: lock IPC directory on init and send
When sending IPC messages, prevent new sockets from initializing.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:37 +0000 (17:42 +0000)]
eal: do not hardcode socket filter value in IPC
Currently, filter value is hardcoded and disconnected from actual
value returned by eal_mp_socket_path(). Fix this to generate filter
value by deriving it from eal_mp_socket_path() instead.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:36 +0000 (17:42 +0000)]
eal: abstract away IPC socket path generation
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Tue, 13 Mar 2018 17:42:35 +0000 (17:42 +0000)]
eal: add internal flag of init completed
Currently, primary process initialization is finalized by setting
the RTE_MAGIC value in the shared config. However, it is not
possible to check whether secondary process initialization has
completed. Add such a value to internal config.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Anatoly Burakov [Fri, 2 Mar 2018 08:41:37 +0000 (08:41 +0000)]
eal: fix race condition in IPC request
Unlocking the action list before sending message and locking it
again afterwards introduces a window where a response might
arrive before we have a chance to start waiting on a condition,
resulting in timeouts on valid messages.
Fixes:
783b6e54971d ("eal: add synchronous multi-process communication")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Fri, 2 Mar 2018 08:41:36 +0000 (08:41 +0000)]
eal: fix errno handling in IPC
Fixes:
bacaa2754017 ("eal: add channel for multi-process communication")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Fri, 2 Mar 2018 08:41:35 +0000 (08:41 +0000)]
eal: fix IPC request socket path
Fixes:
783b6e54971d ("eal: add synchronous multi-process communication")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Fri, 2 Mar 2018 08:41:34 +0000 (08:41 +0000)]
eal: fix IPC socket path
Fixes:
bacaa2754017 ("eal: add channel for multi-process communication")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Anatoly Burakov [Fri, 2 Mar 2018 08:41:33 +0000 (08:41 +0000)]
eal: fix IPC timeout
Fixes:
783b6e54971d ("eal: add synchronous multi-process communication")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Hemant Agrawal [Wed, 14 Mar 2018 07:56:06 +0000 (13:26 +0530)]
build: add meson cross-compilation config for dpaaX
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Wed, 14 Mar 2018 07:56:05 +0000 (13:26 +0530)]
build: add meson support for dpaaX platforms
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>