This patch introduces new api for retrieving event port id of eth rx adapter.
Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com> --- lib/eventdev/rte_event_eth_rx_adapter.c | 20 ++++++++++++++++++++ lib/eventdev/rte_event_eth_rx_adapter.h | 20 ++++++++++++++++++++ lib/eventdev/version.map | 1 + 3 files changed, 41 insertions(+) diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index 809416d9b7..fca2e38690 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -3119,6 +3119,26 @@ rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id) return rx_adapter->service_inited ? 0 : -ESRCH; } +int +rte_event_eth_rx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id) +{ + struct event_eth_rx_adapter *rx_adapter; + + if (rxa_memzone_lookup()) + return -ENOMEM; + + RTE_EVENT_ETH_RX_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); + + rx_adapter = rxa_id_to_adapter(id); + if (rx_adapter == NULL || event_port_id == NULL) + return -EINVAL; + + if (rx_adapter->service_inited) + *event_port_id = rx_adapter->event_port_id; + + return rx_adapter->service_inited ? 0 : -ESRCH; +} + int rte_event_eth_rx_adapter_cb_register(uint8_t id, uint16_t eth_dev_id, diff --git a/lib/eventdev/rte_event_eth_rx_adapter.h b/lib/eventdev/rte_event_eth_rx_adapter.h index 9546d792e9..1364eafe38 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.h +++ b/lib/eventdev/rte_event_eth_rx_adapter.h @@ -37,6 +37,7 @@ * - rte_event_eth_rx_adapter_queue_conf_get() * - rte_event_eth_rx_adapter_queue_stats_get() * - rte_event_eth_rx_adapter_queue_stats_reset() + * - rte_event_eth_rx_adapter_event_port_get() * * The application creates an ethernet to event adapter using * rte_event_eth_rx_adapter_create_ext() or rte_event_eth_rx_adapter_create() @@ -684,6 +685,25 @@ rte_event_eth_rx_adapter_queue_stats_reset(uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id); +/** + * Retrieve the event port ID of an adapter. If the adapter doesn't use + * a rte_service function, this function returns -ESRCH. + * + * @param id + * Adapter identifier. + * + * @param [out] event_port_id + * A pointer to a uint32_t, to be filled in with the port id. + * + * @return + * - 0: Success + * - <0: Error code on failure, if the adapter doesn't use a rte_service + * function, this function returns -ESRCH. + */ +__rte_experimental +int +rte_event_eth_rx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id); + #ifdef __cplusplus } #endif diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index ade1f1182e..91d2b5723b 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -102,6 +102,7 @@ EXPERIMENTAL { # added in 21.11 rte_event_eth_rx_adapter_create_with_params; + rte_event_eth_rx_adapter_event_port_get; rte_event_eth_rx_adapter_queue_conf_get; rte_event_eth_rx_adapter_queue_stats_get; rte_event_eth_rx_adapter_queue_stats_reset; -- 2.25.1