[Patch v5 18/18] net/mana: add function to support RX interrupts

2022-08-26 Thread longli
From: Long Li mana can receive RX interrupts from kernel through RDMA verbs interface. Implement RX interrupts in the driver. Signed-off-by: Long Li --- Change log: v5: New patch added to the series doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/gdma.c | 10 +-- driver

[Patch v5 17/18] net/mana: add function to report queue stats

2022-08-26 Thread longli
From: Long Li Report packet statistics. Signed-off-by: Long Li --- Change log: v5: Fixed calculation of stats packets/bytes/errors by adding them over the queue stats. doc/guides/nics/features/mana.ini | 2 + drivers/net/mana/mana.c | 76 +++ 2 files ch

[Patch v5 16/18] net/mana: add function to start/stop device

2022-08-26 Thread longli
From: Long Li Add support for starting/stopping the device. Signed-off-by: Long Li --- Change log: v2: Use spinlock for memory registration cache. Add prefix mana_ to all function names. drivers/net/mana/mana.c | 70 + 1 file changed, 70 insertions(+)

[Patch v5 15/18] net/mana: add function to send packets

2022-08-26 Thread longli
From: Long Li With all the TX queues created, MANA can send packets over those queues. Signed-off-by: Long Li --- Change log: v2: Rename all camel cases. doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/mana.c | 1 + drivers/net/mana/mana.h | 65 dri

[Patch v5 14/18] net/mana: add function to receive packets

2022-08-26 Thread longli
From: Long Li With all the RX queues created, MANA can use those queues to receive packets. Signed-off-by: Long Li --- Change log: v2: Add mana_ to all function names. Rename a camel case. doc/guides/nics/features/mana.ini | 2 + drivers/net/mana/mana.c | 2 + drivers/net/mana/m

[Patch v5 13/18] net/mana: add function to start/stop RX queues

2022-08-26 Thread longli
From: Long Li MANA allocates device queues through the IB layer when starting RX queues. When device is stopped all the queues are unmapped and freed. Signed-off-by: Long Li --- Change log: v2: Add prefix mana_ to all function names. Remove unused header files. v4: Move defition "uint32_t i" fr

[Patch v5 12/18] net/mana: add function to start/stop TX queues

2022-08-26 Thread longli
From: Long Li MANA allocate device queues through the IB layer when starting TX queues. When device is stopped all the queues are unmapped and freed. Signed-off-by: Long Li --- Change log: v2: Add prefix mana_ to all function names. Remove unused header files. doc/guides/nics/features/mana.in

[Patch v5 11/18] net/mana: implement the hardware layer operations

2022-08-26 Thread longli
From: Long Li The hardware layer of MANA understands the device queue and doorbell formats. Those functions are implemented for use by packet RX/TX code. Signed-off-by: Long Li --- Change log: v2: Remove unused header files. Rename a camel case. v5: Use RTE_BIT32() instead of defining a new BIT

[Patch v5 10/18] net/mana: implement memory registration

2022-08-26 Thread longli
From: Long Li MANA hardware has iommu built-in, that provides hardware safe access to user memory through memory registration. Since memory registration is an expensive operation, this patch implements a two level memory registration cache mechanisum for each queue and for each port. Signed-off-

[Patch v5 09/18] net/mana: add function to configure TX queues

2022-08-26 Thread longli
From: Long Li TX hardware queue is allocated when starting the queue, this is for pre configuration. Signed-off-by: Long Li --- drivers/net/mana/mana.c | 65 + 1 file changed, 65 insertions(+) diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana

[Patch v5 08/18] net/mana: add function to configure RX queues

2022-08-26 Thread longli
From: Long Li RX hardware queue is allocated when starting the queue. This function is for queue configuration pre starting. Signed-off-by: Long Li --- drivers/net/mana/mana.c | 68 + 1 file changed, 68 insertions(+) diff --git a/drivers/net/mana/mana.c

[Patch v5 07/18] net/mana: add function to configure RSS

2022-08-26 Thread longli
From: Long Li Currently this PMD supports RSS configuration when the device is stopped. Configuring RSS in running state will be supported in the future. Signed-off-by: Long Li --- doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/mana.c | 61 +++

[Patch v5 06/18] net/mana: add device info

2022-08-26 Thread longli
From: Long Li Add the function to get device info. Signed-off-by: Long Li --- doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/mana.c | 82 +++ 2 files changed, 83 insertions(+) diff --git a/doc/guides/nics/features/mana.ini b/doc/guides/nics/f

[Patch v5 05/18] net/mana: add function for device removal interrupts

2022-08-26 Thread longli
From: Long Li MANA supports PCI hot plug events. Add this interrupt to DPDK core so its parent PMD can detect device removal during Azure servicing or live migration. Signed-off-by: Long Li --- doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/mana.c | 97 +++

[Patch v5 04/18] net/mana: add link update

2022-08-26 Thread longli
From: Long Li The carrier state is managed by the Azure host. MANA runs as a VF and always reports "up". Signed-off-by: Long Li --- doc/guides/nics/features/mana.ini | 1 + drivers/net/mana/mana.c | 17 + 2 files changed, 18 insertions(+) diff --git a/doc/guides/nic

[Patch v5 03/18] net/mana: add function to report support ptypes

2022-08-26 Thread longli
From: Long Li Report supported protocol types. Signed-off-by: Long Li --- drivers/net/mana/mana.c | 16 drivers/net/mana/mana.h | 2 -- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c index 147ab144d5..45596320

[Patch v5 02/18] net/mana: add device configuration and stop

2022-08-26 Thread longli
From: Long Li MANA defines its memory allocation functions to override IB layer default functions to allocate device queues. This patch adds the code for device configuration and stop. Signed-off-by: Long Li --- Change log: v2: Removed validation for offload settings in mana_dev_configure().

[Patch v5 01/18] net/mana: add basic driver, build environment and doc

2022-08-26 Thread longli
From: Long Li MANA is a PCI device. It uses IB verbs to access hardware through the kernel RDMA layer. This patch introduces build environment and basic device probe functions. Signed-off-by: Long Li --- Change log: v2: Fix typos. Make the driver build only on x86-64 and Linux. Remove unused he

[Patch v5 00/18] Introduce Microsoft Azure Network Adatper (MANA) PMD

2022-08-26 Thread longli
From: Long Li MANA is a network interface card to be used in the Azure cloud environment. MANA provides safe access to user memory through memory registration. It has IOMMU built into the hardware. MANA uses IB verbs and RDMA layer to configure hardware resources. It requires the corresponding R

TCP checksum calculation after GSO

2022-08-26 Thread Rahul Shah
Hi, I see that in the testpmd csum mode (csumonly.c), TCP checksum is not calculated by the code after segmenting the packet. I get TCP checksum error when I capture the segmented packets in the Wireshark. Is this expected or an error. There is a 'update_tcp_header' function which only clears

Re: [PATCH v3 1/3] eal: add lcore poll busyness telemetry

2022-08-26 Thread Mattias Rönnblom
On 2022-08-25 17:28, Kevin Laatz wrote: From: Anatoly Burakov Currently, there is no way to measure lcore poll busyness in a passive way, without any modifications to the application. This patch adds a new EAL API that will be able to passively track core polling busyness. There's no generic

Re: [PATCH v6 7/7] bbdev: remove unnecessary if-check

2022-08-26 Thread Maxime Coquelin
On 8/25/22 20:24, Nicolas Chautru wrote: Code clean up due to if-check not required Signed-off-by: Nicolas Chautru --- lib/bbdev/rte_bbdev_op.h | 15 --- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/lib/bbdev/rte_bbdev_op.h b/lib/bbdev/rte_bbdev_op.h index af

Re: [PATCH v6 6/7] bbdev: add queue related warning and status information

2022-08-26 Thread Maxime Coquelin
On 8/25/22 20:24, Nicolas Chautru wrote: This allows to expose more information with regards to any queue related failure and warning which cannot be supported in existing API. Signed-off-by: Nicolas Chautru --- app/test-bbdev/test_bbdev_perf.c | 2 ++ lib/bbdev/rte_bbdev.c|

RE: about RTL8168 PMD on ARM SoC

2022-08-26 Thread Honnappa Nagarahalli
Hi Xing Wang, Can you submit this code as RFC, it will enable us to provide review comments? Thanks, Honnappa From: 王星 Sent: Thursday, August 25, 2022 9:36 PM To: Honnappa Nagarahalli ; dev@dpdk.org Cc: 陈立 ; 王颢 ; Ruifeng Wang ; nd ; nd ; Hau Subject: 答复: about RTL8168 PMD on

RE: [PATCH v3 1/3] eal: add lcore poll busyness telemetry

2022-08-26 Thread Morten Brørup
> From: Kevin Laatz [mailto:kevin.la...@intel.com] > Sent: Friday, 26 August 2022 17.27 > > On 26/08/2022 09:29, Morten Brørup wrote: > >> From: Jerin Jacob [mailto:jerinjac...@gmail.com] > >> Sent: Friday, 26 August 2022 10.16 > >> > >> On Fri, Aug 26, 2022 at 1:37 PM Bruce Richardson > >> wrote

Re: [PATCH v3 1/3] eal: add lcore poll busyness telemetry

2022-08-26 Thread Kevin Laatz
On 26/08/2022 09:29, Morten Brørup wrote: From: Jerin Jacob [mailto:jerinjac...@gmail.com] Sent: Friday, 26 August 2022 10.16 On Fri, Aug 26, 2022 at 1:37 PM Bruce Richardson wrote: On Fri, Aug 26, 2022 at 12:35:16PM +0530, Jerin Jacob wrote: On Thu, Aug 25, 2022 at 8:56 PM Kevin Laatz wrot

[Bug 1071] Deadlock on memory allocation (rte_memzone_reserve_aligned)

2022-08-26 Thread bugzilla
https://bugs.dpdk.org/show_bug.cgi?id=1071 Bug ID: 1071 Summary: Deadlock on memory allocation (rte_memzone_reserve_aligned) Product: DPDK Version: 21.11 Hardware: x86 OS: Linux Status: UNCONFIRM

[PATCH V2 21/21] net/softnic: update the default device program

2022-08-26 Thread Cristian Dumitrescu
Update the default device program. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/firmware.cli | 51 -- drivers/net/softnic/firmware.spec | 19 +++ drivers/net/softnic/firmware_rx.io | 30 ++ drivers

[PATCH V2 19/21] net/softnic: add pipeline statistics CLI command

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for pipeline statistics counters query. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 204 ++ 1 file changed, 204 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/driver

[PATCH V2 20/21] net/softnic: add pipeline mirroring CLI command

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for pipeline mirroring configuration. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 96 +++ 1 file changed, 96 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/n

[PATCH V2 18/21] net/softnic: add the pipeline meter CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI commands for pipeline meter configuration. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 423 ++ 1 file changed, 423 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/net

[PATCH V2 17/21] net/softnic: add the pipeline register read/write CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI commands for pipeline registers read and write operations. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 127 ++ 1 file changed, 127 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.

[PATCH V2 14/21] net/softnic: add pipeline selector table CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI commands for selector tables group and member management. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 517 ++ 1 file changed, 517 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c

[PATCH V2 16/21] net/softnic: add pipeline commit and abort CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI commands for pipeline table update commit and abort. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 70 +++ 1 file changed, 70 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/dr

[PATCH V2 15/21] net/softnic: add pipeline learner table CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for managing the learner table default entry. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 106 ++ 1 file changed, 106 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/

[PATCH V2 13/21] net/softnic: add pipeline table CLI commands

2022-08-26 Thread Cristian Dumitrescu
Add CLI commands for pipeline table entry management. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 370 ++ 1 file changed, 370 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/

[PATCH V2 12/21] net/softnic: add pipeline build CLI command

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for pipeline build. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 66 +++ 1 file changed, 66 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/net/softnic/rte_eth

[PATCH V2 11/21] net/softnic: add pipeline library build CLI command

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for pipeline shared library build. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 143 ++ 1 file changed, 143 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/net

[PATCH V2 10/21] net/softnic: add pipeline code generation CLI command

2022-08-26 Thread Cristian Dumitrescu
Add CLI command for pipeline code generation. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 57 ++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/dr

[PATCH V2 09/21] net/softnic: remove unused text parsing functions

2022-08-26 Thread Cristian Dumitrescu
Remove the text parsing functions that are not used. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build | 1 - drivers/net/softnic/parser.c | 523 -- drivers/net/softnic/parser.h | 68 ---

[PATCH V2 08/21] net/softnic: remove the list of Ethernet devices

2022-08-26 Thread Cristian Dumitrescu
The list of Ethernet devices within this driver is redundant, as the DPDK global list of Ethernet devices can be used instead. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build | 1 - drivers/net/softnic/rte_eth_softnic.c

[PATCH V2 07/21] net/softnic: replace the legacy pipeline with the SWX pipeline

2022-08-26 Thread Cristian Dumitrescu
Replace the legacy pipeline support with support for the SWX pipeline. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build |1 - drivers/net/softnic/rte_eth_softnic.c |6 - drivers/net/softnic/rte_eth_softnic_action.c

[PATCH V2 06/21] net/softnic: remove the legacy pipeline CLI commands

2022-08-26 Thread Cristian Dumitrescu
Remove the legacy pipeline CLI commands. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/rte_eth_softnic_cli.c | 4527 - 1 file changed, 4527 deletions(-) diff --git a/drivers/net/softnic/rte_eth_softnic_cli.c b/drivers/net/softnic/r

[PATCH V2 05/21] net/softnic: remove tap support

2022-08-26 Thread Cristian Dumitrescu
Remove the TUN/TAP device support. The TUN/TAP devices are still supported as virtual Ethernet devices through the TAP Poll Mode Driver. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build | 1 - drivers/net/softnic/rte_eth_softnic

[PATCH V2 04/21] net/softnic: remove cryptodev support

2022-08-26 Thread Cristian Dumitrescu
Remove the cryptographic device API support. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build | 3 +- drivers/net/softnic/rte_eth_softnic.c | 1 - drivers/net/softnic/rte_eth_softnic_cli.c | 171 --

[PATCH V2 03/21] net/softnic: remove the meter support

2022-08-26 Thread Cristian Dumitrescu
Remove the Ethernet device meter API support. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build | 1 - drivers/net/softnic/rte_eth_softnic.c | 16 - .../net/softnic/rte_eth_softnic_internals.h | 117 --- drivers/net/so

[PATCH V2 02/21] net/softnic: remove flow support

2022-08-26 Thread Cristian Dumitrescu
Remove the Ethernet device flow API support. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build|1 - drivers/net/softnic/rte_eth_softnic.c |9 - drivers/net/softnic/rte_eth_softnic_cli.c | 81 - drivers/net/softnic/rte

[PATCH V2 00/21] net/softnic: replace the legacy pipeline with SWX pipeline

2022-08-26 Thread Cristian Dumitrescu
The legacy pipeline API is soon going to be marked for deprecation, hence the Soft NIC driver is updated to support the new SWX pipeline type. The SWX pipeline has better encapsulation than the legacy pipeline, mainly due to P4 language alignment, which results in most of the functionality being s

[PATCH V2 01/21] net/softnic: remove the traffic manager support

2022-08-26 Thread Cristian Dumitrescu
Remove the Ethernet device traffic manager API support. Signed-off-by: Cristian Dumitrescu Signed-off-by: Yogesh Jangra --- drivers/net/softnic/meson.build |3 +- drivers/net/softnic/rte_eth_softnic.c | 170 - drivers/net/softnic/rte_eth_softnic.h | 10 - dr

[PATCH v4 27/27] dev: hide device object

2022-08-26 Thread David Marchand
Make rte_device opaque for non internal users. This will make extending this object possible without breaking the ABI. Some applications may have been dereferencing rte_device objects, mark this object's accessors as stable. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes s

[PATCH v4 26/27] bus/pci: fill bus specific information

2022-08-26 Thread David Marchand
For diagnostic, it may be useful to provide the PCI vendor and device id. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- drivers/bus/pci/bsd/pci.c| 8 drivers/bus/pci/bus_pci_driver.h | 1 + drivers/bus/pci/linux/pci.c | 24 drivers

[PATCH v4 25/27] dev: provide bus specific information

2022-08-26 Thread David Marchand
For diagnostic, it may be useful to provide a description of the device with bus specific information. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v3: - split patch in two, as per Thomas offlist request, --- app/test-pmd/config.c | 2 ++ lib/eal/co

[PATCH v4 24/27] dev: introduce device accessors

2022-08-26 Thread David Marchand
Prepare for making the device object opaque by adding accessors. Update existing "external" users. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v2: - added rte_dev_devargs, - updated testpmd, --- app/proc-info/main.c | 6 +-- app/test-pmd/config

[PATCH v4 23/27] dev: hide driver object

2022-08-26 Thread David Marchand
Make rte_driver opaque for non internal users. This will make extending this object possible without breaking the ABI. Introduce a new driver header and move rte_driver definition. Update drivers and library to use the internal header. Some applications may have been dereferencing rte_driver obje

[PATCH v4 22/27] dev: introduce driver accessors

2022-08-26 Thread David Marchand
Prepare for making the driver object opaque by adding accessors. Update existing "external" users. Internal users may still dereference a rte_driver object. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-pmd/config.c | 2 +- lib/eal/common/eal_common_dev.c | 6

[PATCH v4 21/27] bus: hide bus object

2022-08-26 Thread David Marchand
Make rte_bus opaque for non internal users. This will make extending this object possible without breaking the ABI. Introduce a new driver header and move rte_bus definition and helpers. Update drivers and library to use the internal header. Some applications may have been dereferencing rte_bus o

[PATCH v4 20/27] bus: introduce accessors

2022-08-26 Thread David Marchand
Add helpers to get a rte_bus object details. This will be used externally. Internal users may still dereference a rte_bus object. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v1: - changed approach: only external users are updated, --- app/test-pmd/config.c

[PATCH v4 19/27] bus: move IOVA definition from header

2022-08-26 Thread David Marchand
iova enum definition does not need to be defined as part of the bus API. Move it to rte_eal.h. With this step, rte_eal.h does not depend on rte_bus.h and rte_dev.h. Fix existing code that was relying on these implicit inclusions. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/

[PATCH v4 18/27] bus/vmbus: make driver-only headers private

2022-08-26 Thread David Marchand
The vmbus bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and ma

[PATCH v4 17/27] bus/vdev: make driver-only headers private

2022-08-26 Thread David Marchand
The vdev bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and mac

[PATCH v4 16/27] bus/pci: make driver-only headers private

2022-08-26 Thread David Marchand
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macr

[PATCH v4 15/27] bus/ifpga: make driver-only headers private

2022-08-26 Thread David Marchand
The ifpga bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fi

[PATCH v4 12/27] bus/dpaa: make driver-only headers private

2022-08-26 Thread David Marchand
The dpaa bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup internal structures: - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manip

[PATCH v4 14/27] bus/ifpga: cleanup exported symbols

2022-08-26 Thread David Marchand
Remove unused symbols (exposed only in an internal header which guarantees that no application out there relied on them). Remove rte_ prefix and inline the rest to avoid having to expose them as global symbols for a relatively small added value. Signed-off-by: David Marchand Acked-by: Rosen Xu

[PATCH v4 13/27] bus/fslmc: make driver-only headers private

2022-08-26 Thread David Marchand
The fslmc bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup internal structures: - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro mani

[PATCH v4 11/27] bus/auxiliary: make driver-only headers private

2022-08-26 Thread David Marchand
The auxiliary bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions an

[PATCH v4 10/27] build: export drivers headers

2022-08-26 Thread David Marchand
Same as for device classes, external DPDK users may need to include some bus headers for their out of tree drivers. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- drivers/meson.build | 4 1 file changed, 4 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build

[PATCH v4 08/27] eal: deprecate RTE_FUNC_PTR_* macros

2022-08-26 Thread David Marchand
Those macros have no real value and are easily replaced with a simple if() block. Existing users have been converted using a new cocci script. Deprecate them. Signed-off-by: David Marchand --- devtools/cocci/func_or_ret.cocci | 12 + doc/guides/rel_notes/deprecation.rst |

[PATCH v4 09/27] devargs: remove dependency on bus header

2022-08-26 Thread David Marchand
We don't need to include rte_bus.h in rte_devargs.h. Only a forward declaration of rte_bus and an inclusion of rte_dev.h are needed. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test/test_vdev.c | 1 + lib/eal/include/rte_devargs.h | 4 +++- 2 files changed, 4 inser

[PATCH v4 07/27] dev: hide debug messages in device iterator

2022-08-26 Thread David Marchand
For any bus that does not support device iteration, rte_dev_iterator_init both returned an error code and logged an error message. An application (like testpmd) that only wants to list devices, would have no choice but to inspect a bus object to avoid spewing error logs. Make those log messages de

[PATCH v4 06/27] examples/ethtool: prefer device name

2022-08-26 Thread David Marchand
Rely on the generic device name rather than restrict to only supporting PCI devices. Signed-off-by: David Marchand --- examples/ethtool/lib/rte_ethtool.c | 17 ++--- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/examples/ethtool/lib/rte_ethtool.c b/examples/ethtool/

[PATCH v4 05/27] kni: stop populating PCI info in examples

2022-08-26 Thread David Marchand
addr and id fields are deprecated and are not used in the kni library. Stop populating them in the in-tree examples. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test/test_kni.c| 30 -- examples/ip_pipeline/kni.c | 10 -- 2 files c

[PATCH v4 04/27] app/testpmd: drop PCI register commands

2022-08-26 Thread David Marchand
Those commands date back to the early stages of DPDK when only PCI devices were supported. At the time, developers may have used those commands to help in debugging their buggy^Wwork in progress drivers. Removing them, we can drop the dependency on the PCI bus and library and make testpmd bus agno

[PATCH v4 03/27] raw/ifpga: remove PCI bus accessor

2022-08-26 Thread David Marchand
There is no in-tree user for this accessor that returns the PCI bus object. On the other hand, a bus object can be retrieved by name using rte_bus_find_by_name. We can remove this driver specific API. Signed-off-by: David Marchand Acked-by: Rosen Xu --- Changes since RFC v2: - updated release no

[PATCH v4 02/27] common/mlx5: rework check on driver registration

2022-08-26 Thread David Marchand
Rely on a local flag rather than dereference a bus object. This will help next commits. Signed-off-by: David Marchand --- drivers/common/mlx5/linux/mlx5_common_auxiliary.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/linux/mlx5_common_auxilia

[PATCH v4 01/27] devtools: forbid inclusions of driver only headers

2022-08-26 Thread David Marchand
Let's be good citizens and enforce not using driver only headers in our own examples. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- devtools/checkpatches.sh | 8 1 file changed, 8 insertions(+) diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh index 1edc5

[PATCH v4 00/27] Bus and device cleanup for 22.11

2022-08-26 Thread David Marchand
The rte_bus, rte_driver and rte_device objects are part of the public ABI and this has proved to be a problem when needing to extend them. This series hides them, and mark associated driver only API as internal. A good amount of the patches are preparation work on rte_bus.h, rte_dev.h, rte_devargs

Re: The EAL is bloated

2022-08-26 Thread Thomas Monjalon
26/08/2022 13:33, Morten Brørup: > > From: Bruce Richardson [mailto:bruce.richard...@intel.com] > > Sent: Friday, 26 August 2022 12.46 > > > > On Fri, Aug 26, 2022 at 10:58:15AM +0200, Morten Brørup wrote: > > > Dear all, > > > > > > The "Environment Abstraction Layer" is expanding far beyond > >

RE: [PATCH] test/ipsec: fix invalid crypto device failing

2022-08-26 Thread Akhil Goyal
> > From: Jeremy Spewock > > > > ipsec_autotest is now skipped if no compatible crypto devices are found. > > > > Fixes issue where if at least one crypto device was found but no > > compatible crypto devices for the ipsec_autotest test case are present > > the case would fail with no error messag

Re: [PATCH v6 5/7] bbdev: add new operation for FFT processing

2022-08-26 Thread Maxime Coquelin
On 8/25/22 20:24, Nicolas Chautru wrote: Extension of bbdev operation to support FFT based operations. Signed-off-by: Nicolas Chautru Acked-by: Hemant Agrawal --- doc/guides/prog_guide/bbdev.rst | 130 +++ lib/bbdev/rte_bbdev.c | 10 ++- lib/bb

RE: [dpdk-dev v1] crypto/qat: Enable OpenSSL legacy provider in session

2022-08-26 Thread Akhil Goyal
> > Some cryptographic algorithms such as MD and DES are now considered > > legacy > > and not enabled by default in OpenSSL 3.0. Load up lagacy provider as MD5 > > DES are needed in QAT session pre-computes and secure session creation. > > > > Fixes: 3227bc7138f5 ("crypto/qat: use intel-ipsec-mb f

Re: [PATCH v6 4/7] drivers/baseband: update PMDs to expose queue per operation

2022-08-26 Thread Maxime Coquelin
On 8/25/22 20:24, Nicolas Chautru wrote: Add support in existing bbdev PMDs for the explicit number of queue queues and priority for each operation type configured on the device. Signed-off-by: Nicolas Chautru --- drivers/baseband/acc100/rte_acc100_pmd.c | 29 +---

RE: The EAL is bloated

2022-08-26 Thread Morten Brørup
> From: Bruce Richardson [mailto:bruce.richard...@intel.com] > Sent: Friday, 26 August 2022 12.46 > > On Fri, Aug 26, 2022 at 10:58:15AM +0200, Morten Brørup wrote: > > Dear all, > > > > The "Environment Abstraction Layer" is expanding far beyond > its > > purpose... > > > > It not only includes

[PATCH V2 7/7] examples/pipeline: add CLI commands for direct meters

2022-08-26 Thread Cristian Dumitrescu
Add the CLI command support for managing direct meters. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/cli.c | 414 --- examples/pipeline/examples/meter.cli | 2 +- 2 files changed, 309 insertions(+), 107 deletions(-) diff --git a/examples/pipeli

[PATCH V2 6/7] examples/pipeline: add CLI commands for direct registers

2022-08-26 Thread Cristian Dumitrescu
Add the CLI command support for reading/writing direct registers. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/cli.c | 228 +--- 1 file changed, 192 insertions(+), 36 deletions(-) diff --git a/examples/pipeline/cli.c b/examples/pipeline/cli.c inde

[PATCH V2 5/7] pipeline: support direct meters on the control path

2022-08-26 Thread Cristian Dumitrescu
Add pipeline control path API to manage direct meters. These meters are identified by a table key, whose entry ID is used as the index into the meter array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_ctl.h | 81 + lib/pipeline/rte_swx_pipelin

[PATCH V2 4/7] pipeline: support direct registers on the control path

2022-08-26 Thread Cristian Dumitrescu
Add pipeline control path API to read/write direct registers. These registers are identified by a table key, whose entry ID is used as the index into the register array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_ctl.h | 52 lib/pipeline/rte_swx_pipeline.c | 214 +

[PATCH V2 3/7] pipeline: add table entry ID read instruction

2022-08-26 Thread Cristian Dumitrescu
Add the entry ID instruction that reads the entry ID of the latest table lookup operation from the pipeline into the meta-data. The entry ID is then used by the register and meter instructions as the index into the register or meter array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_

[PATCH V2 2/7] table: add entry ID for learner tables

2022-08-26 Thread Cristian Dumitrescu
Add support for unique ID for each learner table entry. The entry ID is retrieved as part of the learner table lookup operation and is saved by the pipeline for later use. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 8 lib/table/rte_swx_table_learner.c |

[PATCH V2 1/7] table: add entry ID for regular tables

2022-08-26 Thread Cristian Dumitrescu
Add support for unique ID for each table entry. The entry ID is retrieved as part of the table lookup operation and is saved by the pipeline for later use. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 9 + lib/pipeline/rte_swx_pipeline_internal.h |

[PATCH V2 0/7] pipeline: support direct registers and meters

2022-08-26 Thread Cristian Dumitrescu
This patch introduces support for direct registers and meters. The difference between indirect (indexed) and direct registers and meters is explained below [1][2][3]. 1. Indirect (indexed) registers and meters. The index into an array of registers or meters used on the data path is typically read

Re: The EAL is bloated

2022-08-26 Thread Bruce Richardson
On Fri, Aug 26, 2022 at 10:58:15AM +0200, Morten Brørup wrote: > Dear all, > > The "Environment Abstraction Layer" is expanding far beyond its > purpose... > > It not only includes abstractions for the underlying CPU Arch and O/S, > but also a bunch of generic utility functions. In an ideal worl

[PATCH 3/7] pipeline: add table entry ID read instruction

2022-08-26 Thread Cristian Dumitrescu
Add the entry ID instruction that reads the entry ID of the latest table lookup operation from the pipeline into the meta-data. The entry ID is then used by the register and meter instructions as the index into the register or meter array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_

[PATCH 7/7] examples/pipeline: add CLI commands for direct meters

2022-08-26 Thread Cristian Dumitrescu
Add the CLI command support for managing direct meters. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/cli.c | 414 --- examples/pipeline/examples/meter.cli | 2 +- 2 files changed, 309 insertions(+), 107 deletions(-) diff --git a/examples/pipeli

[PATCH 6/7] examples/pipeline: add CLI commands for direct registers

2022-08-26 Thread Cristian Dumitrescu
Add the CLI command support for reading/writing direct registers. Signed-off-by: Cristian Dumitrescu --- examples/pipeline/cli.c | 228 +--- 1 file changed, 192 insertions(+), 36 deletions(-) diff --git a/examples/pipeline/cli.c b/examples/pipeline/cli.c inde

[PATCH 5/7] pipeline: support direct meters on the control path

2022-08-26 Thread Cristian Dumitrescu
Add pipeline control path API to manage direct meters. These meters are identified by a table key, whose entry ID is used as the index into the meter array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_ctl.h | 81 + lib/pipeline/rte_swx_pipelin

[PATCH 4/7] pipeline: support direct registers on the control path

2022-08-26 Thread Cristian Dumitrescu
Add pipeline control path API to read/write direct registers. These registers are identified by a table key, whose entry ID is used as the index into the register array. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_ctl.h | 52 lib/pipeline/rte_swx_pipeline.c | 214 +

[PATCH 2/7] table: add entry ID for learner tables

2022-08-26 Thread Cristian Dumitrescu
Add support for unique ID for each learner table entry. The entry ID is retrieved as part of the learner table lookup operation and is saved by the pipeline for later use. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 8 lib/table/rte_swx_table_learner.c |

[PATCH 1/7] table: add entry ID for regular tables

2022-08-26 Thread Cristian Dumitrescu
Add support for unique ID for each table entry. The entry ID is retrieved as part of the table lookup operation and is saved by the pipeline for later use. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 9 + lib/pipeline/rte_swx_pipeline_internal.h |

[PATCH 0/7] pipeline: support direct registers and meters

2022-08-26 Thread Cristian Dumitrescu
This patch introduces support for direct registers and meters. The difference between indirect (indexed) and direct registers and meters is explained below [1][2][3]. 1. Indirect (indexed) registers and meters. The index into an array of registers or meters used on the data path is typically read

  1   2   >