rte_event(3)
๐ rte_event ๐
okay bestie, today we're getting into rte_event โ yes, that's the whole name, that's the vibe, we're keeping it. This one lives in the rte_eventdev.h header and it's literally the generic event struct that holds all your event attributes for dequeue and enqueue operations. main character struct energy, no cap. ๐
It's defined at line 1676 of rte_eventdev.h, if you're the kind of girl who needs receipts (iconic of you).
โจ SYNOPSIS โจ
#include <rte_eventdev.h>
๐ธ DETAILED DESCRIPTION ๐ธ
So like, the generic rte_event structure is the thing that holds the event attributes for your dequeue and enqueue operation. That's it. That's the whole job. Simple, effective, slaying.
Definition at line 1676 of file rte_eventdev.h. ๐
๐ฆ FIELD DOCUMENTATION ๐ฆ
Every field, one by one, because we do NOT skip parts in this house ๐
uint32_t flow_id
Target flow identifier for the enqueue and dequeue operation. ๐ฏ
For RTE_SCHED_TYPE_ATOMIC, this field is what identifies a flow for atomicity within a queue & priority level โ so events from each individual flow get scheduled to only ONE port at a time. one port, one flow, no sharing, periodt.
This field gets preserved between enqueue and dequeue when a device reports the RTE_EVENT_DEV_CAP_CARRY_FLOW_ID capability. Otherwise? The value is implementation dependent on dequeue, aka it's giving "your mileage may vary" ๐
Definition at line 1682 of file rte_eventdev.h. ๐
uint32_t sub_event_type
Sub-event types based on the event source.
This field IS preserved between enqueue and dequeue. ๐
See also:
RTE_EVENT_TYPE_CPU
Definition at line 1694 of file rte_eventdev.h. ๐
uint32_t event_type
Event type used to classify the event source. (RTE_EVENT_TYPE_*)
This field is preserved between enqueue and dequeue. periodt.
Definition at line 1701 of file rte_eventdev.h. ๐
uint8_t op
The type of event enqueue operation โ new/forward/etc. ๐
Heads up bestie: this field is NOT preserved across an instance, and it's implementation dependent on dequeue. so don't be relying on it, she's fickle.
See also:
RTE_EVENT_OP_NEWRTE_EVENT_OP_FORWARDRTE_EVENT_OP_RELEASE
Definition at line 1706 of file rte_eventdev.h. ๐
uint8_t rsvd
Reserved for future use. โจ (manifesting what's to come)
Should be set to zero when you're initializing event structures.
BUT โ when you're forwarding or releasing existing events that you dequeued from the scheduler, this field can be ignored. so like, chill.
Definition at line 1716 of file rte_eventdev.h. ๐
uint8_t sched_type
Scheduler synchronization type (RTE_SCHED_TYPE_*) associated with flow id on a given event queue for the enqueue and dequeue operation.
This field is used to determine the scheduling type for events sent to queues where RTE_EVENT_QUEUE_CFG_ALL_TYPES is configured. For queues where only a single scheduling type is available, this field must be set to match the configured scheduling type. no wiggle room, she said what she said.
This field is preserved between enqueue and dequeue. ๐
See also:
RTE_SCHED_TYPE_ORDEREDRTE_SCHED_TYPE_ATOMICRTE_SCHED_TYPE_PARALLEL
Definition at line 1724 of file rte_eventdev.h. ๐
uint8_t queue_id
Targeted event queue identifier for the enqueue or dequeue operation. The value must be less than nb_event_queues, which was previously supplied to rte_event_dev_configure(). so like, don't just make numbers up, bestie ๐ญ
This field is preserved between enqueue on dequeue.
Definition at line 1741 of file rte_eventdev.h. ๐
uint8_t priority
Event priority relative to other events in the event queue. The requested priority should be in the range of [RTE_EVENT_DEV_PRIORITY_HIGHEST, RTE_EVENT_DEV_PRIORITY_LOWEST].
The implementation shall normalize the requested priority to a supported priority value. [For devices where the supported priority range is a power-of-2, the normalization will be done via bit-shifting, so only the highest log2(num_priorities) bits will be used by the event device] ๐งฎ
Valid when the device has the RTE_EVENT_DEV_CAP_EVENT_QOS capability, and this field is preserved between enqueue and dequeue โ though with possible loss of precision due to normalization and subsequent de-normalization. (For example, if a device only supports 8 priority levels, only the high 3 bits of this field will be used by that device, and hence only the value of those 3 bits are guaranteed to be preserved between enqueue and dequeue.) โจ the precision loss is real and she's not sorry
Ignored when the device does not support RTE_EVENT_DEV_CAP_EVENT_QOS capability, and it is implementation dependent if this field is preserved between enqueue and dequeue.
Definition at line 1749 of file rte_eventdev.h. ๐
uint8_t impl_opaque
Opaque field for event device use. ๐
An event driver implementation may use this field to hold an implementation specific value to share between dequeue and enqueue operation.
The application must not modify this field. ๐ซ Its value is implementation dependent on dequeue, and must be returned unmodified on enqueue when op type isRTE_EVENT_OP_FORWARDorRTE_EVENT_OP_RELEASE. This field is ignored on events with op typeRTE_EVENT_OP_NEW. so hands off, she's not yours
Definition at line 1773 of file rte_eventdev.h. ๐
uint64_t u64
Opaque 64-bit value. ๐ฎ mysterious, iconic, no further questions
Definition at line 1791 of file rte_eventdev.h. ๐
void* event_ptr
Opaque event pointer. ๐ซถ
Definition at line 1793 of file rte_eventdev.h. ๐
struct rte_mbuf* mbuf
mbuf pointer if the dequeued event is associated with an mbuf. ๐ฆ
Definition at line 1795 of file rte_eventdev.h. ๐
struct rte_event_vector* vec
Event vector pointer. ๐
Definition at line 1797 of file rte_eventdev.h. ๐
๐ AUTHOR ๐
Generated automatically by Doxygen for DPDK from the source code. (yes, a robot wrote this, and honestly? it ate. slay, Doxygen. ๐คโจ)
okay that's the whole page bestie, you're officially an rte_event expert, go forth and enqueue responsibly ๐๐โจ
luv u, bye โ this was DPDK Version 25.11.3, rte_event(3) ๐ฆ
๐ฆ 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