This series implements the eventdev ABI changes required by the DLB and DLB2 PMDs. This ABI change was announced in the 20.08 release notes [1]. This patch was initially part of the V1 DLB PMD patchset.
The DLB hardware does not conform exactly to the eventdev interface. 1) It has a limit on the number of queues that may be linked to a port. 2) Some ports are further restricted to a maximum of 1 linked queue. 3) It does not (currently) have the ability to carry the flow_id as part of the event (QE) payload. Due to the above, we would like to propose the following enhancements. 1) Add new fields to the rte_event_dev_info struct. These fields allow the device to advertise its capabilities so that applications can take the appropriate actions based on those capabilities. 2) Add a new field to the rte_event_dev_config struct. This field allows the application to specify how many of its ports are limited to a single link, or will be used in single link mode. 3) Replace the dedicated implicit_release_disabled field with a bit field of explicit port capabilities. The implicit_release_disable functionality is assigned to one bit, and a port-is-single-link-only attribute is assigned to another, with the remaining bits available for future assignment. Note that it was requested that we split this app/test changes out from the eventdev ABI changes. As a result, neither of these patches will bujild without the other also being applied. [1] http://mails.dpdk.org/archives/dev/2020-August/177261.html Timothy McDaniel (2): eventdev: implement ABI change eventdev: update app and examples for new eventdev ABI app/test-eventdev/evt_common.h | 11 ++++ app/test-eventdev/test_order_atq.c | 30 +++++++--- app/test-eventdev/test_order_common.c | 1 + app/test-eventdev/test_order_queue.c | 31 +++++++--- app/test/test_eventdev.c | 4 +- drivers/event/dpaa/dpaa_eventdev.c | 3 +- drivers/event/dpaa2/dpaa2_eventdev.c | 5 +- drivers/event/dsw/dsw_evdev.c | 3 +- drivers/event/octeontx/ssovf_evdev.c | 5 +- drivers/event/octeontx2/otx2_evdev.c | 3 +- drivers/event/opdl/opdl_evdev.c | 3 +- drivers/event/skeleton/skeleton_eventdev.c | 5 +- drivers/event/sw/sw_evdev.c | 8 ++- drivers/event/sw/sw_evdev_selftest.c | 6 +- .../eventdev_pipeline/pipeline_worker_generic.c | 6 +- examples/eventdev_pipeline/pipeline_worker_tx.c | 1 + examples/l2fwd-event/l2fwd_event_generic.c | 7 ++- examples/l2fwd-event/l2fwd_event_internal_port.c | 6 +- examples/l3fwd/l3fwd_event_generic.c | 7 ++- examples/l3fwd/l3fwd_event_internal_port.c | 6 +- lib/librte_eventdev/rte_event_eth_tx_adapter.c | 2 +- lib/librte_eventdev/rte_eventdev.c | 66 +++++++++++++++++++--- lib/librte_eventdev/rte_eventdev.h | 51 ++++++++++++++--- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 1 - lib/librte_eventdev/rte_eventdev_trace.h | 7 ++- lib/librte_eventdev/rte_eventdev_version.map | 4 +- 26 files changed, 218 insertions(+), 64 deletions(-) -- 2.6.4