Commit Graph

15961 Commits

Author SHA1 Message Date
Darek Stojaczyk
161419983d eal: fix devargs reference after probing failure
Even if a device failed to plug, it's still a device
object that references the devargs. Those devargs will
be freed automatically together with the device, but
freeing them any earlier - like it's done in the hotplug
error handling path right now - will give us a dangling
pointer and a segfault scenario.

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

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

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-25 13:45:35 +01:00
Darek Stojaczyk
29bf7e93ba eal: fix devargs leak on multi-process detach request
Device detach triggered through IPC leaked some memory.
It allocated a devargs objects just to use it for
parsing the devargs string in order to retrieve the
device name. Those devargs weren't passed anywhere
and were never freed.

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-11-25 13:32:01 +01:00
Darek Stojaczyk
494db286f3 eal: fix multi-process hotplug if attached in secondary
Consider the following scenario:

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

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-11-25 13:27:17 +01:00
Darek Stojaczyk
d27eed3139 eal: fix multi-process hotplug if already probed
When primary process receives an IPC attach request
of a device that's already locally-attached, it
doesn't setup its variables properly and is prone to
segfaulting on a subsequent rollback.

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

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

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
2018-11-25 13:22:51 +01:00
Darek Stojaczyk
5d36bf2bcd eal: fix multi-process hotplug rollback
If a device fails to attach before it's plugged,
the subsequent rollback will still try to detach it,
causing a segfault. Unplugging a device that wasn't
plugged isn't really supported, so this patch adds
an extra error check to prevent that from happening.

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
2018-11-25 13:15:34 +01:00
Darek Stojaczyk
047e3f9f2a vfio: do not needlessly setup device in secondary process
Setting up a device that wasn't setup in the primary
process will possibly break the primary process. That's
because the IPC message to retrieve the group fd in the
primary will also *open* that group if it wasn't opened
before. Even though the secondary process closes that fd
soon after as a part of its error handling path, the
primary process leaks it.

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

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

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

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-25 13:09:05 +01:00
Ferruh Yigit
d3110b124a bus/pci: fix allocation of device path
The pci_resource_by_index called strlen() on uninitialized
memory which would lead to the wrong size of memory allocated
for the path portion of the resource map. This would either cause
excessively large allocation, or worse memory corruption.

Coverity issue: 300868
Fixes: ea9d56226e ("pci: introduce function to map uio resource by index")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-25 11:51:11 +01:00
Ilya Maximets
705dced4a7 net/virtio: avoid annoying IOPL error log
In case of running with not enough capabilities, i.e. running as
non-root user any application linked with DPDK prints the message
about IOPL call failure even if it was just called like
'./testpmd --help'. For example, this breaks most of the OVS unit
tests if it built with DPDK support.

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

Fixes: 565b85dcd9 ("eal: set iopl only when needed")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-25 11:44:57 +01:00
Ilya Maximets
9e8b90fc6d eal/bsd: fix possible IOPL fd leak
If rte_eal_iopl_init() will be called more than once we'll leak
the file descriptor.

Fixes: b46fe31862 ("eal/bsd: fix virtio on FreeBSD")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-25 11:44:25 +01:00
Yipeng Wang
8747682a69 doc: improve hash library guide
This commit improves the programmer guide of the hash
library to be more accurate on new features introduced
in 18.11.

Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Signed-off-by: Sameh Gobriel <sameh.gobriel@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-25 11:09:03 +01:00
Tiwei Bie
89745a4ce7 doc: remove old options from pdump guide
The --server-socket-path and --client-socket-path options
have already been removed. So also remove them from the doc
to avoid confusion.

Fixes: 09f4aa2b95 ("app/pdump: remove unused socket path options")
Cc: stable@dpdk.org

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-25 10:55:07 +01:00
David Hunt
9e0e4a00df doc: suggest to keep doc and code in same patch
Add a paragraph to the patch contribution guide suggesting that developers
keep doc updates in the same patch as the code, rather than one big
doc update as the final patch in a patch set.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-11-24 21:46:54 +01:00
Marko Kovacevic
904ffb2e96 doc: add note about bool into coding style
Added a note into the coding style to
highlight the use of a bool within a struct

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-11-24 21:43:22 +01:00
Thomas Monjalon
865cd19116 doc: announce Linux support change
It was agreed by the Technical Board to increase the minimal
supported Linux version, and written in Linux guide.
An announce was missing in the deprecation notices.

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

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-24 19:39:17 +01:00
Jasvinder Singh
40401c5bcf doc: announce API change for sched library
There will be change in API functions because of mbuf sched field
updates, outlined in deprecation note of mbuf->hash.sched.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
2018-11-24 19:14:22 +01:00
Konstantin Ananyev
e9b0cfc28c doc: announce API change for cryptodev sym session
Below are details and reasoning for proposed changes.

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

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

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

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

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

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

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

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

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
2018-11-24 19:04:39 +01:00
Konstantin Ananyev
55223453f3 doc: announce ABI change for security session
Add 'uint64_t opaque_data' inside struct rte_security_session.
That allows upper layer to easily associate some user defined
data with the session.
Proposed new layout for:
struct rte_security_session {
	void *sess_private_data;
	/**< Private session material */
+	uint64_t opaque_data;
+	/**< Opaque user defined data */
};

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2018-11-24 18:58:39 +01:00
Ian Stokes
799e4d9fa8 doc: announce ethdev ABI change for MTU limits info
Maximum and minimum MTU values vary between hardware devices. In
hardware agnostic DPDK applications access to such information would
allow a more accurate way of validating and setting supported MTU values on
a per device basis rather than using a defined default for all devices.

The following solution was proposed:

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

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

Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-11-24 18:55:16 +01:00
Shreyansh Jain
a560a564bc doc: announce deprecation of dpaa2 exposed mem structure
rte_dpaa2_memsegs is no more required once the dpaax (pa-va) translation
library has been introduced. This can be made internal (for fallback
operations) in subsequent release.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-11-24 18:24:24 +01:00
Thomas Monjalon
61ed434ad1 doc: announce kvargs API change
After processing a kvlist in rte_kvargs_process(),
it may be needed to loop again over kvlist in order to know
whether the key is matched or not.
In order to simplify implementation of kvargs checks,
a new pointer parameter may be used to get the match count.

The change of the function prototype would be as below:

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

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-11-24 18:12:02 +01:00
Anatoly Burakov
3ee567cfec doc: document all EAL parameters in one place
Currently, the most complete (but still incomplete) user guide for
EAL command-line parameters resides in user guide for testpmd.
This is wrong on multiple levels, and should not be the case.

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

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

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

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Rami Rosen <roszenrami@gmail.com>
2018-11-23 11:50:11 +01:00
Shreyansh Jain
fdb650267f doc: add tested NXP NICs
18.11-rc4 verification done on NXP SoCs with integrated NICs.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 03:23:29 +01:00
Raslan Darawsheh
b319e1734a doc: add tested platforms with Mellanox NICs
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
2018-11-23 03:20:50 +01:00
Lijuan Tu
1b6aa71b4a doc: add tested Intel platforms with Intel NICs
Add tested Intel platforms with Intel NICs to the release note.

Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
2018-11-23 03:15:12 +01:00
Jeff Guo
a2e97ef700 doc: add known issue when hot-unplug igb_uio device
When device has been bound to igb_uio driver and application is running,
hot-unplugging the device may cause kernel crash.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 03:10:33 +01:00
Marvin Liu
174d15dea9 doc: add vdev ethdev ops restriction in secondary process
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 03:06:25 +01:00
Ferruh Yigit
aa47e0b7d4 doc: announce disabling GCC AVX512F as known issue
Document that AVX512F has been disabled for GCC builds [1] and document
its potential implications on release notes, known issue section.

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

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 03:01:39 +01:00
Thomas Monjalon
e3e363a2d1 doc: remove PCI-specific details from EAL guide
The PCI bus is an independent driver and not part of EAL
as it was in the early days.
EAL must be understood as a generic layer.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 02:57:20 +01:00
Thomas Monjalon
55a76e8261 doc: remove lists of figure and table references
The references to the figures and tables in the index
are not maintained.

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

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-23 02:57:05 +01:00
Maxime Coquelin
5a12b67e74 vhost: fix packed ring constants declaration
The packed ring defines were declared only if kernel
header does not declare them.
The problem is that they are not applied in upstream kernel,
and some changes in the names have been required.

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

Fixes: 297b1e7350 ("vhost: add virtio packed virtqueue defines")
Cc: stable@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-22 23:06:26 +01:00
Viacheslav Ovsiienko
0280f28122 doc: add mlx5 E-Switch VXLAN tunnels limitations
This patch adds limitation notice for MLX5 PMD regarding
VXLAN tunnels support on E-Switch Flows.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
2018-11-22 20:21:29 +01:00
Viacheslav Ovsiienko
4022d78982 net/mlx5: fix TPID check for VLAN push action on E-Switch
The VLAN push action on E-Switch supports only 802.1Q (0x8100)
and 802.1AD (0x88A8) Tag Protocol ID (TPID) insertions. The
parameter check for RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN action
is added.

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

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-22 16:17:31 +01:00
Viacheslav Ovsiienko
e71b32f172 net/mlx5: fix VLAN inner ethernet type on E-Switch
The TCA_FLOWER_KEY_VLAN_ETH_TYPE should be specified for the E-Switch
Flows with VLAN and L3 pattern items in the Netlink messages. The patch
adds missing flower key to the messages. This patch partially reverts to
the code smashed by http://patches.dpdk.org/patch/47781

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

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-22 16:17:31 +01:00
Yanglong Wu
ff30a020bb net/ixgbe: fix TDH register write
The only time that software should write to the TDH register
is after a reset (hardware reset or CTRL.RST) and
before enabling the transmit function (TXDCTL.ENABLE).
If software were to write to this register while the transmit
function was enabled, the on-chip descriptor buffers might
be invalidated and the hardware could become confused.

Fixes: 029fd06d40 ("ixgbe: queue start and stop")
Cc: stable@dpdk.org

Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-11-22 13:58:23 +01:00
Rasesh Mody
6bb0f89173 doc: update qede firmware version
Update QEDE PMD firmware version to 8.37.7.0

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-11-22 10:31:52 +01:00
Shahed Shaikh
3985ea528a net/qede: fix Tx offload mask
Following commit updated the Tx offload mask
commit 1037ed842c ("mbuf: fix Tx offload mask").

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

Fixes: 1037ed842c ("mbuf: fix Tx offload mask")
Cc: stable@dpdk.org

Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
2018-11-22 10:31:25 +01:00
Rafal Kozik
79405ee175 net/ena: fix out of order completion
rx_buffer_info should be refill not linearly, but out of order.
IDs should be taken from empty_rx_reqs array.

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

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

Fixes: c203497667 ("net/ena: add Rx out of order completion")
Cc: stable@dpdk.org

Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
2018-11-22 09:50:39 +01:00
Jasvinder Singh
66cdfd67c5 net/softnic: fix undefined device info fields
The memcpy operation overwrites the device info fields set
by ethdev API and leaves the device field undefined.
Thus, replaces memcpy by only updating the required fields
at the driver layer.

error log: testpmd> show port info 1

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

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

Fixes: cc6d421574 ("net/softnic: add softnic PMD")
Cc: stable@dpdk.org

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-11-21 16:23:56 +01:00
Ferruh Yigit
8461a5bb70 ethdev: remove unused deferred device state
DEFERRED state replaced by ownership concept and it is no more used as
code comment states.

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

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Matan Azrad <matan@mellanox.com>
2018-11-21 16:11:14 +01:00
Shahaf Shuler
e627fe1ab2 doc: update Mellanox supported OFED version
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-21 15:50:49 +01:00
Shahaf Shuler
94c11d4325 doc: add mlx5 release notes
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-21 15:50:49 +01:00
Fan Zhang
cef5df19e8 doc: fix typo in vhost-crypto app guide
This patch fixes the mismatch keyword in vhost_crypto sample
application guide.

Fixes: 709521f4c2 ("examples/vhost_crypto: support multi-core")
Cc: stable@dpdk.org

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
2018-11-20 14:59:01 +01:00
Ferruh Yigit
1a0833efde net/i40e/base: fix comment referencing internal data
DCR is Intel internal information, no need to be in public code.

Fixes: de2cd512b1 ("net/i40e/base: new AQ commands for cloud filter")
Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-11-20 12:42:50 +01:00
Rasesh Mody
39150b6e73 net/bnx2x: bump version to 1.0.7.1
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-11-20 10:09:37 +01:00
Jeff Guo
c420697314 doc: add known issue for i40e PHY link up
Some kernel drivers are not able to handle the link status correctly
after DPDK application sets the PHY to link down.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
2018-11-19 13:23:35 +01:00
Akhil Goyal
f63ffee26f security: restore experimental tag for unimplemented APIs
Following APIs are not currently implemented by any of the
drivers, so marking them as rte_experimental again.

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

rte_security_get_userdata;
rte_security_session_stats_get;
rte_security_session_update;

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
2018-11-23 02:03:33 +01:00
Joyce Kong
9b47ed438a config: enable more than 128 cores for arm64
When running dpdk applications on cores whose ids are bigger
than original max_core setting, eal error as below:
EAL: Detected 104 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: invalid core list
-l CORELIST core indexes between 0 and 128

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

Fixes: b3ce00e5 ("mk: introduce ARMv8 architecture")
Cc: stable@dpdk.org

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-11-23 02:03:33 +01:00
Nikhil Rao
e846cfdec3 eventdev: fix unlock in Rx adapter
In the eth Rx adapter SW service function,
move the return to after the spinlock unlock.

Coverity issue: 302857
Fixes: a66a837446 ("eventdev: fix Rx SW adapter stop")
Cc: stable@dpdk.org

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-11-23 02:03:33 +01:00
Thomas Monjalon
ff0633d2b1 app/eventdev: fix possible uninitialized variable
When compiling with -O1, this error can appear:
	app/test-eventdev/test_pipeline_common.c:332:6: error:
	‘ret’ may be used uninitialized in this function

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

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

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-23 01:43:47 +01:00
Thomas Monjalon
6b8d9a4b4c eventdev: fix possible uninitialized variable
When compiling with -O1, this error can appear:
	lib/librte_eventdev/rte_event_eth_tx_adapter.c:705:6: error:
	‘ret’ may be used uninitialized in this function

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

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

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-23 01:43:42 +01:00