|
NAMErte_bbdev.h SYNOPSIS#include <stdint.h>
Data Structuresstruct rte_bbdev_queue_conf
Macros#define RTE_BBDEV_MAX_DEVS 128
Typedefstypedef void(* rte_bbdev_cb_fn) (uint16_t dev_id,
enum rte_bbdev_event_type event, void *cb_arg, void *ret_param)
Enumerationsenum rte_bbdev_state
Functionsuint16_t rte_bbdev_count (void)
Detailed DescriptionWireless base band device abstraction APIs. This API allows an application to discover, configure and use a device to process operations. An asynchronous API (enqueue, followed by later dequeue) is used for processing operations. The functions in this API are not thread-safe when called on the same target object (a device, or a queue on a device), with the exception that one thread can enqueue operations to a queue while another thread dequeues from the same queue. Definition in file rte_bbdev.h. Macro Definition Documentation#define RTE_BBDEV_FOREACH(i)Value:.PP
Iterate through all enabled devices Definition at line 89 of file rte_bbdev.h. #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() { RTE_BBDEV_OP_NONE }Macro used at end of bbdev PMD list Definition at line 364 of file rte_bbdev.h. #define RTE_BBDEV_NAME_MAX_LEN 64Max length of device name Definition at line 479 of file rte_bbdev.h. Typedef Documentationtypedef void(* rte_bbdev_cb_fn) (uint16_t dev_id, enum rte_bbdev_event_type event, void *cb_arg, void *ret_param)Typedef for application callback function registered by application software for notification of device events Parameters dev_id Device identifier
event Device event to register for notification of. cb_arg User specified parameter to be passed to user's callback function. ret_param To pass data back to user application. Definition at line 968 of file rte_bbdev.h. Enumeration Type Documentationenum rte_bbdev_stateFlags indicate current state of BBDEV device Definition at line 49 of file rte_bbdev.h. enum rte_bbdev_enqueue_statusFlags to indicate the reason why a previous enqueue may not have consumed all requested operations. In case of multiple reasons the latter supersedes a previous one. The related macro RTE_BBDEV_ENQ_STATUS_SIZE_MAX can be used as an absolute maximum for notably sizing array while allowing for future enumeration insertion. Enumerator
Definition at line 244 of file rte_bbdev.h. enum rte_bbdev_device_statusFlags to indicate the status of the device. Enumerator
Definition at line 255 of file rte_bbdev.h. enum rte_bbdev_event_typeDefinitions of device event types Enumerator
Definition at line 948 of file rte_bbdev.h. Function Documentationuint16_t rte_bbdev_count (void)Get the total number of devices that have been successfully initialised. Returns The total number of usable devices.
bool rte_bbdev_is_valid (uint16_t dev_id)Check if a device is valid. Parameters dev_id The identifier of the device.
Returns true if device ID is valid and device is attached, false
otherwise.
uint16_t rte_bbdev_find_next (uint16_t dev_id)Get the next enabled device. Parameters dev_id The current device
Returns
int rte_bbdev_setup_queues (uint16_t dev_id, uint16_t num_queues, int socket_id)Setup up device queues. This function must be called on a device before setting up the queues and starting the device. It can also be called when a device is in the stopped state. If any device queues have been configured their configuration will be cleared by a call to this function. Parameters dev_id The identifier of the device.
num_queues Number of queues to configure on device. socket_id ID of a socket which will be used to allocate memory. Returns
int rte_bbdev_intr_enable (uint16_t dev_id)Enable interrupts. This function may be called before starting the device to enable the interrupts if they are available. Parameters dev_id The identifier of the device.
Returns
int rte_bbdev_queue_configure (uint16_t dev_id, uint16_t queue_id, const struct rte_bbdev_queue_conf * conf)Configure a queue on a device. This function can be called after device configuration, and before starting. It can also be called when the device or the queue is in the stopped state. Parameters dev_id The identifier of the device.
queue_id The index of the queue. conf The queue configuration. If NULL, a default configuration will be used. Returns
int rte_bbdev_start (uint16_t dev_id)Start a device. This is the last step needed before enqueueing operations is possible. Parameters dev_id The identifier of the device.
Returns
int rte_bbdev_stop (uint16_t dev_id)Stop a device. The device can be reconfigured, and restarted after being stopped. Parameters dev_id The identifier of the device.
Returns
int rte_bbdev_close (uint16_t dev_id)Close a device. The device cannot be restarted without reconfiguration! Parameters dev_id The identifier of the device.
Returns
int rte_bbdev_queue_start (uint16_t dev_id, uint16_t queue_id)Start a specified queue on a device. This is only needed if the queue has been stopped, or if the deferred_start flag has been set when configuring the queue. Parameters dev_id The identifier of the device.
queue_id The index of the queue. Returns
int rte_bbdev_queue_stop (uint16_t dev_id, uint16_t queue_id)Stop a specified queue on a device, to allow re configuration. Parameters dev_id The identifier of the device.
queue_id The index of the queue. Returns
int rte_bbdev_stats_get (uint16_t dev_id, struct rte_bbdev_stats * stats)Retrieve the general I/O statistics of a device. Parameters dev_id The identifier of the device.
stats Pointer to structure to where statistics will be copied. On error, this location may or may not have been modified. Returns
int rte_bbdev_stats_reset (uint16_t dev_id)Reset the statistics of a device. Parameters dev_id The identifier of the device.
Returns
int rte_bbdev_info_get (uint16_t dev_id, struct rte_bbdev_info * dev_info)Retrieve information about a device. Parameters dev_id The identifier of the device.
dev_info Pointer to structure to where information will be copied. On error, this location may or may not have been modified. Returns
int rte_bbdev_queue_info_get (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_queue_info * queue_info)Retrieve information about a specific queue on a device. Parameters dev_id The identifier of the device.
queue_id The index of the queue. queue_info Pointer to structure to where information will be copied. On error, this location may or may not have been modified. Returns
RTE_TAILQ_HEAD (rte_bbdev_cb_list, rte_bbdev_callback)Structure to keep track of registered callbacks static uint16_t rte_bbdev_enqueue_enc_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of processed encode operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued Must have at least num_ops entries num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued (this is the
number of processed entries in the ops array).
Definition at line 569 of file rte_bbdev.h. static uint16_t rte_bbdev_enqueue_dec_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of processed decode operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued Must have at least num_ops entries num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued (this is the
number of processed entries in the ops array).
Definition at line 601 of file rte_bbdev.h. static uint16_t rte_bbdev_enqueue_ldpc_enc_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of processed encode operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued Must have at least num_ops entries num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued (this is the
number of processed entries in the ops array).
Definition at line 633 of file rte_bbdev.h. static uint16_t rte_bbdev_enqueue_ldpc_dec_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of processed decode operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued Must have at least num_ops entries num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued (this is the
number of processed entries in the ops array).
Definition at line 665 of file rte_bbdev.h. static uint16_t rte_bbdev_enqueue_fft_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of FFT operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued. Must have at least num_ops entries. num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued. (This is the
number of processed entries in the ops array.)
Definition at line 697 of file rte_bbdev.h. static uint16_t rte_bbdev_enqueue_mldts_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op ** ops, uint16_t num_ops) [inline], [static]Enqueue a burst of MLDTS operations to a queue of the device. This functions only enqueues as many operations as currently possible and does not block until num_ops entries in the queue are available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array containing operations to be enqueued Must have at least num_ops entries num_ops The maximum number of operations to enqueue. Returns The number of operations actually enqueued (this is the
number of processed entries in the ops array).
Definition at line 729 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_enc_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of processed encode operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until @ num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries, i.e. a pointer to a table of void * pointers (ops) that will be filled. num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued. (This is the
number of entries copied into the ops array.)
Definition at line 762 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_dec_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of processed decode operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until @ num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries ie. A pointer to a table of void * pointers (ops) that will be filled. num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued (this is the
number of entries copied into the ops array).
Definition at line 798 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_ldpc_enc_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of processed encode operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until @ num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued (this is the
number of entries copied into the ops array).
Definition at line 833 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_ldpc_dec_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of processed decode operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until @ num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued (this is the
number of entries copied into the ops array).
Definition at line 867 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_fft_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of FFT operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until @ num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued (this is the
number of entries copied into the ops array).
Definition at line 901 of file rte_bbdev.h. static uint16_t rte_bbdev_dequeue_mldts_ops (uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op ** ops, uint16_t num_ops) [inline], [static]Dequeue a burst of MLDTS operations from a queue of the device. This functions returns only the current contents of the queue, and does not block until num_ops is available. This function does not provide any error notification to avoid the corresponding overhead. Parameters dev_id The identifier of the device.
queue_id The index of the queue. ops Pointer array where operations will be dequeued to. Must have at least num_ops entries num_ops The maximum number of operations to dequeue. Returns The number of operations actually dequeued (this is the
number of entries copied into the ops array).
Definition at line 935 of file rte_bbdev.h. int rte_bbdev_callback_register (uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void * cb_arg)Register a callback function for specific device id. Multiple callbacks can be added and will be called in the order they are added when an event is triggered. Callbacks are called in a separate thread created by the DPDK EAL. Parameters dev_id Device id.
event The event that the callback will be registered for. cb_fn User supplied callback function to be called. cb_arg Pointer to parameter that will be passed to the callback. Returns Zero on success, negative value on failure.
int rte_bbdev_callback_unregister (uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void * cb_arg)Unregister a callback function for specific device id. Parameters dev_id The device identifier.
event The event that the callback will be unregistered for. cb_fn User supplied callback function to be unregistered. cb_arg Pointer to the parameter supplied when registering the callback. (void *)-1 means to remove all registered callbacks with the specified function address. Returns
int rte_bbdev_queue_intr_enable (uint16_t dev_id, uint16_t queue_id)Enable a one-shot interrupt on the next operation enqueued to a particular queue. The interrupt will be triggered when the operation is ready to be dequeued. To handle the interrupt, an epoll file descriptor must be registered using rte_bbdev_queue_intr_ctl(), and then an application thread/lcore can wait for the interrupt using rte_epoll_wait(). Parameters dev_id The device identifier.
queue_id The index of the queue. Returns
int rte_bbdev_queue_intr_disable (uint16_t dev_id, uint16_t queue_id)Disable a one-shot interrupt on the next operation enqueued to a particular queue (if it has been enabled). Parameters dev_id The device identifier.
queue_id The index of the queue. Returns
int rte_bbdev_queue_intr_ctl (uint16_t dev_id, uint16_t queue_id, int epfd, int op, void * data)Control interface for per-queue interrupts. Parameters dev_id The device identifier.
queue_id The index of the queue. epfd Epoll file descriptor that will be associated with the interrupt source. If the special value RTE_EPOLL_PER_THREAD is provided, a per thread epoll file descriptor created by the EAL is used (RTE_EPOLL_PER_THREAD can also be used when calling rte_epoll_wait()). op The operation be performed for the vector.RTE_INTR_EVENT_ADD or RTE_INTR_EVENT_DEL. data User context, that will be returned in the epdata.data field of the rte_epoll_event structure filled in by rte_epoll_wait(). Returns
const char * rte_bbdev_device_status_str (enum rte_bbdev_device_status status)Convert device status from enum to string. Parameters status Device status as enum.
Returns Device status as string or NULL if invalid.
const char * rte_bbdev_enqueue_status_str (enum rte_bbdev_enqueue_status status)Convert queue status from enum to string. Parameters status Queue status as enum.
Returns Queue status as string or NULL if op_type is
invalid.
__rte_experimental int rte_bbdev_queue_ops_dump (uint16_t dev_id, uint16_t queue_index, FILE * file)Dump operations info from device to a file. This API is used for debugging provided input operations, not a dataplane API. Parameters dev_id The device identifier.
queue_index Index of queue. file A pointer to a file for output. Returns
__rte_experimental char * rte_bbdev_ops_param_string (void * op, enum rte_bbdev_op_type op_type, char * str, uint32_t len)String of parameters related to the parameters of an operation of a given type. Parameters op Pointer to an operation.
op_type Operation type enum. str String being describing the operations. len Size of the string buffer. Returns String describing the provided operation.
__rte_experimental void rte_bbdev_ops_trace (void * op, enum rte_bbdev_op_type op_type)Add a trace with detail of operation. Parameters op Pointer to an operation.
op_type Operation type enum. AuthorGenerated automatically by Doxygen for DPDK from the source code.
|