eventdev: introduce crypto adapter enqueue API
authorAkhil Goyal <gakhil@marvell.com>
Thu, 15 Apr 2021 09:13:49 +0000 (14:43 +0530)
committerJerin Jacob <jerinj@marvell.com>
Sat, 17 Apr 2021 16:49:52 +0000 (18:49 +0200)
commitf96a8ebb2729bbac48f5e2e7bb30b050540bc65e
tree4f4e88719c318ffdccc8e1b4989616d55d397bd7
parent808a17b3c1e62efcd3293639f5b1905d1261883d
eventdev: introduce crypto adapter enqueue API

In case an event from a previous stage is required to be forwarded
to a crypto adapter and PMD supports internal event port in crypto
adapter, exposed via capability
RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD, we do not have
a way to check in the API rte_event_enqueue_burst(), whether it is
for crypto adapter or for eth tx adapter.

Hence we need a new API similar to rte_event_eth_tx_adapter_enqueue(),
which can send to a crypto adapter.

Note that RTE_EVENT_TYPE_* cannot be used to make that decision,
as it is meant for event source and not event destination.
And event port designated for crypto adapter is designed to be used
for OP_NEW mode.

Hence, in order to support an event PMD which has an internal event port
in crypto adapter (RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD mode), exposed
via capability RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD,
application should use rte_event_crypto_adapter_enqueue() API to enqueue
events.

When internal port is not available(RTE_EVENT_CRYPTO_ADAPTER_OP_NEW mode),
application can use API rte_event_enqueue_burst() as it was doing earlier,
i.e. retrieve event port used by crypto adapter and bind its event queues
to that port and enqueue events using the API rte_event_enqueue_burst().

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
devtools/libabigail.abignore
doc/guides/prog_guide/event_crypto_adapter.rst
doc/guides/rel_notes/release_21_05.rst
lib/librte_eventdev/eventdev_trace_points.c
lib/librte_eventdev/rte_event_crypto_adapter.h
lib/librte_eventdev/rte_eventdev.c
lib/librte_eventdev/rte_eventdev.h
lib/librte_eventdev/rte_eventdev_trace_fp.h
lib/librte_eventdev/version.map