---
name: "rte_event"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_event"
---

# rte\_event(3)

## NAME

rte\_event

## SYNOPSIS

`#include <rte_eventdev.h>`

## Detailed Description

The generic **rte\_event structure to hold the event attributes for dequeue and enqueue operation**

**Definition at line 1672 of file rte\_eventdev.h.**

## Field Documentation

### uint32\_t flow\_id

**Target flow identifier for the enqueue and dequeue operation.**

**For RTE\_SCHED\_TYPE\_ATOMIC, this field is used to identify a flow for atomicity within a queue & priority level, such that events from each individual flow will only be scheduled to one port at a time.**

**This field is 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.**

**Definition at line 1678 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 1690 of file rte\_eventdev.h.**

### uint32\_t event\_type

**Event type to classify the event source. (RTE\_EVENT\_TYPE\_\*)**

**This field is preserved between enqueue and dequeue**

**Definition at line 1697 of file rte\_eventdev.h.**

### uint8\_t op

**The type of event enqueue operation - new/forward/ etc.**

**This field is** *not* **preserved across an instance and is implementation dependent on dequeue.**

**See also**

**RTE\_EVENT\_OP\_NEW**

**RTE\_EVENT\_OP\_FORWARD**

**RTE\_EVENT\_OP\_RELEASE**

**Definition at line 1702 of file rte\_eventdev.h.**

### uint8\_t rsvd

**Reserved for future use.**

**Should be set to zero when initializing event structures.**

**When forwarding or releasing existing events dequeued from the scheduler, this field can be ignored.**

**Definition at line 1712 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.**

**This field is preserved between enqueue and dequeue.**

**See also**

**RTE\_SCHED\_TYPE\_ORDERED**

**RTE\_SCHED\_TYPE\_ATOMIC**

**RTE\_SCHED\_TYPE\_PARALLEL**

**Definition at line 1720 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 rte\_event\_dev\_config::nb\_event\_queues which was previously supplied to rte\_event\_dev\_configure().**

**This field is preserved between enqueue on dequeue.**

**Definition at line 1737 of file rte\_eventdev.h.**

### uint8\_t priority

**Event priority relative to other events in the event queue. The requested priority should in the range of \[RTE\_EVENT\_DEV\_PRIORITY\_HIGHEST, RTE\_EVENT\_DEV\_PRIORITY\_LOWEST\].**

**The implementation shall normalize the requested priority to supported priority value. \[For devices with 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 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.)**

**Ignored when 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 1745 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 is RTE\_EVENT\_OP\_FORWARD or RTE\_EVENT\_OP\_RELEASE. This field is ignored on events with op type RTE\_EVENT\_OP\_NEW.**

**Definition at line 1769 of file rte\_eventdev.h.**

### uint64\_t u64

**Opaque 64-bit value**

**Definition at line 1787 of file rte\_eventdev.h.**

### void\* event\_ptr

**Opaque event pointer**

**Definition at line 1789 of file rte\_eventdev.h.**

### struct rte\_mbuf\* mbuf

**mbuf pointer if dequeued event is associated with mbuf**

**Definition at line 1791 of file rte\_eventdev.h.**

### struct rte\_event\_vector\* vec

**Event vector pointer.**

**Definition at line 1793 of file rte\_eventdev.h.**

## Author

**Generated automatically by Doxygen for DPDK from the source code.**
