API Reference Manual  1.47.0
odp_queue_param_t Struct Reference

ODP Queue parameters. More...

#include <queue_types.h>

Collaboration diagram for odp_queue_param_t:
[legend]

Data Fields

odp_queue_type_t type
 Queue type. More...
 
odp_queue_op_mode_t enq_mode
 Enqueue mode. More...
 
odp_queue_op_mode_t deq_mode
 Dequeue mode. More...
 
odp_schedule_param_t sched
 Scheduler parameters. More...
 
odp_queue_order_t order
 Original event order maintenance. More...
 
odp_nonblocking_t nonblocking
 Non-blocking level. More...
 
void * context
 Queue context pointer. More...
 
uint32_t context_len
 Queue context data length. More...
 
uint32_t size
 Queue size. More...
 
uint32_t num_aggr
 Number of event aggregators. More...
 
const odp_event_aggr_config_taggr
 Event aggregator configuration parameters. More...
 

Detailed Description

Field Documentation

◆ type

◆ enq_mode

odp_queue_op_mode_t odp_queue_param_t::enq_mode

Enqueue mode.

Default value for both queue types is ODP_QUEUE_OP_MT. Application may enable performance optimizations by defining MT_UNSAFE or DISABLED modes when applicable.

Examples
odp_ipfragreass.c, odp_queue_perf.c, and odp_simple_pipeline.c.

Definition at line 251 of file api/spec/queue_types.h.

◆ deq_mode

odp_queue_op_mode_t odp_queue_param_t::deq_mode

Dequeue mode.

For PLAIN queues, the default value is ODP_QUEUE_OP_MT. Application may enable performance optimizations by defining MT_UNSAFE or DISABLED modes when applicable. However, when a plain queue is input to the implementation (e.g. a queue for packet output), the parameter is ignored in queue creation and the value is ODP_QUEUE_OP_DISABLED.

For SCHED queues, the parameter is ignored in queue creation and the value is ODP_QUEUE_OP_DISABLED.

Examples
odp_ipfragreass.c, odp_queue_perf.c, and odp_simple_pipeline.c.

Definition at line 264 of file api/spec/queue_types.h.

◆ sched

◆ order

odp_queue_order_t odp_queue_param_t::order

Original event order maintenance.

Keep or ignore the original event order of a source queue. The default value is ODP_QUEUE_ORDER_KEEP.

Definition at line 276 of file api/spec/queue_types.h.

◆ nonblocking

odp_nonblocking_t odp_queue_param_t::nonblocking

Non-blocking level.

Queue implementation must guarantee at least this level of block freedom for queue enqueue and dequeue/schedule operations. The default value is ODP_BLOCKING.

Examples
odp_queue_perf.c.

Definition at line 283 of file api/spec/queue_types.h.

◆ context

void* odp_queue_param_t::context

Queue context pointer.

User defined context pointer associated with the queue. The same pointer can be accessed with odp_queue_context() and odp_queue_context_set() calls. The implementation may read the pointer for prefetching the context data. Default value of the pointer is NULL.

Examples
odp_pktio_ordered.c.

Definition at line 292 of file api/spec/queue_types.h.

◆ context_len

uint32_t odp_queue_param_t::context_len

Queue context data length.

User defined context data length in bytes for prefetching. The implementation may use this value as a hint for the number of context data bytes to prefetch. Default value is zero (no hint).

Examples
odp_pktio_ordered.c.

Definition at line 299 of file api/spec/queue_types.h.

◆ size

uint32_t odp_queue_param_t::size

Queue size.

The queue must be able to store at minimum this many events simultaneously. The value must not exceed 'max_size' queue capability. The value of zero means implementation specific default size. The default value is 0.

Examples
odp_cpu_bench.c, odp_pktio_ordered.c, odp_queue_perf.c, odp_sched_latency.c, odp_sched_perf.c, odp_sched_pktio.c, and odp_simple_pipeline.c.

Definition at line 307 of file api/spec/queue_types.h.

◆ num_aggr

uint32_t odp_queue_param_t::num_aggr

Number of event aggregators.

Event aggregators are queues which try to aggregate multiple events into vector events before enqueuing the events or vector events to this queue. When at least one event aggregator is configured, an event can be enqueued directly using the queue handle of this queue or indirectly through an event aggregator using the queue handle of the event aggregator (see odp_queue_aggr()).

Two events enqueued through different aggregators (or one through an aggregator and the other directly through this queue) may appear in any order when dequeued.

When >= 1, configuration must be provided for each aggregator through the 'aggr' array.

The default value is zero.

Definition at line 328 of file api/spec/queue_types.h.

◆ aggr

const odp_event_aggr_config_t* odp_queue_param_t::aggr

Event aggregator configuration parameters.

When 'num_aggr' is non-zero, 'aggr' must point to an array of size 'num_aggr'.

The default value is null.

Definition at line 337 of file api/spec/queue_types.h.


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