rte_event_..._adapter.h(3)
πΈ rte_event_eth_rx_adapter.h πΈ
okay bestie, buckle up π you've landed in the rte_event_eth_rx_adapter.h manual page (section 3, Library Functions Manual), and it's giving very iconic eventdev energy. this is part 1 of 3 so don't go anywhere, there's more coming π
β¨ NAME β¨
rte_event_eth_rx_adapter.h β literally the whole header, girlie π
π¦ SYNOPSIS π¦
so first, the include vibe:
#include <stdint.h>
#include <rte_compat.h>
#include <rte_service.h>
#include 'rte_eventdev.h'
π Data Structures
struct rte_event_eth_rx_adapter_confstruct rte_event_eth_rx_adapter_queue_confstruct rte_event_eth_rx_adapter_queue_statsstruct rte_event_eth_rx_adapter_statsstruct rte_event_eth_rx_adapter_vector_limitsstruct rte_event_eth_rx_adapter_paramsstruct rte_event_eth_rx_adapter_runtime_params
π Macros
#define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID 0x1
#define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR 0x2
π Typedefs
typedef int(* rte_event_eth_rx_adapter_conf_cb) (uint8_t id, uint8_t
dev_id, struct rte_event_eth_rx_adapter_conf *conf, void *arg)
typedef uint16_t(* rte_event_eth_rx_adapter_cb_fn) (uint16_t eth_dev_id,
uint16_t queue_id, uint32_t enqueue_buf_size, uint32_t
enqueue_buf_count, struct rte_event *ev, uint16_t nb_event, void
*cb_arg, uint16_t *nb_dropped)
π Functions
int rte_event_eth_rx_adapter_create_ext (uint8_t id, uint8_t dev_id,
rte_event_eth_rx_adapter_conf_cb conf_cb, void *conf_arg)
int rte_event_eth_rx_adapter_create (uint8_t id, uint8_t dev_id, struct
rte_event_port_conf *port_config)
int rte_event_eth_rx_adapter_create_with_params (uint8_t id, uint8_t
dev_id, struct rte_event_port_conf *port_config, struct
rte_event_eth_rx_adapter_params *rxa_params)
__rte_experimental int rte_event_eth_rx_adapter_create_ext_with_params
(uint8_t id, uint8_t dev_id, rte_event_eth_rx_adapter_conf_cb
conf_cb, void *conf_arg, struct rte_event_eth_rx_adapter_params
*rxa_params)
int rte_event_eth_rx_adapter_free (uint8_t id)
int rte_event_eth_rx_adapter_queue_add (uint8_t id, uint16_t eth_dev_id,
int32_t rx_queue_id, const struct
rte_event_eth_rx_adapter_queue_conf *conf)
__rte_experimental int rte_event_eth_rx_adapter_queues_add (uint8_t id,
uint16_t eth_dev_id, int32_t rx_queue_id[], const struct
rte_event_eth_rx_adapter_queue_conf conf[], uint16_t nb_rx_queues)
int rte_event_eth_rx_adapter_queue_del (uint8_t id, uint16_t eth_dev_id,
int32_t rx_queue_id)
int rte_event_eth_rx_adapter_start (uint8_t id)
int rte_event_eth_rx_adapter_stop (uint8_t id)
int rte_event_eth_rx_adapter_stats_get (uint8_t id, struct
rte_event_eth_rx_adapter_stats *stats)
int rte_event_eth_rx_adapter_stats_reset (uint8_t id)
int rte_event_eth_rx_adapter_service_id_get (uint8_t id, uint32_t
*service_id)
int rte_event_eth_rx_adapter_cb_register (uint8_t id, uint16_t
eth_dev_id, rte_event_eth_rx_adapter_cb_fn cb_fn, void *cb_arg)
int rte_event_eth_rx_adapter_vector_limits_get (uint8_t dev_id, uint16_t
eth_port_id, struct rte_event_eth_rx_adapter_vector_limits *limits)
int rte_event_eth_rx_adapter_queue_conf_get (uint8_t id, uint16_t
eth_dev_id, uint16_t rx_queue_id, struct
rte_event_eth_rx_adapter_queue_conf *queue_conf)
int rte_event_eth_rx_adapter_queue_stats_get (uint8_t id, uint16_t
eth_dev_id, uint16_t rx_queue_id, struct
rte_event_eth_rx_adapter_queue_stats *stats)
int rte_event_eth_rx_adapter_queue_stats_reset (uint8_t id, uint16_t
eth_dev_id, uint16_t rx_queue_id)
int rte_event_eth_rx_adapter_event_port_get (uint8_t id, uint8_t
*event_port_id)
int rte_event_eth_rx_adapter_instance_get (uint16_t eth_dev_id, uint16_t
rx_queue_id, uint8_t *rxa_inst_id)
__rte_experimental int rte_event_eth_rx_adapter_runtime_params_init
(struct rte_event_eth_rx_adapter_runtime_params *params)
__rte_experimental int rte_event_eth_rx_adapter_runtime_params_set
(uint8_t id, struct rte_event_eth_rx_adapter_runtime_params *params)
__rte_experimental int rte_event_eth_rx_adapter_runtime_params_get
(uint8_t id, struct rte_event_eth_rx_adapter_runtime_params *params)
π§ Detailed Description π§
RTE Event Ethernet Rx Adapter
okay so picture this: an eventdev-based packet processing application is enqueuing and dequeuing mbufs to and from the event device. the way that packets flow from the ethernet device over to the event device can happen via either HW or SW mechanisms, depending on the platform and on the particular glow-up combo of ethernet device + event device you've got going on. the event ethernet Rx adapter is the baddie that provides common APIs to configure that packet flow from ethernet devices to event devices across both of those transfer mechanisms β¨
the adapter uses a EAL service core function for SW based packet transfer, and it uses the eventdev PMD functions to configure HW based packet transfer between the ethernet device and the event device. two paths, one slay π
the ethernet Rx event adapter's functions are β and yes, we're listing every single one because nobody gets left behind:
rte_event_eth_rx_adapter_create_ext()rte_event_eth_rx_adapter_create()rte_event_eth_rx_adapter_create_with_params()rte_event_eth_rx_adapter_create_ext_with_params()rte_event_eth_rx_adapter_free()rte_event_eth_rx_adapter_queue_add()rte_event_eth_rx_adapter_queue_del()rte_event_eth_rx_adapter_start()rte_event_eth_rx_adapter_stop()rte_event_eth_rx_adapter_stats_get()rte_event_eth_rx_adapter_stats_reset()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()rte_event_eth_rx_adapter_instance_get()rte_event_eth_rx_adapter_runtime_params_get()rte_event_eth_rx_adapter_runtime_params_init()rte_event_eth_rx_adapter_runtime_params_set()
so the application creates an ethernet-to-event adapter using one of these girlies: rte_event_eth_rx_adapter_create_ext(), or rte_event_eth_rx_adapter_create(), or rte_event_eth_rx_adapter_create_with_params(), or rte_event_eth_rx_adapter_create_ext_with_params() functions.
the adapter needs to know which ethernet rx queues to poll for mbufs, plus the event device parameters such as the event queue identifier, event priority, and scheduling type that it should use when constructing events. that's literally what rte_event_eth_rx_adapter_queue_add() is for, bestie π«Ά
the servicing weight parameter in the rte_event_eth_rx_adapter_queue_conf applies when the Rx adapter uses a service core function β its whole purpose is giving the application control over how often the ethernet device receive queues get polled. like, you might want to poll higher priority queues more frequently without completely starving the lower priority queues, y'know? balance is key π
and here's the important part: if this parameter is zero and the receive interrupt is enabled when configuring the device, the receive queue is interrupt driven. otherwise, the queue gets assigned a servicing weight of one.
the application can start and stop the adapter with rte_event_eth_rx_adapter_start() and rte_event_eth_rx_adapter_stop(). if the adapter uses an rte_service function, then the application is also required to assign a core to the service function and control that service core using the rte_service APIs. in that case, rte_event_eth_rx_adapter_service_id_get() is the function you call to retrieve the service function ID of the adapter π
for SW based packet transfers β that's when RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT is not set in the adapter's capabilities flags for a particular ethernet device β the service function temporarily enqueues events into an event buffer before batch enqueuing them to the event device. if that buffer fills all the way up, the service function stops dequeuing packets from the ethernet device. so yeah, that's a real thing to watch for π
the application might want to monitor the buffer fill level and tell the service function to selectively buffer events. it might also use some other criteria to decide which packets should enter the event device even when the buffer fill level is low, or it might want to enqueue packets to an internal event port. rte_event_eth_rx_adapter_cb_register() is the function that lets the application register a callback selecting which packets the SW adapter enqueues to the event device. and because the callback interface is event based, that callback can also modify the event data if it needs to. flexible queen π
Definition in file rte_event_eth_rx_adapter.h.
π Macro Definition Documentation π
π #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID 0x1
this flag says the flow identifier is valid β
See also: rte_event_eth_rx_adapter_queue_conf::rx_queue_flags
Definition at line 104 of file rte_event_eth_rx_adapter.h.
π #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR 0x2
this flag says the mbufs arriving on the queue need to be vectorized β‘
See also: rte_event_eth_rx_adapter_queue_conf::rx_queue_flags
Definition at line 108 of file rte_event_eth_rx_adapter.h.
β¨ Typedef Documentation β¨
π rte_event_eth_rx_adapter_conf_cb
typedef int(* rte_event_eth_rx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
struct rte_event_eth_rx_adapter_conf *conf, void *arg)
Okay so bestie, this is the function type used for the adapter configuration callback. This callback is literally there to fill in members of the struct rte_event_eth_rx_adapter_conf, and it gets invoked when creating a SW service for packet transfer from ethdev queues to the event device. That SW service is created inside the rte_event_eth_rx_adapter_queue_add() function if SW based packet transfers from ethdev queues to the event device are required. No cap.
Parameters
idβ Adapter identifier. iconic little id tbhdev_idβ Event device identifier. the event device's main character numberconfβ Structure that needs to be populated by this callback. you fill it in, bestieargβ Argument to the callback. This is the same as theconf_argpassed to therte_event_eth_rx_adapter_create_ext(). same energy, same arg
Definition at line 151 of file rte_event_eth_rx_adapter.h.
π¦ rte_event_eth_rx_adapter_cb_fn
typedef uint16_t(* rte_event_eth_rx_adapter_cb_fn) (uint16_t eth_dev_id,
uint16_t queue_id, uint32_t enqueue_buf_size, uint32_t
enqueue_buf_count, struct rte_event *ev, uint16_t nb_event, void
*cb_arg, uint16_t *nb_dropped)
This callback function is invoked by the SW adapter before it continues to process events. The callback is passed the size of the enqueue buffer in the SW adapter and the occupancy of the buffer. The callback can use these values to decide which events are enqueued to the event device by the SW adapter. The callback may also enqueue events internally using its own event port. The SW adapter populates the event information based on the Rx queue configuration in the adapter. The callback can modify this event information for the events to be enqueued by the SW adapter. Periodt.
The callback return value is the number of events from the beginning of the event array that are to be enqueued by the SW adapter. It is the callback's responsibility to arrange these events at the beginning of the array, if these events are not contiguous in the original array. The nb_dropped parameter is a pointer to the number of events dropped by the callback, this number is used by the adapter to indicate the number of dropped packets as part of its statistics. so like, don't forget to set it, fr fr
Parameters
eth_dev_idβ Port identifier of the Ethernet device. eth port go brrrqueue_idβ Receive queue index. rx queue vibesenqueue_buf_sizeβ Total enqueue buffer size. the whole capacityenqueue_buf_countβ Event count in enqueue buffer. how full it is rnevβ Event array. the event lineupnb_eventβ Event array length. how many events we're talking aboutcb_argβ Callback argument. your lil helper argnb_droppedβ Packets dropped by callback. rip dropped packets
Returns
- The number of events to be enqueued by the SW adapter. slay
Definition at line 373 of file rte_event_eth_rx_adapter.h.
π₯ Function Documentation π₯
π rte_event_eth_rx_adapter_create_ext
int rte_event_eth_rx_adapter_create_ext (uint8_t id, uint8_t dev_id,
rte_event_eth_rx_adapter_conf_cb conf_cb, void * conf_arg)
Create a new ethernet Rx event adapter with the specified identifier. new adapter, who dis?
Parameters
idβ The identifier of the ethernet Rx event adapter. her namedev_idβ The identifier of the device to configure. the device getting the glow-upconf_cbβ Callback function that fills in members of a structrte_event_eth_rx_adapter_confstruct passed into it. you hand it the struct, it fills it inconf_argβ Argument that is passed to theconf_cbfunction. passed straight through
Returns
0: Success ate<0: Error code on failure not the vibe
π
rte_event_eth_rx_adapter_create
int rte_event_eth_rx_adapter_create (uint8_t id, uint8_t dev_id, struct
rte_event_port_conf * port_config)
Create a new ethernet Rx event adapter with the specified identifier. This function uses an internal configuration function that creates an event port. This default function reconfigures the event device with an additional event port and setup the event port using the port_config parameter passed into this function. In case the application needs more control in configuration of the service, it should use the rte_event_eth_rx_adapter_create_ext() version. iykyk, ext gives you more control
When this API is used for creating adapter instance, rte_event_dev_config::nb_event_ports is automatically incremented, and event device is reconfigured with additional event port during service initialization. This event device reconfigure logic also increments the rte_event_dev_config::nb_single_link_event_port_queues parameter if the adapter event port config is of type RTE_EVENT_PORT_CFG_SINGLE_LINK. it's giving automatic setup energy
Application no longer needs to account for rte_event_dev_config::nb_event_ports and rte_event_dev_config::nb_single_link_event_port_queues parameters required for eth Rx adapter in the event device configuration when the adapter is created with this API. less math for you, bestie
Parameters
idβ The identifier of the ethernet Rx event adapter. id checkdev_idβ The identifier of the device to configure. device id, obviouslyport_configβ Argument of typerte_event_port_confthat is passed to theconf_cbfunction. port config goes in, callback gets it
Returns
0: Success we love a success<0: Error code on failure uh oh
πΈ rte_event_eth_rx_adapter_create_with_params
int rte_event_eth_rx_adapter_create_with_params (uint8_t id, uint8_t dev_id,
struct rte_event_port_conf * port_config, struct
rte_event_eth_rx_adapter_params * rxa_params)
This is a variant of rte_event_eth_rx_adapter_create() with additional adapter params specified in struct rte_event_eth_rx_adapter_params. same thing, but with extra params bestie
Parameters
idβ The identifier of the ethernet Rx event adapter. adapter iddev_idβ The identifier of the event device to configure. event device idport_configβ Argument of typerte_event_port_confthat is passed to theconf_cbfunction. port configrxa_paramsβ Pointer to structrte_event_eth_rx_adapter_params. In case ofNULL, default values are used. NULL means defaults, no cap
Returns
0: Success slay<0: Error code on failure sad
π§ rte_event_eth_rx_adapter_create_ext_with_params
__rte_experimental int rte_event_eth_rx_adapter_create_ext_with_params
(uint8_t id, uint8_t dev_id, rte_event_eth_rx_adapter_conf_cb conf_cb,
void * conf_arg, struct rte_event_eth_rx_adapter_params * rxa_params)
This is a variant of rte_event_eth_rx_adapter_create_ext() with additional adapter params specified in struct rte_event_eth_rx_adapter_params. notice the __rte_experimental, bestie β she's fancy
Parameters
idβ The identifier of the ethernet Rx event adapter. adapter iddev_idβ The identifier of the event device to configure. device idconf_cbβ Callback function that fills in members of a structrte_event_eth_rx_adapter_confstruct passed into it. callback fills the structconf_argβ Argument that is passed to theconf_cbfunction. arg for the callbackrxa_paramsβ Pointer to structrte_event_eth_rx_adapter_params. In case ofNULL, default values are used. NULL = defaults
Returns
0: Success ate<0: Error code on failure not it
π rte_event_eth_rx_adapter_free
int rte_event_eth_rx_adapter_free (uint8_t id)
Free an event adapter. release her, she's done
Parameters
idβ Adapter identifier. the adapter id
Returns
0: Success clean exit<0: Error code on failure, If the adapter still has Rx queues added to it, the function returns-EBUSY. she's busy bestie, remove the Rx queues first
π rte_event_eth_rx_adapter_queue_add
int rte_event_eth_rx_adapter_queue_add (uint8_t id, uint16_t eth_dev_id,
int32_t rx_queue_id, const struct rte_event_eth_rx_adapter_queue_conf *
conf)
Add receive queue to an event adapter. After a queue has been added to the event adapter, the result of the application calling rte_eth_rx_burst(eth_dev_id, rx_queue_id, ..) is undefined. UNDEFINED, bestie β do not do that, I'm serious it's giving "don't touch it after adding" energy
Parameters
idβ Adapter identifier. adapter ideth_dev_idβ Port identifier of Ethernet device. eth port idrx_queue_idβ Ethernet device receive queue index. Ifrx_queue_idis-1, then all Rx queues configured for the device are added. If the ethdev Rx queues can only be connected to a single event queue thenrx_queue_idis required to be-1. one queue, all queues, or forced-1for single event queue
See also: RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ
Parameters
confβ Additional configuration structure of typerte_event_eth_rx_adapter_queue_conf. queue conf goes here
Returns
0: Success, Receive queue added correctly. queue added, slay<0: Error code on failure. failure vibes(-EIO)device reconfiguration and restart error. The adapter reconfigures the event device with an additional port if it is required to use a service function for packet transfer from the ethernet device to the event device. If the device had been started before this call, this error code indicates an error in restart following an error in reconfiguration, i.e., a combination of the two error codes. reconfig + restart went sideways, it's a double error situation
π rte_event_eth_rx_adapter_queues_add
__rte_experimental int rte_event_eth_rx_adapter_queues_add (uint8_t id,
uint16_t eth_dev_id, int32_t rx_queue_id[], const struct
rte_event_eth_rx_adapter_queue_conf conf[], uint16_t nb_rx_queues)
Add multiple receive queues to an event adapter. plural queues, plural slay also __rte_experimental, so bestie be aware
Parameters
idβ Adapter identifier. adapter ideth_dev_idβ Port identifier of Ethernet device. eth port idrx_queue_idβ Array of Ethernet device receive queue indices. Ifnb_rx_queuesis0, thenrx_queue_idis ignored. zero queues means this array gets ignoredconfβ Array of additional configuration structures of typerte_event_eth_rx_adapter_queue_conf.conf[i]is used forrx_queue_id[i]. Ifnb_rx_queuesis0, thenconf[0]is used for all Rx queues. pair them up, or useconf[0]for all if zeronb_rx_queuesβ Number of receive queues to add. Ifnb_rx_queuesis0, then all Rx queues configured for the device are added with the same configuration inconf[0]. zero means all queues withconf[0]
See also: RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ
Returns
0: Success, Receive queues added correctly. queues added, periodt<0: Error code on failure. it happens
π rte_event_eth_rx_adapter_queue_del
int rte_event_eth_rx_adapter_queue_del (uint8_t id, uint16_t eth_dev_id,
int32_t rx_queue_id)
Delete receive queue from an event adapter. bye bye queue
Parameters
idβ Adapter identifier. adapter ideth_dev_idβ Port identifier of Ethernet device. eth port idrx_queue_idβ Ethernet device receive queue index. Ifrx_queue_idis-1, then all Rx queues configured for the device are deleted. If the ethdev Rx queues can only be connected to a single event queue thenrx_queue_idis required to be-1.-1deletes all, and single event queue setups require-1
See also: RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ
Returns
0: Success, Receive queue deleted correctly. deleted, clean<0: Error code on failure. couldn't delete, sad
β¨ rte_event_eth_rx_adapter_start
int rte_event_eth_rx_adapter_start (uint8_t id)
Start ethernet Rx event adapter. let's goooo
Parameters
idβ Adapter identifier. adapter id
Returns
0: Success, Adapter started correctly. started, iconic<0: Error code on failure. didn't start
Note: The eventdev to which theevent_eth_rx_adapteris connected needs to be started before callingrte_event_eth_rx_adapter_start(). start the eventdev FIRST, bestie, order matters
π¦ rte_event_eth_rx_adapter_stop
int rte_event_eth_rx_adapter_stop (uint8_t id)
Stop ethernet Rx event adapter. okay she's done for now
Parameters
idβ Adapter identifier. adapter id
Returns
0: Success, Adapter started correctly. yes, it says "started" here too, that's what the original says, no cap<0: Error code on failure. stopping didn't go as planned
π rte_event_eth_rx_adapter_stats_get
int rte_event_eth_rx_adapter_stats_get (uint8_t id, struct
rte_event_eth_rx_adapter_stats * stats)
Retrieve statistics for an adapter. stats time, bestie
Parameters
idβ Adapter identifier. adapter idstatsβ A pointer to structure used to retrieve statistics for an adapter. your stats struct goes here
Returns
0: Success, retrieved successfully. stats acquired<0: Error code on failure. no stats for you
β¨ int rte_event_eth_rx_adapter_stats_reset (uint8_t id)
Okay so this one resets the stats for an adapter. Like, clean slate energy. π§Όβ¨
Parameters
idβ Adapter identifier. Bestie, you gotta tell it which adapter.
Returns
0: Success, statistics reset successfully. Slay.<0: Error code on failure. π
πΈ int rte_event_eth_rx_adapter_service_id_get (uint8_t id, uint32_t * service_id)
Retrieve the service ID of an adapter. But lowkey if the adapter doesn't use a rte_service function, this function returns -ESRCH. Not me being dramatic, that's just the rules. π
Parameters
idβ Adapter identifier.service_idβ A pointer to auint32_t, to be filled in with the service id.
Returns
0: Success β¨<0: Error code on failure, if the adapter doesn't use arte_servicefunction, this function returns-ESRCH.
π int rte_event_eth_rx_adapter_cb_register (uint8_t id, uint16_t eth_dev_id, rte_event_eth_rx_adapter_cb_fn cb_fn, void * cb_arg)
Register callback to process Rx packets, this is supported for SW based packet transfers. Main character callback energy fr fr. π
See also: rte_event_eth_rx_cb_fn
Parameters
idβ Adapter identifier.eth_dev_idβ Port identifier of Ethernet device.cb_fnβ Callback function.cb_argβ Callback arg.
Returns
0: Success π<0: Error code on failure.
π¦ int rte_event_eth_rx_adapter_vector_limits_get (uint8_t dev_id, uint16_t eth_port_id, struct rte_event_eth_rx_adapter_vector_limits * limits)
Retrieve vector limits for a given event dev and eth dev pair. It's giving "matching vibes only". β¨
See also: rte_event_eth_rx_adapter_vector_limits
Parameters
dev_idβ Event device identifier.eth_port_idβ Port identifier of the ethernet device.limitsβ A pointer torte_event_eth_rx_adapter_vector_limitsstructure that has to be filled.
Returns
0: Success. π<0: Error code on failure.
π int rte_event_eth_rx_adapter_queue_conf_get (uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id, struct rte_event_eth_rx_adapter_queue_conf * queue_conf)
Retrieve Rx queue config information. Like, spill the config tea bestie. π΅
Parameters
idβ Adapter identifier.eth_dev_idβ Port identifier of Ethernet device.rx_queue_idβ Ethernet device receive queue index.queue_confβ Pointer tostruct rte_event_eth_rx_adapter_queue_conf
Returns
0: Success, Receive queue added correctly. Iconic.<0: Error code on failure.
π int rte_event_eth_rx_adapter_queue_stats_get (uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id, struct rte_event_eth_rx_adapter_queue_stats * stats)
Retrieve Rx queue statistics. Numbers? Obsessed. ππ
Parameters
idβ Adapter identifier.eth_dev_idβ Port identifier of Ethernet device.rx_queue_idβ Ethernet device receive queue index.statsβ Pointer tostruct rte_event_eth_rx_adapter_queue_stats
Returns
0: Success, queue buffer stats retrieved. π<0: Error code on failure.
π§ int rte_event_eth_rx_adapter_queue_stats_reset (uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id)
Reset Rx queue statistics. Time to wipe the slate clean, bestie. π§½β¨
Parameters
idβ Adapter identifier.eth_dev_idβ Port identifier of Ethernet device.rx_queue_idβ Ethernet device receive queue index.
Returns
0: Success, queue buffer stats retrieved. (yes, the original says "retrieved" even though it's a reset β not me, that's the manpage π)<0: Error code on failure.
π int rte_event_eth_rx_adapter_event_port_get (uint8_t id, uint8_t * event_port_id)
Retrieve the event port ID of an adapter. If the adapter doesn't use a rte_service function, this function returns -ESRCH. The audacity, honestly. π
Parameters
idβ Adapter identifier.event_port_idβ A pointer to auint8_t, to be filled in with the port id.
Returns
0: Success β¨<0: Error code on failure, if the adapter doesn't use arte_servicefunction, this function returns-ESRCH.
π int rte_event_eth_rx_adapter_instance_get (uint16_t eth_dev_id, uint16_t rx_queue_id, uint8_t * rxa_inst_id)
Get RX adapter instance ID for a RX queue. It's giving "who am I? where do I belong?" π¦
Parameters
eth_dev_idβ Port identifier of Ethernet device.rx_queue_idβ Ethernet device receive queue index.rxa_inst_idβ Pointer to store RX adapter instance identifier. Contains valid Rx adapter instance id when return value is0.
Returns
0: Success π<0: Error code on failure
π§ͺ __rte_experimental int rte_event_eth_rx_adapter_runtime_params_init (struct rte_event_eth_rx_adapter_runtime_params * params)
Initialize the adapter runtime configuration parameters with default values. Experimental, so you know it's spicy. πΆοΈβ¨
Parameters
paramsβ A pointer to structure of typestruct rte_event_eth_rx_adapter_runtime_params
Returns
0: Success π<0: Error code on failure
π§ͺπ
__rte_experimental int rte_event_eth_rx_adapter_runtime_params_set (uint8_t id, struct rte_event_eth_rx_adapter_runtime_params * params)
Set the adapter runtime configuration parameters. You're literally customizing the vibe. π¨
Parameters
idβ Adapter identifierparamsβ A pointer to structure of typestruct rte_event_eth_rx_adapter_runtime_paramswith configuration parameter values. The reserved fields of the structure must be initialized to zero and the valid fields need to be set appropriately. This structure can be initialized usingrte_event_eth_rx_adapter_runtime_params_init()to default values or application may reset this structure and update the required fields.
Returns
0: Success π<0: Error code on failure
π§ͺπ¦ __rte_experimental int rte_event_eth_rx_adapter_runtime_params_get (uint8_t id, struct rte_event_eth_rx_adapter_runtime_params * params)
Get the adapter runtime configuration parameters. Spill the runtime tea. βπ
Parameters
idβ Adapter identifierparamsβ A pointer to structure of typestruct rte_event_eth_rx_adapter_runtime_paramscontaining valid adapter parameters when return value is0.
Returns
0: Success β¨<0: Error code on failure
π Author
Generated automatically by Doxygen for DPDK from the source code. Not me writing this by hand, it's the robot. π€β¨
And that's a wrap on rte_event_..._adapter.h(3) bestie! This was DPDK Version 25.11.3, page rte_event_..._adapter.h(3) β go forth and event-dev slay. π
ππ
π¦ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 Β· BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms