DPDK  24.03.0
rte_event Struct Reference

#include <rte_eventdev.h>

Detailed Description

The generic rte_event structure to hold the event attributes for dequeue and enqueue operation

Examples:
examples/eventdev_pipeline/pipeline_worker_generic.c, examples/eventdev_pipeline/pipeline_worker_tx.c, examples/ipsec-secgw/ipsec_worker.c, examples/l2fwd-event/l2fwd_common.c, examples/l2fwd-event/l2fwd_event.c, examples/l3fwd/l3fwd_em.c, examples/l3fwd/l3fwd_event.c, examples/l3fwd/l3fwd_fib.c, and examples/l3fwd/l3fwd_lpm.c.

Definition at line 1571 of file rte_eventdev.h.

Field Documentation

◆ flow_id

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.

Examples:
examples/eventdev_pipeline/pipeline_worker_generic.c.

Definition at line 1577 of file rte_eventdev.h.

◆ sub_event_type

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
Examples:
examples/eventdev_pipeline/pipeline_worker_tx.c.

Definition at line 1589 of file rte_eventdev.h.

◆ event_type

uint32_t event_type

Event type to classify the event source. (RTE_EVENT_TYPE_*)

This field is preserved between enqueue and dequeue

Examples:
examples/eventdev_pipeline/pipeline_worker_tx.c, examples/ipsec-secgw/event_helper.c, examples/ipsec-secgw/ipsec_worker.c, examples/l2fwd-event/l2fwd_common.c, and examples/l3fwd/l3fwd_event.c.

Definition at line 1596 of file rte_eventdev.h.

◆ op

uint8_t op

◆ rsvd

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 1611 of file rte_eventdev.h.

◆ sched_type

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
Examples:
examples/eventdev_pipeline/pipeline_worker_generic.c, examples/eventdev_pipeline/pipeline_worker_tx.c, examples/ipsec-secgw/event_helper.c, examples/ipsec-secgw/ipsec.c, examples/l2fwd-event/l2fwd_event_generic.c, examples/l2fwd-event/l2fwd_event_internal_port.c, examples/l3fwd/l3fwd_event_generic.c, and examples/l3fwd/l3fwd_event_internal_port.c.

Definition at line 1619 of file rte_eventdev.h.

◆ queue_id

uint8_t queue_id

◆ priority

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.

Examples:
examples/l2fwd-event/l2fwd_event_generic.c, examples/l2fwd-event/l2fwd_event_internal_port.c, examples/l3fwd/l3fwd_event_generic.c, and examples/l3fwd/l3fwd_event_internal_port.c.

Definition at line 1644 of file rte_eventdev.h.

◆ impl_opaque

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 1668 of file rte_eventdev.h.

◆ u64

uint64_t u64

Opaque 64-bit value

Examples:
examples/eventdev_pipeline/pipeline_worker_tx.c, and examples/ipsec-secgw/ipsec_worker.c.

Definition at line 1686 of file rte_eventdev.h.

◆ event_ptr

void* event_ptr

Opaque event pointer

Examples:
examples/ipsec-secgw/ipsec_worker.c.

Definition at line 1688 of file rte_eventdev.h.

◆ mbuf

struct rte_mbuf* mbuf

◆ vec

struct rte_event_vector* vec

The documentation for this struct was generated from the following file: