dpdk.git
5 years agocryptodev: add cipher field to RSA op
Arek Kusztal [Thu, 18 Jul 2019 16:09:38 +0000 (18:09 +0200)]
cryptodev: add cipher field to RSA op

Asymmetric nature of RSA algorithm suggest to use
additional field for output. In place operations
still can be done by setting cipher and message pointers
with the same memory address.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agocryptodev: change RSA API comments about primes
Arek Kusztal [Thu, 18 Jul 2019 16:09:37 +0000 (18:09 +0200)]
cryptodev: change RSA API comments about primes

RSA modulus cannot be prime as its security depends on the problem
of integer factorization.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agodoc: update compressdev guide
Adam Dybkowski [Mon, 15 Jul 2019 12:19:50 +0000 (14:19 +0200)]
doc: update compressdev guide

This patch updates the constant names and function names used
in code snippets in the Compression Device Library documentation.

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agotest/crypto: add RSA key type CRT
Ayuj Verma [Thu, 11 Jul 2019 13:22:46 +0000 (18:52 +0530)]
test/crypto: add RSA key type CRT

Added RSA sign/verify and enc/dec tests for RSA
key type CRT(quintuple) and associated test vectors.

Signed-off-by: Kanaka Durga Kotamarthy <kkotamarthy@marvell.com>
Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Shally Verma <shallyv@marvell.com>
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agotest/crypto: move RSA enqueue/dequeue into functions
Ayuj Verma [Thu, 11 Jul 2019 13:22:45 +0000 (18:52 +0530)]
test/crypto: move RSA enqueue/dequeue into functions

Move common code of enqueue/dequeue into separate functions.

Signed-off-by: Kanaka Durga Kotamarthy <kkotamarthy@marvell.com>
Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Shally Verma <shallyv@marvell.com>
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agotest/crypto: add capability check for ZUC cases
Damian Nowak [Mon, 15 Jul 2019 12:14:51 +0000 (14:14 +0200)]
test/crypto: add capability check for ZUC cases

This patch adds checking if device support ZUC
algorithms before running ZUC test cases.
It also removes unnecessary checks of digest
appended space and fixes some comments wording.

Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
5 years agocompress/qat: fix overflow status return
Tomasz Jozwiak [Fri, 5 Jul 2019 17:15:51 +0000 (18:15 +0100)]
compress/qat: fix overflow status return

This patch fixes fail status returned from compression PMD
in case destination buffer size is not enough to store
all data.

Fixes: 3dc9ef2d23fe ("compress/qat: fix returned status on overflow")
Cc: stable@dpdk.org
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
5 years agotest/compress: clarify out-of-space error messages
Fiona Trahe [Fri, 5 Jul 2019 17:19:10 +0000 (18:19 +0100)]
test/compress: clarify out-of-space error messages

Use ERR rather than INFO to warn that it's a negative test else
the errors are seen but the warning to expect them isn't.
Also add comment to make it easier to follow code.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
5 years agocrypto/qat: fix crashes
Fiona Trahe [Wed, 10 Jul 2019 09:53:24 +0000 (10:53 +0100)]
crypto/qat: fix crashes

Resolution for seg-faults observed:
1) in buffer re-alignment in-place sgl case
2) case where data end is exactly at end of an sgl segment.
Also renamed variable and increased comments for clearer code.

Fixes: 40002f6c2a24 ("crypto/qat: extend support for digest-encrypted auth-cipher")

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Damian Nowak <damianx.nowak@intel.com>
5 years agoexamples/ipsec-secgw: fix --mtu option parsing
Tao Zhu [Thu, 18 Jul 2019 14:21:43 +0000 (14:21 +0000)]
examples/ipsec-secgw: fix --mtu option parsing

This patch add parameter --mtu parse key and enumeration value.

Fixes: b01d1cd213d2 ("examples/ipsec-secgw: support fragmentation and reassembly")

Signed-off-by: Tao Zhu <taox.zhu@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agocryptodev: make xform key pointer constant
Fan Zhang [Mon, 24 Jun 2019 13:35:22 +0000 (14:35 +0100)]
cryptodev: make xform key pointer constant

This patch changes the key pointer data types in cipher, auth,
and aead xforms from "uint8_t *" to "const uint8_t *" for a
more intuitive and safe sessionn creation.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Liron Himi <lironh@marvell.com>
5 years agoapp/compress-perf: remove magic numbers
Artur Trybula [Mon, 8 Jul 2019 18:16:19 +0000 (20:16 +0200)]
app/compress-perf: remove magic numbers

This patch fixes some minor problems like 'magic numbers',
spelling mistakes, enumes naming.

Signed-off-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agoapp/compress-perf: support force process termination
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:18 +0000 (20:16 +0200)]
app/compress-perf: support force process termination

This patch adds a possibility to force controlled process termination
as a result of two signals: SIGTERM and SIGINT

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agodoc: update compress-perf tool guide
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:17 +0000 (20:16 +0200)]
doc: update compress-perf tool guide

This patch updates dpdk-test-compress-perf documentation.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agoapp/compress-perf: add benchmark test case
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:16 +0000 (20:16 +0200)]
app/compress-perf: add benchmark test case

This patch adds a benchmark part to
compression-perf-tool as a separate test case, which can be
executed multi-threaded.
Also updates release notes.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agoapp/compress-perf: add verification test case
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:15 +0000 (20:16 +0200)]
app/compress-perf: add verification test case

This patch adds a verification part to
compression-perf-tool as a separate test case, which can be
executed multi-threaded.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agoapp/compress-perf: add --ptest option
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:14 +0000 (20:16 +0200)]
app/compress-perf: add --ptest option

This patch adds --ptest option to make possible to choose
test case from command line.

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agoapp/compress-perf: add weak functions for multicore test
Tomasz Jozwiak [Mon, 8 Jul 2019 18:16:13 +0000 (20:16 +0200)]
app/compress-perf: add weak functions for multicore test

This patch adds template functions for multi-cores performance
version of compress-perf-tool

Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
Acked-by: Shally Verma <shallyv@marvell.com>
5 years agolpm: use atomic store to avoid partial update
Ruifeng Wang [Thu, 18 Jul 2019 06:22:30 +0000 (14:22 +0800)]
lpm: use atomic store to avoid partial update

Compiler could generate non-atomic stores for whole table entry
updating. This may cause incorrect nexthop to be returned, if
the byte with valid flag is updated prior to the byte with nexthop
is updated.
Besides, field by field updating of table entries follow
read-modify-write sequences. The operations are not atomic,
nor efficient. And could cause entries out of synchronization.

Changed to use atomic store to update whole table entry.

Suggested-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Suggested-by: Gavin Hu <gavin.hu@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
5 years agolpm: avoid race conditions for v20
Ruifeng Wang [Thu, 18 Jul 2019 06:22:29 +0000 (14:22 +0800)]
lpm: avoid race conditions for v20

When a tbl8 group is getting attached to a tbl24 entry, lookup
might fail even though the entry is configured in the table.

For ex: consider a LPM table configured with 10.10.10.1/24.
When a new entry 10.10.10.32/28 is being added, a new tbl8
group is allocated and tbl24 entry is changed to point to
the tbl8 group. If the tbl24 entry is written without the tbl8
group entries updated, a lookup on 10.10.10.9 will return
failure.

Correct memory orderings are required to ensure that the
store to tbl24 does not happen before the stores to tbl8 group
entries complete.

Besides, explicit structure alignment is used to address atomic
operation building issue with older version clang.

Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
5 years agolpm: avoid race conditions for v1604
Ruifeng Wang [Thu, 18 Jul 2019 06:22:28 +0000 (14:22 +0800)]
lpm: avoid race conditions for v1604

When a tbl8 group is getting attached to a tbl24 entry, lookup
might fail even though the entry is configured in the table.

For ex: consider a LPM table configured with 10.10.10.1/24.
When a new entry 10.10.10.32/28 is being added, a new tbl8
group is allocated and tbl24 entry is changed to point to
the tbl8 group. If the tbl24 entry is written without the tbl8
group entries updated, a lookup on 10.10.10.9 will return
failure.

Correct memory orderings are required to ensure that the
store to tbl24 does not happen before the stores to tbl8 group
entries complete.

The ordering patches in general have no notable impact on LPM
performance test on both Arm A72 platform and x86 E5 platform.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
5 years agolpm: uninline some functions
Ruifeng Wang [Thu, 18 Jul 2019 06:22:27 +0000 (14:22 +0800)]
lpm: uninline some functions

Tests showed that the function inlining caused performance drop
on some x86 platforms with the memory ordering patches applied.
By force no-inline functions, the performance was better than
before on x86 and no impact to arm64 platforms.

Besides inlines of other functions are removed to let compiler
to decide whether to inline.

Suggested-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
5 years agocfgfile: use calloc
Stephen Hemminger [Thu, 18 Jul 2019 17:18:12 +0000 (10:18 -0700)]
cfgfile: use calloc

Better to use calloc when allocating arrays.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
5 years agocfgfile: use log for error messages
Stephen Hemminger [Thu, 18 Jul 2019 17:18:11 +0000 (10:18 -0700)]
cfgfile: use log for error messages

In general, DPDK libraries to not print error messages to
stdout because that is often redirected to /dev/null for daemons.
This patch changes cfgfile library to use RTE_LOG with its
own type.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
5 years agocfgfile: remove unnecessary initialization
Stephen Hemminger [Thu, 18 Jul 2019 17:18:10 +0000 (10:18 -0700)]
cfgfile: remove unnecessary initialization

No need to initialize variable if it is immediately overwritten.
It is better style not do unnecessary initialization with modern
tools since it lets compiler and other static checkers detect
uninitialized data.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
5 years agomaintainers: add Andrew for next-net tree
Ferruh Yigit [Wed, 17 Jul 2019 17:50:20 +0000 (18:50 +0100)]
maintainers: add Andrew for next-net tree

Adding Andrew as co-maintainer to next-net sub-tree.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
5 years agomempool/octeontx2: fix possible arm64 ABI break
Pavan Nikhilesh [Thu, 18 Jul 2019 06:51:11 +0000 (12:21 +0530)]
mempool/octeontx2: fix possible arm64 ABI break

Since direct register access is used in npa_lf_aura_op_alloc_bulk()
use __rte_noinline instead of __rte_always_inline to preserve ABI.
Based on the compiler npa_lf_aura_op_alloc_bulk might be inlined
differently which may lead to undefined behaviour due to handcoded
asm.

Fixes: 29893042c29d ("mempool/octeontx2: fix clang build for arm64")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: add LBK to Marvell OCTEON TX2 guide
Jerin Jacob [Wed, 17 Jul 2019 15:55:19 +0000 (21:25 +0530)]
doc: add LBK to Marvell OCTEON TX2 guide

Add LBK HW block abstraction details and the application
usage models.

This patch also updates missing DPI HW block to DPDK
subsystem mapping as well.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: fix PDF build of bbdev prog guide
Thomas Monjalon [Thu, 18 Jul 2019 06:24:39 +0000 (23:24 -0700)]
doc: fix PDF build of bbdev prog guide

Some machine (like on dpdk.org) may fail to build the prog guide PDF
because of a table characher being "+" instead of "|".

Some figure references are also fixed with automatic numbering.

Fixes: 3f3f608142cf ("doc: update bbdev guide for 5GNR operations")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
5 years agokni: fix segmented mbuf data overflow
Ferruh Yigit [Thu, 11 Jul 2019 12:35:07 +0000 (13:35 +0100)]
kni: fix segmented mbuf data overflow

'kni_net_rx_lo_fifo()' can get segmented buffers, using 'pkt_len' for
that case will be wrong and some values can cause buffer overflow
in destination mbuf data.

Fixes: d89a58dfe90b ("kni: support chained mbufs")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
5 years agoexamples/performance-thread: init timer subsystem
Erik Gabriel Carrillo [Mon, 15 Jul 2019 15:39:32 +0000 (10:39 -0500)]
examples/performance-thread: init timer subsystem

The timer subsystem should be initialized in the l3fwd-thread app before
the L-thread subsystem can be used.

Fixes: d48415e1fee3 ("examples/performance-thread: add l3fwd-thread app")
Cc: stable@dpdk.org
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
5 years agotimer: fix null access if not initialized
Erik Gabriel Carrillo [Mon, 15 Jul 2019 15:39:31 +0000 (10:39 -0500)]
timer: fix null access if not initialized

If the timer subsystem is not initialized before rte_timer_manage (for
example) is invoked, a pointer to a shared hugepage memory region will
still be null and dereferenced when it is checked for validity; handle
this case.

Fixes: c0749f7096c7 ("timer: allow management in shared memory")
Cc: stable@dpdk.org
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
5 years agoexamples/tep_term: remove duplicate definitions
Haiyue Wang [Tue, 16 Jul 2019 17:04:07 +0000 (01:04 +0800)]
examples/tep_term: remove duplicate definitions

The state of virtio device has been defined in both header file and
source file, keep the definition in header file for public use.

Fixes: a50245ede72a ("examples/tep_term: initialize VXLAN sample")
Cc: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
5 years agoexamples/ip_frag: fix unknown ethernet type
Konstantin Ananyev [Thu, 18 Jul 2019 10:11:13 +0000 (11:11 +0100)]
examples/ip_frag: fix unknown ethernet type

Right now app blindly set IPv4 ether type for all non IPv6 packets.
Instead we can save and later restore original type value.

Fixes: 74de12b7b63a ("examples/ip_fragmentation: overhaul")
Cc: stable@dpdk.org
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agoexamples/ip_frag: fix Tx un-fragmented packets
Konstantin Ananyev [Thu, 18 Jul 2019 10:11:12 +0000 (11:11 +0100)]
examples/ip_frag: fix Tx un-fragmented packets

With latest changes l3fwd_simple_forward() blindly set
(PKT_TX_IPV4 | PKT_TX_IP_CKSUM) ol_flags for all IPv4 packets.
Though for un-fragmented packets we also do have to set l3_len
to make HW IP cksum offload to work properly.
That causes HW/PMD to drop or generate invalid packets.
Though for un-fragmented packets we don't need to regenerate
IPv4 cksum, as L3 header is not modified.
Fix by setting ol_flags only when required.

Fixes: 16863bbb4a41 ("examples/ip_fragmentation: enable IP checksum offload")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
5 years agoexamples/ip_frag: fix use of ethdev internal device array
Marcin Zapolski [Wed, 17 Jul 2019 07:58:05 +0000 (09:58 +0200)]
examples/ip_frag: fix use of ethdev internal device array

Modify ip_fragmentation example app to use rte_eth_info_get instead
of global rte_eth_devices structure.
Apps should not be using internal DPDK data structures directly.

Fixes: 9758b956dcf4 ("examples/ip_fragmentation: fix Tx queues init")
Cc: stable@dpdk.org
Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agoexamples/ipsec-secgw: fix use of ethdev internal struct
Marcin Zapolski [Wed, 17 Jul 2019 07:58:06 +0000 (09:58 +0200)]
examples/ipsec-secgw: fix use of ethdev internal struct

Modify ipsec-secgw example app to use rte_eth_dev_info_get instead of
rte_eth_dev.
Apps should not be using internal DPDK data structures directly.

Fixes: a4677f78368b ("examples/ipsec-secgw: add target queues in flow actions")
Cc: stable@dpdk.org
Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
5 years agoexamples: fix use of ethdev internal device array
Marcin Zapolski [Wed, 17 Jul 2019 07:58:04 +0000 (09:58 +0200)]
examples: fix use of ethdev internal device array

Modify l3fwd and related example apps to use locally defined port_conf
instead of global rte_eth_devices which is not a part of public API.
Apps should not be using internal DPDK data structures directly.

Fixes: 1ef9600b2d20 ("examples/l3fwd: convert to ethdev offloads API")
Fixes: ba8c103d2455 ("examples/l3fwd-acl: convert to new ethdev offloads API")
Fixes: 40df1d7a695d ("examples/l3fwd-power: convert to new ethdev offloads API")
Fixes: 43fc038262b8 ("examples/l3fwd-vf: convert to new ethdev offloads API")
Fixes: 373149c631fe ("examples/performance-thread: convert to new offloads API")
Cc: stable@dpdk.org
Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com>
5 years agoexamples/power: fix policy handling for FIFO
David Hunt [Tue, 16 Jul 2019 11:11:12 +0000 (12:11 +0100)]
examples/power: fix policy handling for FIFO

While the core frequency scale-up and scale down all works fine with the
fifo-per-core functionality, there was a gap for policy handling. When
creating or destroying a policy, the core associated with the FIFO
needs to be automatically added to the core list, so the policy is
associated with the correct core.

Fixes: 221e7026d521 ("examples/power: add FIFO per core for JSON interface")

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoexamples/l3fwd-power: fix busyness number
David Hunt [Mon, 15 Jul 2019 14:07:04 +0000 (15:07 +0100)]
examples/l3fwd-power: fix busyness number

Current implementation only outputs 3 numbers for busyness, 0, 50 and 100.
Fix this so that the 50% is replaced by a curve, more meaningful.
This can be replaced in each use case by a suitable calculation for
that use case.

Fixes: 609e79841fcf ("examples/l3fwd-power: add telemetry mode")

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agodistributor: fix check of workers number
Harman Kalra [Fri, 5 Jul 2019 10:05:12 +0000 (10:05 +0000)]
distributor: fix check of workers number

No of workers should never exceed RTE_MAX_LCORE.
RTE_DIST_ALG_SINGLE also require no of workers check.

Fixes: 775003ad2f96 ("distributor: add new burst-capable library")
Cc: stable@dpdk.org
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: David Hunt <david.hunt@intel.com>
5 years agotest/distributor: fix flush with worker shutdown
Harman Kalra [Fri, 5 Jul 2019 10:05:04 +0000 (10:05 +0000)]
test/distributor: fix flush with worker shutdown

On restarting worker 0 after shutdown, packets handled by
worker 0 must be incremented only when a packet is received by
it.

Fixes: c3eabff124e6 ("distributor: add unit tests")
Cc: stable@dpdk.org
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: David Hunt <david.hunt@intel.com>
5 years agoeal: update comment about --no-huge option
Thomas Monjalon [Wed, 17 Jul 2019 08:56:24 +0000 (10:56 +0200)]
eal: update comment about --no-huge option

The old comment, on top of the function rte_eal_has_hugepages(),
is really outdated and not generic enough.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agohash: flush rings instead of dequeuing one by one
Gavin Hu [Tue, 16 Jul 2019 19:23:56 +0000 (03:23 +0800)]
hash: flush rings instead of dequeuing one by one

Within rte_hash_reset, calling a while loop to dequeue one by
one from the ring, while not using them at all, is wasting cycles,
The patch just flush the ring by resetting the indices can save CPU
cycles.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
5 years agoring: add reset function for flushing
Gavin Hu [Tue, 16 Jul 2019 19:23:55 +0000 (03:23 +0800)]
ring: add reset function for flushing

Currently, the flush is done by dequeuing the ring in a while loop. It is
much simpler to flush the queue by resetting the head and tail indices.

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
5 years agobus/fslmc: fix error handling in device iterator
Hemant Agrawal [Wed, 17 Jul 2019 15:55:18 +0000 (21:25 +0530)]
bus/fslmc: fix error handling in device iterator

When initializing EAL with "-w 0:0.0", this error is blocking:
munmap_chunk(): invalid pointer
ElectricFence reports this root cause:
free(7fffeec25a11): address not from malloc()

Fixes: e67a61614d0b ("bus/fslmc: support device iteration")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Thomas Monjalon <thomas@monjalon.net>
5 years agoexamples/power: fix strcpy buffer overrun
David Hunt [Tue, 16 Jul 2019 11:19:00 +0000 (12:19 +0100)]
examples/power: fix strcpy buffer overrun

replace strcpy with strlcpy to prevent buffer overrun
With fix, attempting to use a VERY lonng vm name results in a nicely
truncated 32 character name rather than a segfault:
Setting VM Name to [sdfdsfsfsdffdsdsasdsadasdakjshd]

Using strlcpy rather than rte_strlcpy, as the rte_ version is only a
fallback.

As well as the fix in main.c, this patch also changes an occurrence of
rte_strlcpy in channel_manager.c and channel_monitor.c to strlcpy.

Fixes: 59287933a0bb ("examples/vm_power: add options to guest app")
Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoip_frag: remove remaining IP checkum offload flag
Sunil Kumar Kori [Tue, 16 Jul 2019 06:23:28 +0000 (11:53 +0530)]
ip_frag: remove remaining IP checkum offload flag

Currently PKT_TX_IP_CKSUM is being set into mbuf->ol_flags during
fragmentation operation implicitly by the library. Because of this,
application is forced to use checksum offload whether it is supported
by platform or not.

Also documentation does not provide any expected value of ol_flags in
returned fragmented mbufs so application will never come to know that which
offloads are enabled. So transmission may be failed for the platforms which
does not support checksum offload.

So removing mentioned flag from the library.

Mentioned change is part of http://patches.dpdk.org/patch/53475.
Changes for reassembly operation is already accepted. This patch set
implements the similar change for fragmentation operation.

Fixes: e29fc44370c2 ("ip_frag: remove IP checkum offload flag")

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
5 years agotest: add procfs error message for multi-process launch
Anatoly Burakov [Fri, 12 Jul 2019 16:02:05 +0000 (17:02 +0100)]
test: add procfs error message for multi-process launch

Currently, if there is no procfs mounted, test application will
fail to run any multiprocess-related autotests (EAL flags etc.)
without a clear explanation as to why this happens.

Add a check specifically for that condition, as well as add a
general stringified error message to rte_panic.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agovfio: fix expanding DMA area in ppc64le
Takeshi Yoshimura [Sat, 13 Jul 2019 01:15:32 +0000 (18:15 -0700)]
vfio: fix expanding DMA area in ppc64le

In ppc64le, expanding DMA areas always fail because we cannot remove
a DMA window. As a result, we cannot allocate more than one memseg in
ppc64le. This is because vfio_spapr_dma_mem_map() doesn't unmap all
the mapped DMA before removing the window. This patch fixes this
incorrect behavior.

I also fixed the order of ioctl for unregister and unmap. The ioctl
for unregister sometimes report device busy errors due to the
existence of mapped area.

Signed-off-by: Takeshi Yoshimura <tyos@jp.ibm.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
5 years agotest/metrics: fix second run
Harman Kalra [Thu, 11 Jul 2019 09:26:12 +0000 (09:26 +0000)]
test/metrics: fix second run

Issue is observed while running 'metrics_autotest' continuously
without quiting. During first execution all test cases pass but
second run onwards first test case fails as library is already
initialized.

To resolve, introduced a new API to deinitialise the library
after all test cases are executed.

Fixes: cd3804242901 ("test/metrics: add unit tests for metrics library")

Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Remy Horton <remy.horton@intel.com>
Tested-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
5 years agometrics: add function to deinitialise library
Harman Kalra [Thu, 11 Jul 2019 09:26:05 +0000 (09:26 +0000)]
metrics: add function to deinitialise library

Once the library usage is over, it must be deinitialized which
will free the shared memory reserved during initialization.

Observed an issue while running 'metrics_autotest' continuously
without quiting. For the first run 'metrics_autotest' passes
all test cases but second run onwards first test case fails
because metrics library is already initialized during first run.

Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Remy Horton <remy.horton@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
5 years agoconfig: fix meson build on ThunderX2
Gavin Hu [Fri, 12 Jul 2019 09:58:34 +0000 (17:58 +0800)]
config: fix meson build on ThunderX2

Since gcc-8.3(I tried 8.3 and 9.1), the meson build failed on ThunderX2.
It got the following compiling errors:
/usr/lib/gcc/aarch64-linux-gnu/9/include/arm_neon.h:26493:1: error:
inlining failed in call to always_inline â€˜vmull_p64’:
target specific option mismatch 26493 | vmull_p64 (poly64_t a, poly64_t b)

Fixes: 7286c9d7234f ("config: add thunderx2 machine")
Cc: stable@dpdk.org
Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Jingzhao Ni <jingzhao.ni@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agocommon/octeontx2: remove escape sequences in log
Stephen Hemminger [Thu, 11 Jul 2019 03:11:54 +0000 (20:11 -0700)]
common/octeontx2: remove escape sequences in log

Putting color escape sequences in the log look pretty for the
developer but fails in real world DPDK usage. A real application
will put DPDK log to syslog, and syslog does not handle escape
sequences.

Fixes: dd543124cd93 ("common/octeontx2: add runtime log infra")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agomaintainers: claim maintainership of NXP net PMDs
Sachin Saxena [Mon, 15 Jul 2019 11:38:30 +0000 (17:08 +0530)]
maintainers: claim maintainership of NXP net PMDs

Shreyansh is no longer with NXP.
Pankaj is no longer working on DPDK.

Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agomaintainers: claim maintainership of DPAA eventdev
Nipun Gupta [Mon, 15 Jul 2019 11:38:29 +0000 (17:08 +0530)]
maintainers: claim maintainership of DPAA eventdev

Sunil Kori is no longer with NXP

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
5 years agomempool/dpaa2: map external memory with VFIO
Sachin Saxena [Mon, 15 Jul 2019 08:44:42 +0000 (14:14 +0530)]
mempool/dpaa2: map external memory with VFIO

This patch help in adding a routine to help memory map
the user provided memory via VFIO.

Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agobus/fslmc: use CINH read on LS1088 platform
Nipun Gupta [Mon, 15 Jul 2019 08:44:41 +0000 (14:14 +0530)]
bus/fslmc: use CINH read on LS1088 platform

LS1088 platform CENA operation are causing issues
at high load. CINH (cache inhibited) mode is working
fine with minor performance impact.

This patch enables CINH mode selectively on LS1088 platform

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
5 years agobus/fslmc: detect IOMMU mode
Shreyansh Jain [Mon, 15 Jul 2019 08:44:40 +0000 (14:14 +0530)]
bus/fslmc: detect IOMMU mode

This patch adds following:
1. 'g_container' variable name is not right way to represent the
FSLMC container. Renaming it to fslmc_container.
2. dynamic selection of IOMMU mode based on run environment

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
5 years agobus/fslmc: enhance error handling for dev parsing
Shreyansh Jain [Mon, 15 Jul 2019 08:44:39 +0000 (14:14 +0530)]
bus/fslmc: enhance error handling for dev parsing

In case an incorrect device is found, it was quiting further search
rather than skipping it.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
5 years agobus/fslmc: support device iteration
Shreyansh Jain [Mon, 15 Jul 2019 08:44:38 +0000 (14:14 +0530)]
bus/fslmc: support device iteration

Recent (18.11+), devargs structure was changed and so was DPDK port
usage in applications like OVS. Applications are now allowed to
plug/unplug ports (eth) using APIs (hotplug) based on device
arguments.

This patch enables the plug/unplug function (which are dummy for
FSLMC) and the iterator function for rte_dev_probe() and similar
API support.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
5 years agokni: fix kernel crash with multi-segments
Yangchao Zhou [Tue, 25 Jun 2019 15:04:14 +0000 (23:04 +0800)]
kni: fix kernel crash with multi-segments

va2pa depends on the physical address and virtual address offset of
current mbuf. It may get the wrong physical address of next mbuf which
allocated in another hugepage segment.

In rte_mempool_populate_default(), trying to allocate whole block of
contiguous memory could be failed. Then, it would reserve memory in
several memzones that have different physical address and virtual address
offsets. The rte_mempool_populate_default() is used by
rte_pktmbuf_pool_create().

Fixes: 8451269e6d7b ("kni: remove continuous memory restriction")
Cc: stable@dpdk.org
Signed-off-by: Yangchao Zhou <zhouyates@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agodoc: update KNI guides
Stephen Hemminger [Mon, 24 Jun 2019 16:47:14 +0000 (09:47 -0700)]
doc: update KNI guides

Update KNI documentation to reflect current ethtool support.

Replace references to out dated tools (ifconfig) with
modern iproute2.  Tshark is a better replacement for tcpdump.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: support minimal ethtool
Stephen Hemminger [Mon, 24 Jun 2019 16:47:13 +0000 (09:47 -0700)]
kni: support minimal ethtool

Some applications use ethtool so add the minimum ethtool ops.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: fix style
Stephen Hemminger [Mon, 24 Jun 2019 16:47:12 +0000 (09:47 -0700)]
kni: fix style

rte_kni does not follow standard style rules.
Noticed some extra \ line continuation etc.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: fix copy_from_user failure handling
Stephen Hemminger [Mon, 24 Jun 2019 16:47:11 +0000 (09:47 -0700)]
kni: fix copy_from_user failure handling

The correct thing to return if user gives a bad data
is to return -EFAULT. Logging is also discouraged because
it could be used as a DoS attack.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: replace void pointer with FIFO types
Stephen Hemminger [Mon, 24 Jun 2019 16:47:10 +0000 (09:47 -0700)]
kni: replace void pointer with FIFO types

Using void * instead of proper type is unsafe practice.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: drop unused fields
Stephen Hemminger [Mon, 24 Jun 2019 16:47:09 +0000 (09:47 -0700)]
kni: drop unused fields

Several fields were either totally unused or set and never used.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: remove stats from private struct
Stephen Hemminger [Mon, 24 Jun 2019 16:47:08 +0000 (09:47 -0700)]
kni: remove stats from private struct

Since kernel 2.6.28 the network subsystem has provided
dev->stats for devices to use statistics handling and is the
default if no ndo_get_stats is provided.

This allow allows for 64 bit (rather than just 32 bit)
statistics with KNI.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: use netdev_alloc_skb
Stephen Hemminger [Mon, 24 Jun 2019 16:47:07 +0000 (09:47 -0700)]
kni: use netdev_alloc_skb

netdev_alloc_skb is optimized to any alignment or setup
of skb->dev that is required. The kernel has chosen to not pad
packets on x86 (for many years), because it is faster.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agokni: remove stubs for Rx mode or ioctl
Stephen Hemminger [Mon, 24 Jun 2019 16:47:06 +0000 (09:47 -0700)]
kni: remove stubs for Rx mode or ioctl

The netdev subsystem already handles case where
network sevice does not support ioctl.

If device has no rx_mode hook it is not called.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agocommon/cpt: remove redundant code in datapath
Anoob Joseph [Sat, 6 Jul 2019 13:23:40 +0000 (18:53 +0530)]
common/cpt: remove redundant code in datapath

Removing redundant checks and unused local variables from datapath.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
5 years agocommon/cpt: remove redundant bit swaps
Anoob Joseph [Sat, 6 Jul 2019 13:23:39 +0000 (18:53 +0530)]
common/cpt: remove redundant bit swaps

The bit swaps can be removed by re-arranging the structure.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
5 years agocommon/octeontx2: support CNF95xx SoC
Nithin Dabilpuram [Fri, 12 Jul 2019 09:25:54 +0000 (14:55 +0530)]
common/octeontx2: support CNF95xx SoC

Update platform support of CNF95xx in documentation and
also, update the HW cap based on PCI subsystem id and revision id.
This patch also changes HW capability handling to be based on
PCI Revision ID. PCI Revision ID contains a unique identifier
to identify chip, major and minor revisions.

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agoeal/freebsd: fix config creation
Anatoly Burakov [Fri, 12 Jul 2019 14:48:08 +0000 (15:48 +0100)]
eal/freebsd: fix config creation

The config create function did not store the mem config address in
the shared memconfig structure, so the secondary processes couldn't
map it at the required address.

Fixes: b149a7064261 ("eal/freebsd: add config reattach in secondary process")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agoexamples/power: fix FreeBSD meson lib dependency
David Hunt [Fri, 12 Jul 2019 09:06:51 +0000 (10:06 +0100)]
examples/power: fix FreeBSD meson lib dependency

Samples apps that depend on the power library should not build if
the power library is not present. So now the following apps will
check to see if it's built, else skip building.
* l3fwd-pwer
* vm_power_manager
* guest_cli

Fixes: e0130788576f ("examples/power: support meson/ninja build")
Fixes: 89f0711f9ddf ("examples: build some samples with meson")
Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
5 years agovfio: fix build on Linux < 4.2
Takeshi Yoshimura [Thu, 11 Jul 2019 02:22:35 +0000 (19:22 -0700)]
vfio: fix build on Linux < 4.2

The commit db90b4969e2e ("vfio: retry creating sPAPR DMA window")
introduced a build breakage on old Linux. Linux <4.2 does not define ddw in
struct vfio_iommu_spapr_tce_info. Without ddw, we cannot change window size
and so should give up the creation. I just exculuded the retrying code if
ddw is not supported.

Fixes: db90b4969e2e ("vfio: retry creating sPAPR DMA window")

Signed-off-by: Takeshi Yoshimura <tyos@jp.ibm.com>
Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoapp/pdump: exit with primary process
Suanming Mou [Wed, 15 May 2019 05:10:39 +0000 (05:10 +0000)]
app/pdump: exit with primary process

The pdump tool works as the secondary process. When the primary process
exits and the residual secondary process keeps running, it will make the
primary process can't start up again. Since the ex-fbarry files are still
attached by the secondary process pdump, the 'new' primary process can't
get these files locked.

The patch is to set up an alarm which runs every 0.5s periodically
to monitor the primary process in the pdump. Once the primary exits,
so will the pdump.

Signed-off-by: Suanming Mou <mousuanming@huawei.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
5 years agoapp/pdump: enforce to use SW mempool
Harman Kalra [Wed, 10 Jul 2019 09:22:25 +0000 (09:22 +0000)]
app/pdump: enforce to use SW mempool

A secondary process cannot access HW mempool already
initiazed by primary, and neither it can setup its own
HW mempool due to its own restrictions.

Since dpdk-pdump creates mempool for managing its local
mbufs, SW mempool is capable enough to solve this purpose.

Signed-off-by: Harman Kalra <hkalra@marvell.com>
5 years agoexamples/l3fwd-power: fix metrics divisions
David Hunt [Wed, 10 Jul 2019 15:26:20 +0000 (16:26 +0100)]
examples/l3fwd-power: fix metrics divisions

6 issues caught by Coverity 343465
* Possible divide by zero on 3 lines
* Convert to float then back to int, losing precision on 3 lines

This patch modifies the code so that it only assigns calculated
values if the divisor is > 0, otherwise sets metrics to zero.
Also removes the un-needed round() function.

Coverity issue: 343465
Fixes: 609e79841fcf ("examples/l3fwd-power: add telemetry mode")

Signed-off-by: David Hunt <david.hunt@intel.com>
5 years agoexamples/power: add FIFO per core for JSON interface
Marcin Hajkowski [Tue, 9 Jul 2019 15:21:30 +0000 (16:21 +0100)]
examples/power: add FIFO per core for JSON interface

This patch implements a separate FIFO for each cpu core to improve the
previous functionality where anyone with access to the FIFO could affect
any core on the system. By using appropriate permissions, FIFO interfaces
can be configured to only affect the particular cores.

Because each FIFO is per core, the following fields have been removed
from the command JSON format: core_list, resource_id, name.

Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
Signed-off-by: Lukasz Gosiewski <lukaszx.gosiewski@intel.com>
Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agoflow_classify: fix out-of-bounds access
Bernard Iremonger [Tue, 9 Jul 2019 11:09:56 +0000 (12:09 +0100)]
flow_classify: fix out-of-bounds access

This patch fixes the out-of-bounds coverity issue by removing the
offending line of code at line 107 in rte_flow_classify_parse.c
which is never executed.

Coverity issue: 343454
Fixes: be41ac2a330f ("flow_classify: introduce flow classify library")
Cc: stable@dpdk.org
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
5 years agofbarray: fix destruction
Anatoly Burakov [Tue, 9 Jul 2019 14:00:27 +0000 (15:00 +0100)]
fbarray: fix destruction

Currently, when fbarray is destroyed, the fbarray structure is not
zeroed out, which leads to stale data being there and confusing
secondary process init in legacy mem mode. Fix it by always
memsetting the fbarray to zero when destroying it.

Fixes: 5b61c62cfd76 ("fbarray: add internal tailq for mapped areas")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
5 years agovfio: fix interrupts race condition
David Marchand [Wed, 10 Jul 2019 12:33:40 +0000 (14:33 +0200)]
vfio: fix interrupts race condition

Populating the eventfd in rte_intr_enable in each request to vfio
triggers a reconfiguration of the interrupt handler on the kernel side.
The problem is that rte_intr_enable is often used to re-enable masked
interrupts from drivers interrupt handlers.

This reconfiguration leaves a window during which a device could send
an interrupt and then the kernel logs this (unsolicited from the kernel
point of view) interrupt:
[158764.159833] do_IRQ: 9.34 No irq handler for vector

VFIO api makes it possible to set the fd at setup time.
Make use of this and then we only need to ask for masking/unmasking
legacy interrupts and we have nothing to do for MSI/MSIX.

"rxtx" interrupts are left untouched but are most likely subject to the
same issue.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1654824
Fixes: 5c782b3928b8 ("vfio: interrupts")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Shahed Shaikh <shshaikh@marvell.com>
5 years agodoc: fix PDF build in octeontx2 guide
Thomas Monjalon [Wed, 10 Jul 2019 10:01:47 +0000 (12:01 +0200)]
doc: fix PDF build in octeontx2 guide

The unicode characters to draw the debugfs tree
may fail with some Latex distributions.
These characters are replaced with some ASCII equivalents.

Fixes: 14ad4f018453 ("doc: add Marvell OCTEON TX2 platform guide")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: add OCTEON TX2 in release notes
Jerin Jacob [Tue, 9 Jul 2019 13:35:25 +0000 (19:05 +0530)]
doc: add OCTEON TX2 in release notes

Update release notes for various OCTEON TX2 drivers supported for 19.08.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
5 years agodoc: fix PDF build
Thomas Monjalon [Tue, 9 Jul 2019 13:11:17 +0000 (15:11 +0200)]
doc: fix PDF build

The command "make doc-guides-pdf" is failing because
there are more than 1500 lines in the file MAINTAINERS
which is included in the contributing guide.

We are facing the issue mentioned in this comment:
https://github.com/sphinx-doc/sphinx/issues/3099#issuecomment-256440704

Anyway the file MAINTAINERS is mentioned several times in the guide.
So the "literalinclude" is removed from the guide to fix the build
of the PDF.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoversion: 19.08-rc1
Thomas Monjalon [Mon, 8 Jul 2019 21:04:37 +0000 (23:04 +0200)]
version: 19.08-rc1

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
5 years agonet/memif: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:26 +0000 (10:16 -0700)]
net/memif: use new ethernet address parser

Use rte_ether_unformat_addr rather than sscanf.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet/vdev_netvsc: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:25 +0000 (10:16 -0700)]
net/vdev_netvsc: use new ethernet address parser

Use rte_ether_unformat_addr rather than sscanf.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Matan Azrad <matan@mellanox.com>
5 years agonet/failsafe: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:24 +0000 (10:16 -0700)]
net/failsafe: use new ethernet address parser

Use rte_ether_unformat_addr rather than sscanf.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
5 years agonet/virtio: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:23 +0000 (10:16 -0700)]
net/virtio: use new ethernet address parser

Use rte_ether_unformat_addr rather than sscanf.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agoapp/testpmd: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:22 +0000 (10:16 -0700)]
app/testpmd: use new ethernet address parser

The cmdline_parse_ether_addr does not need to be used everywhere
in testpmd. Can use rte_ether_unformat_addr instead.
As an added bonus it eliminates some code for copying.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
5 years agonet/bonding: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:21 +0000 (10:16 -0700)]
net/bonding: use new ethernet address parser

The cmdline library used to be the only way to parse a
mac address. Now there is rte_ether_unformat_addr.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agocmdline: use new ethernet address parser
Stephen Hemminger [Fri, 5 Jul 2019 17:16:20 +0000 (10:16 -0700)]
cmdline: use new ethernet address parser

Now that there is a version of ether_aton in rte_ether, it can
be used by the cmdline ethernet address parser.

Note: ether_aton_r can not be used in cmdline because
the old code would accept either bytes XX:XX:XX:XX:XX:XX
or words XXXX:XXXX:XXXX and we need to keep compatibility.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
5 years agonet: speedup ethernet address comparison with bitops
Stephen Hemminger [Fri, 5 Jul 2019 17:16:19 +0000 (10:16 -0700)]
net: speedup ethernet address comparison with bitops

Using bit operations like or and xor is faster than a loop
on all architectures. Really just explicit unrolling.

Similar cast to uint16 unaligned is already done in
other functions here.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
5 years agoethdev: use new ethernet parsing function
Stephen Hemminger [Fri, 5 Jul 2019 17:16:18 +0000 (10:16 -0700)]
ethdev: use new ethernet parsing function

Use rte_eth_unformat_addr, so that ethdev can be built and work
without the cmdline library. The dependency on cmdline was
an arrangement of convenience anyway.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
5 years agonet: add function to convert string to ethernet address
Stephen Hemminger [Fri, 5 Jul 2019 17:16:17 +0000 (10:16 -0700)]
net: add function to convert string to ethernet address

Make a function that can be used in place of eth_aton_r
to convert a string to rte_ether_addr. This function
allows both byte (xx:xx:xx:xx:xx:xx) and word (XXXX:XXXX:XXXX)
format and has the same lack of error handling as the original.

This also allows ethdev to no longer have a hard dependency
on the cmdline library.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
5 years agonet: deinline non-critical ethernet functions
Stephen Hemminger [Fri, 5 Jul 2019 17:16:16 +0000 (10:16 -0700)]
net: deinline non-critical ethernet functions

Formatting Ethernet address and getting a random value are
not in critical path so they should not be inlined.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Rami Rosen <ramirose@gmail.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
5 years agonet/af_xdp: correct XDP frame size
Xiaolong Ye [Sun, 7 Jul 2019 15:57:05 +0000 (23:57 +0800)]
net/af_xdp: correct XDP frame size

XSK_UMEM__DEFAULT_FRAME_SIZE has been changed to 4096 in kernel commit
123e8da1d330 (xsk: Change the default frame size to 4096 and allow
controlling it),
but we still need to keep ETH_AF_XDP_FRAME_SIZE as 2048 to fit most
dpdk apps.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>