dpdk.git
4 years agoraw/ioat: fix work-queue config size
Bruce Richardson [Wed, 28 Oct 2020 12:45:34 +0000 (12:45 +0000)]
raw/ioat: fix work-queue config size

According to latest DSA spec[1], the work-queue config register size
should be based off a value read from the WQ capabilities register.
Update driver to read this value and base the start of each WQ config
off that value.

[1] https://software.intel.com/content/www/us/en/develop/download/intel-data-streaming-accelerator-preliminary-architecture-specification.html

Fixes: ff06fa2cf3ba ("raw/ioat: probe idxd PCI")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agoexamples/performance-thread: fix build with low core count
Honnappa Nagarahalli [Fri, 16 Oct 2020 06:03:49 +0000 (01:03 -0500)]
examples/performance-thread: fix build with low core count

When the value of RTE_MAX_LCORE is small, it results in the
following compilation error.

../examples/performance-thread/l3fwd-thread/main.c:2338:34: error:
iteration 4 invokes undefined behavior
[-Werror=aggressive-loop-optimizations]

Fixes: d48415e1fee3 ("examples/performance-thread: add l3fwd-thread app")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agotest/rcu: fix build with low core count
Honnappa Nagarahalli [Fri, 16 Oct 2020 06:03:48 +0000 (01:03 -0500)]
test/rcu: fix build with low core count

When RTE_MAX_LCORE value is small, following compiler errors
are observed.

../app/test/test_rcu_qsbr.c:296:54: error: iteration 2 invokes
undefined behavior [-Werror=aggressive-loop-optimizations]

../app/test/test_rcu_qsbr.c:315:55: error: array subscript is above
array bounds [-Werror=array-bounds]

Fixes: b87089b0bb19 ("test/rcu: add API and functional tests")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
4 years agoexamples/multi_process: fix build on Ubuntu 20.04
Bruce Richardson [Wed, 28 Oct 2020 16:27:01 +0000 (16:27 +0000)]
examples/multi_process: fix build on Ubuntu 20.04

Two warnings are reported by gcc 9.3.0 on Ubuntu 20.04.

When producing a printable mac address the buffer was appropriately sized
for holding the mac address exactly, but the actual snprintf included a
'\n' character at the end, which means that the snprintf technically is
getting truncated i.e. the \n would not be added due to lack of space.
This gets flagged as a problem by modern versions of gcc, e.g. on Ubuntu
20.04.

main.c:77:37: warning: ‘__builtin___snprintf_chk’ output truncated
  before the last format character [-Wformat-truncation=]
   77 |     "%02x:%02x:%02x:%02x:%02x:%02x\n",
      |                                     ^

Since the \n is getting stripped anyway, we can fix the issue by just
removing it. In the process we can switch to using the standard ethernet
address formatting function from rte_ether.h.

The other warning is about possible string truncation when getting the
RX queue name:

In file included from init.c:36:
init.c: In function ‘init’:
../shared/common.h:38:28: warning: ‘%u’ directive output may be truncated
  writing between 1 and 10 bytes into a region of size 8
  [-Wformat-truncation=]
   38 | #define MP_CLIENT_RXQ_NAME "MProc_Client_%u_RX"
      |                            ^~~~~~~~~~~~~~~~~~~~
../shared/common.h:52:35: note: in expansion of macro ‘MP_CLIENT_RXQ_NAME’
   52 |  snprintf(buffer, sizeof(buffer), MP_CLIENT_RXQ_NAME, id);
      |                                   ^~~~~~~~~~~~~~~~~~

This is a false positive, as the value of the "id" is limited to 255,
being stored in the app as a uint8_t value, removing the possibility of
the %u being replaced by anything other then 3 characters max (rather than
up to 10 as thought by the compiler). Therefore, the warning can be easily
removed by changing the type of the "id" parameter to the local function
from "unsigned" to "uint8_t" also, ensuring the compiler is aware of the
range limit.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
4 years agoexamples/vm_power: fix build on Ubuntu 20.04
Bruce Richardson [Wed, 28 Oct 2020 16:27:00 +0000 (16:27 +0000)]
examples/vm_power: fix build on Ubuntu 20.04

When compiling on Ubuntu 20.04, a warning was issued about possible
truncation of the path string for the power management socket.

channel_manager.c: In function ‘add_all_channels’:
channel_manager.c:470:41: warning: ‘%s’ directive output may be
  truncated writing up to 255 bytes into a region of size 90
  [-Wformat-truncation=]
  470 |     sizeof(chan_info->channel_path), "%s%s",
      |                                         ^~

This can be fixed by adding in an explicit truncation check to the code
and handling it appropriately.

Fixes: e8ae9b662506 ("examples/vm_power: channel manager and monitor in host")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
4 years agoexamples: fix linking against specific drivers
Bruce Richardson [Tue, 27 Oct 2020 17:19:53 +0000 (17:19 +0000)]
examples: fix linking against specific drivers

Some example apps rely on driver-specific functionality and link explicitly
against those drivers. These apps need their makefiles updated to take
account of the renaming of the driver libs.

Fixes: a20b2c01a7a1 ("build: standardize component names and defines")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agoexamples/vm_power: fix memory leak
Rory Sexton [Wed, 29 Jul 2020 08:37:54 +0000 (09:37 +0100)]
examples/vm_power: fix memory leak

Fix memory leak where variable oob_enable can go out of scope leaking
the storage it points to.

Coverity issue: 337674
Fixes: 95f648ff9ee ("examples/vm_power: make branch ratio threshold per core")

Signed-off-by: Rory Sexton <rory.sexton@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
4 years agotrace: make CTF metadata prettier
David Marchand [Wed, 28 Oct 2020 21:02:49 +0000 (22:02 +0100)]
trace: make CTF metadata prettier

This is simply a cosmetic change.

Before:
event {
    id = 17;
    name = "lib.eal.alarm.set";
    fields := struct {
        uint64_t us;uintptr_t cb_fn;uintptr_t cb_arg;int32_t rc;
    };
};

After:
event {
    id = 17;
    name = "lib.eal.alarm.set";
    fields := struct {
        uint64_t us;
        uintptr_t cb_fn;
        uintptr_t cb_arg;
        int32_t rc;
    };
};

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Sunil Kumar Kori <skori@mavell.com>
4 years agotrace: fix metadata dump
David Marchand [Wed, 28 Oct 2020 21:02:48 +0000 (22:02 +0100)]
trace: fix metadata dump

The ctf metadata is written to the metadata file without any check for
length, so this string must be null terminated.

Fixes: f1a099f5b1f1 ("trace: create CTF TDSL metadata in memory")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Sunil Kumar Kori <skori@mavell.com>
4 years agotrace: remove size limit on CTF event description
David Marchand [Wed, 28 Oct 2020 21:02:47 +0000 (22:02 +0100)]
trace: remove size limit on CTF event description

Rework registration so that it uses dynamic allocations and has no size
limit.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Sunil Kumar Kori <skori@mavell.com>
4 years agotrace: fixup CTF event description at registration
David Marchand [Wed, 28 Oct 2020 21:02:46 +0000 (22:02 +0100)]
trace: fixup CTF event description at registration

CTF event description is currently built by appending all fields in a
single string at trace point registration.
When dumping the metadata, this string is split again and inspected to
fixup reserved keywords and special tokens like "." or "->".

Move this fixup per field at trace point registration time so that there
is no need for inspecting / string parsing when dumping metadata.
Use dynamic allocations to remove an artificial size limit on the CTF
event description manipulations.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Sunil Kumar Kori <skori@mavell.com>
4 years agoeal: add intrinsics support check infrastructure
Liang Ma [Tue, 27 Oct 2020 14:59:03 +0000 (14:59 +0000)]
eal: add intrinsics support check infrastructure

Currently, it is not possible to check support for intrinsics that
are platform-specific, cannot be abstracted in a generic way, or do not
have support on all architectures. The CPUID flags can be used to some
extent, but they are only defined for their platform, while intrinsics
will be available to all code as they are in generic headers.

This patch introduces infrastructure to check support for certain
platform-specific intrinsics, and adds support for checking support for
IA power management-related intrinsics for UMWAIT/UMONITOR and TPAUSE.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
4 years agoeal: add power management intrinsics
Liang Ma [Tue, 27 Oct 2020 14:59:02 +0000 (14:59 +0000)]
eal: add power management intrinsics

Add two new power management intrinsics, and provide an implementation
in eal/x86 based on UMONITOR/UMWAIT instructions. The instructions
are implemented as raw byte opcodes because there is not yet widespread
compiler support for these instructions.

The power management instructions provide an architecture-specific
function to either wait until a specified TSC timestamp is reached, or
optionally wait until either a TSC timestamp is reached or a memory
location is written to. The monitor function also provides an optional
comparison, to avoid sleeping when the expected write has already
happened, and no more writes are expected.

For more details, please refer to Intel(R) 64 and IA-32 Architectures
Software Developer's Manual, Volume 2.

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
4 years agoeal/x86: add CPU flag for WAITPKG
Liang Ma [Tue, 27 Oct 2020 14:59:01 +0000 (14:59 +0000)]
eal/x86: add CPU flag for WAITPKG

Add a new CPUID flag indicating processor support for UMONITOR/UMWAIT
and TPAUSE instructions instruction.

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agoexamples/ip_pipeline: fix external build
Cristian Dumitrescu [Mon, 26 Oct 2020 21:57:55 +0000 (21:57 +0000)]
examples/ip_pipeline: fix external build

Fix build with external makefile.

Fixes: fbc74e66334f ("examples/ip_pipeline: remove infra code")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
4 years agoexamples/pipeline: fix resource leak
Cristian Dumitrescu [Mon, 26 Oct 2020 21:23:55 +0000 (21:23 +0000)]
examples/pipeline: fix resource leak

Coverity issue: 363041
Fixes: 5074e1d551 ("examples/pipeline: add configuration commands")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
4 years agopipeline: fix string copy into fixed size buffer
Cristian Dumitrescu [Mon, 26 Oct 2020 19:59:16 +0000 (19:59 +0000)]
pipeline: fix string copy into fixed size buffer

Fix potential buffer overflows by string copy into fixed size buffer.

Coverity issue: 362732, 362736, 362760, 362772, 362775, 362784
Coverity issue: 362800, 362803, 362806, 362811, 362814, 362816
Coverity issue: 362834, 362837, 362844, 362845, 362857, 362861
Coverity issue: 362868, 362890, 362893, 362904, 362905
Fixes: 56492fd536 ("pipeline: add new SWX pipeline type")
Fixes: 1e4c88caea ("pipeline: add SWX extern objects and funcs")
Fixes: e9d870dd93 ("pipeline: add SWX pipeline tables")
Fixes: a1711f948d ("pipeline: add SWX Rx and extract instructions")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
4 years agohash: fix check of parameter
Yunjian Wang [Tue, 27 Oct 2020 12:51:25 +0000 (20:51 +0800)]
hash: fix check of parameter

Coverity flags that 'h' variable is used before
it's checked for NULL. This patch fixes this issue.

Coverity issue: 363625
Fixes: 769b2de7fb52 ("hash: implement RCU resources reclamation")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agoeal: fix interrupt trace point
Yunjian Wang [Thu, 15 Oct 2020 08:42:30 +0000 (16:42 +0800)]
eal: fix interrupt trace point

This patch fixes (dereference after null check) coverity issue.
For this reason, we should add null check at the beginning of the
function and return error directly if the 'intr_handle' is null.

Coverity issue: 357695, 357751
Fixes: 05c4105738d8 ("trace: add interrupt tracepoints")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Harman Kalra <hkalra@marvell.com>
4 years agotest/ring: add stress tests for zero copy API
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:52 +0000 (00:45 -0500)]
test/ring: add stress tests for zero copy API

Add stress tests for zero copy API.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agotest/ring: add functional tests for zero copy API
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:50 +0000 (00:45 -0500)]
test/ring: add functional tests for zero copy API

Add functional tests for zero copy APIs. Test enqueue/dequeue
functions are created using the zero copy APIs to fit into
the existing testing method.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agoring: add zero copy API
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:49 +0000 (00:45 -0500)]
ring: add zero copy API

Add zero-copy APIs. These APIs provide the capability to
copy the data to/from the ring memory directly, without
having a temporary copy (for ex: an array of mbufs on
the stack). Use cases that involve copying large amount
of data to/from the ring can benefit from these APIs.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agotest/ring: fix integer cast to pointer
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:56 +0000 (00:45 -0500)]
test/ring: fix integer cast to pointer

Use uintptr_t instead of unsigned long while initializing the
array of pointers.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agotest/ring: remove unnecessary braces
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:55 +0000 (00:45 -0500)]
test/ring: remove unnecessary braces

Remove unnecessary braces to improve readability.

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agotest/ring: fix memory dump
Honnappa Nagarahalli [Sun, 25 Oct 2020 05:45:54 +0000 (00:45 -0500)]
test/ring: fix memory dump

Pass the correct number of bytes to dump the memory.

Fixes: bf28df24e915 ("test/ring: add contention stress test")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agoexamples/tep_term: remove this application
Xiaoyun Li [Mon, 26 Oct 2020 08:11:43 +0000 (16:11 +0800)]
examples/tep_term: remove this application

This example sets up a scenario that VXLAN packets can be received
by different PF queues based on VNID and each queue is bound to a VM
with a VNID so that the VM can receive its inner packets.

Usually, OVS is used to do the software encap/decap for VXLAN packets.

And the VXLAN packets offloading can be replaced with flow rules in
testpmd like Chapter "Sample VXLAN flow rules" in Testpmd Application
User Guide.

And this example hasn't been used for a long time.

So deprecate this example.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agoapp/fib: select lookup
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:30 +0000 (15:11 +0000)]
app/fib: select lookup

Added -v option to switch between different lookup implementations
to measure their performance and correctness.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
4 years agofib6: add AVX512 lookup
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:29 +0000 (15:11 +0000)]
fib6: add AVX512 lookup

Add new lookup implementation for FIB6 trie algorithm using
AVX512 instruction set

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib6: move lookup definition to header
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:28 +0000 (15:11 +0000)]
fib6: move lookup definition to header

Move trie table layout and lookup definition into the
private header file. This is necessary for implementing a
vectorized lookup function in a separate .с file.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib6: add lookup runtime selection
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:27 +0000 (15:11 +0000)]
fib6: add lookup runtime selection

Add type argument to trie_get_lookup_fn()
Now it only supports RTE_FIB6_LOOKUP_TRIE_SCALAR

Add new rte_fib6_select_lookup() - user can change lookup
function type runtime.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib: add AVX512 lookup
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:26 +0000 (15:11 +0000)]
fib: add AVX512 lookup

Add new lookup implementation for DIR24_8 algorithm using
AVX512 instruction set

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib: move lookup definition to header
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:25 +0000 (15:11 +0000)]
fib: move lookup definition to header

Move dir24_8 table layout and lookup definition into the
private header file. This is necessary for implementing a
vectorized lookup function in a separate .с file.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib: add lookup runtime selection
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:24 +0000 (15:11 +0000)]
fib: add lookup runtime selection

Add type argument to dir24_8_get_lookup_fn()
Now it supports 3 different lookup implementations:
 RTE_FIB_LOOKUP_DIR24_8_SCALAR_MACRO
 RTE_FIB_LOOKUP_DIR24_8_SCALAR_INLINE
 RTE_FIB_LOOKUP_DIR24_8_SCALAR_UNI

Add new rte_fib_select_lookup() - user can change lookup
function type runtime.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
4 years agofib: remove maximum type enums
Vladimir Medvedkin [Tue, 27 Oct 2020 15:11:31 +0000 (15:11 +0000)]
fib: remove maximum type enums

FIB type RTE_FIB_TYPE_MAX is used only for sanity checks,
remove it to prevent applications start using it.
The same is for FIB6's RTE_FIB6_TYPE_MAX.

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoservice: separate statistics dump and reset
David Marchand [Thu, 22 Oct 2020 08:08:10 +0000 (10:08 +0200)]
service: separate statistics dump and reset

No functional change intended.

service_dump_calls_per_lcore() was always called with a 0 reset flag.
service_dump_one() was called with either a 0 reset flag or a NULL
FILE pointer.

We can split the code for readability sake.

Note: there is no path to resetting calls_per_service[], this is left as
is.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
4 years agodoc: update ABI version references
Ray Kinsella [Mon, 26 Oct 2020 19:31:14 +0000 (19:31 +0000)]
doc: update ABI version references

Updated references to abi versions in the contributors guide.
Fixed an inaccurate reference to a symbol in the policy.

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agoapp/procinfo: clean old build macro
David Marchand [Fri, 23 Oct 2020 07:44:51 +0000 (09:44 +0200)]
app/procinfo: clean old build macro

When merging this series after Bruce changes on build macros, an old macro
usage has been re-introduced.

Fixes: d82d6ac64338 ("app/procinfo: add crypto security context info")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
4 years agolpm: hide internal data
Ruifeng Wang [Fri, 23 Oct 2020 09:38:18 +0000 (11:38 +0200)]
lpm: hide internal data

Fields except tbl24 and tbl8 in rte_lpm structure have no
need to be exposed to the user.
Hide the unneeded exposure of structure fields for better
ABI maintainability.

Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
4 years agolpm: fix free of data structure
Ruifeng Wang [Fri, 23 Oct 2020 09:38:17 +0000 (11:38 +0200)]
lpm: fix free of data structure

The container structure should be freed instead of rte_lpm structure
after wrapping rte_lpm into internal structure __rte_lpm.

Fixes: 8a9f8564e9f9 ("lpm: implement RCU rule reclamation")

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
4 years agomaintainers: improve coverage of arch-specific files
Thomas Monjalon [Sat, 24 Oct 2020 16:36:19 +0000 (18:36 +0200)]
maintainers: improve coverage of arch-specific files

The sub-directories of config/ are maintained by
different architecture maintainers.

Some wildcards are used to describe the lib, drivers and app files
which are specific to some architectures.

The EAL Arm files have split responsibilities depending on 32/64 suffix,
and the common files are shared between Armv7 and Armv8 sections.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agotest/hash: add RCU tests
Dharmik Thakkar [Wed, 21 Oct 2020 22:50:06 +0000 (17:50 -0500)]
test/hash: add RCU tests

Add functional and performance tests for the integrated RCU QSBR.

Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agotest/hash: use C11 atomics in lock-free perf test
Dharmik Thakkar [Wed, 21 Oct 2020 22:50:05 +0000 (17:50 -0500)]
test/hash: use C11 atomics in lock-free perf test

Replace rte_atomic APIs with C11 atomic APIs in
test_hash_readwrite_lf_perf.c

Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agohash: implement RCU resources reclamation
Dharmik Thakkar [Wed, 21 Oct 2020 22:50:04 +0000 (17:50 -0500)]
hash: implement RCU resources reclamation

Currently, users have to use external RCU mechanisms to free resources
when using lock free hash algorithm.

Integrate RCU QSBR process to make it easier for the applications to use
lock free algorithm.
Refer to RCU documentation to understand various aspects of
integrating RCU library into other libraries.

Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agorcu: build on Windows
Dharmik Thakkar [Wed, 21 Oct 2020 22:50:03 +0000 (17:50 -0500)]
rcu: build on Windows

Build the lib for Windows.

Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Tested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Tested-by: Pallavi Kadam <pallavi.kadam@intel.com>
4 years agodoc: remove references to make from known issues
Thomas Monjalon [Thu, 22 Oct 2020 17:30:09 +0000 (19:30 +0200)]
doc: remove references to make from known issues

The config options CONFIG_RTE_* are simple RTE_* defines with meson.
Now that make support is dropped, update the HPET config reference.

The comment about the AVX512 config option is not relevant anymore.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoremove config prefix used with make
Thomas Monjalon [Thu, 22 Oct 2020 19:22:45 +0000 (21:22 +0200)]
remove config prefix used with make

The config options CONFIG_RTE_* are simple RTE_* defines with meson.
Now that make support is dropped, update the names in logs and comments.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agomem: fix config name in error logs
Thomas Monjalon [Thu, 22 Oct 2020 17:36:21 +0000 (19:36 +0200)]
mem: fix config name in error logs

When introducing the new option CONFIG_RTE_MAX_MEM_MB_PER_TYPE,
some logs were referencing a wrong name: CONFIG_RTE_MAX_MEM_PER_TYPE.

Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoeal: remove comment about old partition option
Thomas Monjalon [Thu, 22 Oct 2020 17:37:34 +0000 (19:37 +0200)]
eal: remove comment about old partition option

The main initialization function (rte_eal_init) has documentation
about a feature from another era: memory partition.

Curiously, this lost treasure is found only now,
suggesting there may be other interesting things to discover in the doc.
To all aspiring Indiana Jones: the hunt is open!

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoexamples/pipeline: fix help command
Yogesh Jangra [Thu, 22 Oct 2020 11:01:52 +0000 (07:01 -0400)]
examples/pipeline: fix help command

This patch has the changes to list all supported commands and fix
supported commands help details.

Fixes: 5074e1d55107 ("examples/pipeline: add configuration commands")

Signed-off-by: Yogesh Jangra <yogesh.jangra@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
4 years agoeal: report duplicate device event callback
Yunjian Wang [Wed, 21 Oct 2020 11:19:49 +0000 (19:19 +0800)]
eal: report duplicate device event callback

We should return an error value, when the callback is already exist.

Fixes: a753e53d517b ("eal: add device event monitor framework")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoeal: return errors on device event callback unregister
Yunjian Wang [Wed, 21 Oct 2020 11:19:23 +0000 (19:19 +0800)]
eal: return errors on device event callback unregister

Fix return value, using -EAGAIN instead of 0 when the callback is busy
and using -ENOENT instead of 0 when the callback is not found.

Fixes: a753e53d517b ("eal: add device event monitor framework")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoeal: fix leak on device event callback unregister
Yunjian Wang [Wed, 21 Oct 2020 11:19:03 +0000 (19:19 +0800)]
eal: fix leak on device event callback unregister

The event_cb->dev_name is not freed when freeing event_cb,
and this causes a memory leak.

Fixes: a753e53d517b ("eal: add device event monitor framework")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoexamples/ipsec-secgw: use POSIX network address conversion
Ibtisam Tariq [Mon, 13 Jul 2020 09:57:30 +0000 (09:57 +0000)]
examples/ipsec-secgw: use POSIX network address conversion

inet_pton4 and inet_pton6 was reimplemented. Replace implementation of
inet_pton4 and inet_pton6 with libc inet_pton function

Bugzilla ID: 365
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ibtisam Tariq <ibtisam.tariq@emumba.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoexamples/ip_pipeline: use POSIX network address conversion
Ibtisam Tariq [Mon, 13 Jul 2020 09:57:29 +0000 (09:57 +0000)]
examples/ip_pipeline: use POSIX network address conversion

inet_pton4 and inet_pton6 was reimplemented. Replacing implementation of
inet_pton4 and inet_pton6 with libc inet_pton function

Bugzilla ID: 365
Fixes: ed7a0490f7e2 ("examples/ip_pipeline: add string parsing helpers")

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ibtisam Tariq <ibtisam.tariq@emumba.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agonet/softnic: use POSIX network address conversion
Ibtisam Tariq [Mon, 13 Jul 2020 09:57:28 +0000 (09:57 +0000)]
net/softnic: use POSIX network address conversion

inet_pton4 and inet_pton6 was reimplemented. Replace implementation of
inet_pton4 and inet_pton6 with libc inet_pton function

Bugzilla ID: 365
Fixes: 31ce8d888625 ("net/softnic: add command interface")

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ibtisam Tariq <ibtisam.tariq@emumba.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agodoc: update guide for armv8 crypto
Ruifeng Wang [Wed, 14 Oct 2020 09:24:14 +0000 (17:24 +0800)]
doc: update guide for armv8 crypto

Added guide about building by using meson.

Also added the command to create virtual device.

Suggested-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
4 years agodoc: update patch cheatsheet to use meson
Kevin Laatz [Wed, 21 Oct 2020 08:17:24 +0000 (09:17 +0100)]
doc: update patch cheatsheet to use meson

With 'make' being removed, the patch cheatsheet needs to be updated to
remove any references to 'make'. These references have been replaced with
meson alternatives in this patch.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agodoc: add to release notes to reflect removal of make
Ciara Power [Wed, 21 Oct 2020 08:17:23 +0000 (09:17 +0100)]
doc: add to release notes to reflect removal of make

Added an entry to describe the removal of the Make build system to the
release notes for 20.11.

Signed-off-by: Ciara Power <ciara.power@intel.com>
4 years agodoc: remove references to make from contributing guide
Ciara Power [Wed, 21 Oct 2020 08:17:22 +0000 (09:17 +0100)]
doc: remove references to make from contributing guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Signed-off-by: Louise Kilheeney <louise.kilheeney@intel.com>
4 years agodoc: remove reference to make from tools guide
Ciara Power [Wed, 21 Oct 2020 08:17:21 +0000 (09:17 +0100)]
doc: remove reference to make from tools guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
4 years agodoc: remove references to make from apps guide
Ciara Power [Wed, 21 Oct 2020 08:17:20 +0000 (09:17 +0100)]
doc: remove references to make from apps guide

While make has been deprecated for DPDK, it's still applicable for
some example apps to be built standalone, this patch adjusts the
guides to take that into consideration.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
4 years agodoc: remove references to make from rawdevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:19 +0000 (09:17 +0100)]
doc: remove references to make from rawdevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
4 years agodoc: remove references to make from eventdevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:18 +0000 (09:17 +0100)]
doc: remove references to make from eventdevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agodoc: remove references to make from compressdevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:17 +0000 (09:17 +0100)]
doc: remove references to make from compressdevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Lee Daly <lee.daly@intel.com>
4 years agodoc: remove references to make from cryptodevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:16 +0000 (09:17 +0100)]
doc: remove references to make from cryptodevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
4 years agodoc: remove references to make from bbdevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:15 +0000 (09:17 +0100)]
doc: remove references to make from bbdevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agodoc: remove references to make from vdpadevs guide
Ciara Power [Wed, 21 Oct 2020 08:17:14 +0000 (09:17 +0100)]
doc: remove references to make from vdpadevs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Matan Azrad <matan@nvidia.com>
4 years agodoc: remove references to make from NICs guide
Ciara Power [Wed, 21 Oct 2020 08:17:13 +0000 (09:17 +0100)]
doc: remove references to make from NICs guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Igor Russkikh <irusskikh@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
4 years agodoc: remove references to make from mempool guide
Ciara Power [Wed, 21 Oct 2020 08:17:12 +0000 (09:17 +0100)]
doc: remove references to make from mempool guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agodoc: remove references to make from platforms guide
Ciara Power [Wed, 21 Oct 2020 08:17:11 +0000 (09:17 +0100)]
doc: remove references to make from platforms guide

Make is no longer supported for compiling DPDK, references are now
removed in the documentation.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
4 years agoefd: fix tailq entry leak in error path
Yunjian Wang [Tue, 29 Sep 2020 03:31:35 +0000 (11:31 +0800)]
efd: fix tailq entry leak in error path

In rte_efd_create() allocated memory for tailq entry, we should
free it when error happens, otherwise it will lead to memory leak.

Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
4 years agohash: use x86 common flag for jhash
David Marchand [Thu, 22 Oct 2020 07:59:59 +0000 (09:59 +0200)]
hash: use x86 common flag for jhash

jhash has been forgotten when factorising the x86 arch check.

Fixes: dbf17d44f375 ("hash: use common x86 flag")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agodrivers: add headers install helper
David Marchand [Thu, 22 Oct 2020 07:55:45 +0000 (09:55 +0200)]
drivers: add headers install helper

A lot of drivers export headers, reproduce the same facility than for
libraries.

Note: this change fixes an issue with the crypto scheduler headers which
were not installed properly. A separate backport will be sent to stable
branches.

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agobpf: use helper to install headers
David Marchand [Thu, 22 Oct 2020 07:50:38 +0000 (09:50 +0200)]
bpf: use helper to install headers

Libraries can use the headers variable to install headers.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agobuild: fix version map file references in documentation
David Marchand [Thu, 22 Oct 2020 07:47:04 +0000 (09:47 +0200)]
build: fix version map file references in documentation

Fixes: 63b3907833d8 ("build: remove library name from version map file name")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agoversion: 20.11-rc1
Thomas Monjalon [Tue, 20 Oct 2020 14:38:46 +0000 (16:38 +0200)]
version: 20.11-rc1

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agoeal/linux: fix memory leak in uevent handling
Yunjian Wang [Sat, 23 May 2020 10:52:21 +0000 (18:52 +0800)]
eal/linux: fix memory leak in uevent handling

When the memory for uevent.devname is allocated in dev_uev_parse(). It
is not freed when parse the subsystem layer fails in dev_uev_parse().
Before return, it is also not freed in dev_uev_handler(). These cause a
memory leak.

Fixes: 0d0f478d0483 ("eal/linux: add uevent parse and process")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
4 years agobus/pci: remove unused scan by address
Thomas Monjalon [Wed, 14 Oct 2020 20:18:13 +0000 (22:18 +0200)]
bus/pci: remove unused scan by address

The function pci_update_device was used to scan a device
for probing by PCI address.
This private function (and implementations) are unused
since such probing is removed.

Fixes: f3bac43b60da ("bus/pci: remove unused function to probe by address")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agoeal/windows: add missing stdint include
Tal Shnaiderman [Tue, 20 Oct 2020 08:48:15 +0000 (11:48 +0300)]
eal/windows: add missing stdint include

Following the addition of the in_addr/in6_addr structs
to in.h the header file must have stdint.h included
for the definitions of the uint8_t/uint32_t types used
within the new structs.

Not having it could results in the following errors
in places where in.h is included:

in.h:30:2: error: unknown type name 'uint32_t'
        uint32_t s_addr;

in.h:34:2: error: unknown type name 'uint8_t'
        uint8_t s6_addr[16];

Fixes: f40a74cfcf0 ("eal/windows: improve compatibility networking headers")

Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
4 years agoconfig: fix kni build
Bruce Richardson [Tue, 20 Oct 2020 09:17:43 +0000 (10:17 +0100)]
config: fix kni build

When building kernel modules such as kni, the "config" directory is not
passed as a standard path in the EXTRA_CFLAGS value, meaning that the
rte_compatibility_defines.h is not found from rte_config.h. However, since
both headers are in the same directory, we can just use quotes rather than
angle-brackets to ensure the second header is always found if the first is.

Fixes: b0b672aeadaa ("build: add defines for compatibility with make build")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
4 years agonet/failsafe: replace references to slave devices
Stephen Hemminger [Thu, 15 Oct 2020 22:57:36 +0000 (15:57 -0700)]
net/failsafe: replace references to slave devices

The term slave is only used in some comments and can be
replaced with sub devices, as done elsewhere.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agonet/memif: replace master/slave arguments
Stephen Hemminger [Thu, 15 Oct 2020 22:57:22 +0000 (15:57 -0700)]
net/memif: replace master/slave arguments

Replace master/slave terms in this driver.

The memory interface drivers uses a client/server architecture
so change the variable names and device arguments to that.

The previous devargs are maintained for compatibility, but if
used cause a notice in the log.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agodrivers/bus: reword slave process as secondary
Stephen Hemminger [Thu, 15 Oct 2020 22:57:21 +0000 (15:57 -0700)]
drivers/bus: reword slave process as secondary

Correct wording is "secondary process".

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agoeal: rename lcore master and slave
Stephen Hemminger [Thu, 15 Oct 2020 22:57:19 +0000 (15:57 -0700)]
eal: rename lcore master and slave

Replace master lcore with main lcore and
replace slave lcore with worker lcore.

Keep the old functions and macros but mark them as deprecated
for this release.

The "--master-lcore" command line option is also deprecated
and any usage will print a warning and use "--main-lcore"
as replacement.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agoeal: add macro to mark macros as deprecated
Stephen Hemminger [Thu, 15 Oct 2020 22:57:18 +0000 (15:57 -0700)]
eal: add macro to mark macros as deprecated

Add a macro that causes GCC and CLANG to emit a warning when
a deprecated macro is used.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
4 years agodoc: add policy about master/slave words
Stephen Hemminger [Thu, 15 Oct 2020 22:57:17 +0000 (15:57 -0700)]
doc: add policy about master/slave words

Update the coding style document to include a policy against
introducing new master/slave usage. This is taken from the similar
place in the Linux kernel coding style.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
4 years agoapp/procinfo: provide way to request info on owned ports
Stephen Hemminger [Thu, 24 Sep 2020 05:34:33 +0000 (22:34 -0700)]
app/procinfo: provide way to request info on owned ports

There are cases where a port maybe owned by another (failsafe, netvsc,
bond); but currently proc-info has no way to look at stats of those
ports. This patch provides way for the user to explicitly ask for these
ports.

If no portmask is given the output is unchanged; it only shows the
top level ports. If portmask requests a specific port it will be
shown even if owned.

Increase the size of port mask variable to unsigned long to
allow up to 64 ports to be handled on 64 bit architecture.

The device owner is also a useful thing to show in port info.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/procinfo: add crypto security context info
Hemant Agrawal [Thu, 24 Sep 2020 05:34:32 +0000 (22:34 -0700)]
app/procinfo: add crypto security context info

If crypto context is not present, no point in displaying it.

This patch adds the crypto based security context info.
Also improve the flag printing to SECURITY OFFLOAD from
INLINE.

Use common code for displaying crypto context information
when doing show_ports and show_crypto.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agoapp/procinfo: dump Rx and Tx descriptor info
Stephen Hemminger [Thu, 24 Sep 2020 05:34:31 +0000 (22:34 -0700)]
app/procinfo: dump Rx and Tx descriptor info

Many drivers will report per queue info
as well as how many descriptors are in use.
Also display per-queue offload flags.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/procinfo: add more port info
Stephen Hemminger [Thu, 24 Sep 2020 05:34:30 +0000 (22:34 -0700)]
app/procinfo: add more port info

Revise the display of port information to include more data
and be more human friendly.

  * Show driver and device information
  * Show MAC address
  * Show flow control information
  * Combine lines if possible
  * Show all multicast mode
  * Show queue mempool name

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/procinfo: hide EAL info messages
Stephen Hemminger [Thu, 24 Sep 2020 05:34:29 +0000 (22:34 -0700)]
app/procinfo: hide EAL info messages

The DPDK EAL info messages at the start of a diagnostic application
are not helpful to end user. Suppress them by setting log-level
by default.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/procinfo: eliminate useless borders
Stephen Hemminger [Thu, 24 Sep 2020 05:34:28 +0000 (22:34 -0700)]
app/procinfo: eliminate useless borders

Printing extra borders does not improve readability, and is just
unnecessary. Putting TSC hz in header also makes no sense here.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/procinfo: remove unused logtype
Stephen Hemminger [Thu, 24 Sep 2020 05:34:27 +0000 (22:34 -0700)]
app/procinfo: remove unused logtype

This logtype is defined but never used.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
4 years agoapp/regex: fix crash in options parsing
Ophir Munk [Sun, 18 Oct 2020 14:21:47 +0000 (14:21 +0000)]
app/regex: fix crash in options parsing

getopt_long() parses command-line arguments. One of its arguments
'longopts' is a pointer to the first element of an array of struct
option.  The last element of the array has to be filled with zeros
to mark the end of options. For example:

struct option longopts[] = {
{ "help",  0, 0, ARG_HELP},
....
/* End of options */
{ 0, 0, 0, 0 }
};

This commit adds the last element. Prior to this commit getopt_long()
continued parsing beyond the longopts[] array which occasionally caused
segmentation faults.

Fixes: de06137cb295 ("app/regex: add RegEx test application")
Cc: stable@dpdk.org
Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
4 years agoethdev: rename tunnel flow offload callbacks
Gregory Etelson [Sun, 18 Oct 2020 12:15:23 +0000 (15:15 +0300)]
ethdev: rename tunnel flow offload callbacks

Rename new rte_flow ops callbacks to emphasize relation to tunnel
offload API.

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
4 years agoipc: fix spelling in log and comment
Stephen Hemminger [Fri, 16 Oct 2020 00:26:52 +0000 (17:26 -0700)]
ipc: fix spelling in log and comment

Fixes spelling in comment and message about thread error.
Found while looking at checkpatch complaints about "thead"

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
4 years agobuild: replace use of old build macros
Bruce Richardson [Thu, 15 Oct 2020 15:05:54 +0000 (16:05 +0100)]
build: replace use of old build macros

Use the newer macros defined by meson in all DPDK source code, to ensure
there are no errors when the old non-standard macros are removed.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agobuild: standardize component names and defines
Bruce Richardson [Thu, 15 Oct 2020 15:05:53 +0000 (16:05 +0100)]
build: standardize component names and defines

As discussed on the dpdk-dev mailing list[1], we can make some easy
improvements in standardizing the naming of the various components in DPDK,
and their associated feature-enabled macros.

Following this patch, each library will have the name in format,
'librte_<name>.so', and the macro indicating that library is enabled in the
build will have the form 'RTE_LIB_<NAME>'.

Similarly, for libraries, the equivalent name formats and macros are:
'librte_<class>_<name>.so' and 'RTE_<CLASS>_<NAME>', where class is the
device type taken from the relevant driver subdirectory name, i.e. 'net',
'crypto' etc.

To avoid too many changes at once for end applications, the old macro names
will still be provided in the build in this release, but will be removed
subsequently.

[1] http://inbox.dpdk.org/dev/ef7c1a87-79ab-e405-4202-39b7ad6b0c71@solarflare.com/t/#u

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Rosen Xu <rosen.xu@intel.com>
4 years agodevtools: load all drivers in null test
Bruce Richardson [Thu, 15 Oct 2020 15:05:52 +0000 (16:05 +0100)]
devtools: load all drivers in null test

Rather than specifying specific drivers in the driver directory to load, we
can just pass in the whole driver directory to the "-d" EAL flag, causing
all drivers to load. This makes the load of driver independent of any
specific driver names.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
4 years agobuild: remove library name from version map file name
Bruce Richardson [Thu, 15 Oct 2020 15:05:51 +0000 (16:05 +0100)]
build: remove library name from version map file name

Since each version map file is contained in the subdirectory of the library
it refers to, there is no need to include the library name in the filename.
This makes things simpler in case of library renaming.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Rosen Xu <rosen.xu@intel.com>