| rte_compressdev.h(3) | Library Functions Manual | rte_compressdev.h(3) |
rte_compressdev.h
#include 'rte_comp.h'
struct rte_param_log2_range
struct rte_compressdev_capabilities
struct rte_compressdev_info
struct rte_compressdev_stats
struct rte_compressdev_config
#define RTE_COMP_END_OF_CAPABILITIES_LIST() {
RTE_COMP_ALGO_UNSPECIFIED }
#define RTE_COMPDEV_FF_HW_ACCELERATED (1ULL << 0)
#define RTE_COMPDEV_FF_CPU_SSE (1ULL << 1)
#define RTE_COMPDEV_FF_CPU_AVX (1ULL << 2)
#define RTE_COMPDEV_FF_CPU_AVX2 (1ULL << 3)
#define RTE_COMPDEV_FF_CPU_AVX512 (1ULL << 4)
#define RTE_COMPDEV_FF_CPU_NEON (1ULL << 5)
#define RTE_COMPDEV_FF_OP_DONE_IN_DEQUEUE (1ULL << 6)
const char * rte_compressdev_get_feature_name (uint64_t
flag)
int rte_compressdev_get_dev_id (const char *name)
const char * rte_compressdev_name_get (uint8_t dev_id)
uint8_t rte_compressdev_count (void)
uint8_t rte_compressdev_devices_get (const char *driver_name, uint8_t
*devices, uint8_t nb_devices)
int rte_compressdev_configure (uint8_t dev_id, struct
rte_compressdev_config *config)
int rte_compressdev_start (uint8_t dev_id)
void rte_compressdev_stop (uint8_t dev_id)
int rte_compressdev_close (uint8_t dev_id)
int rte_compressdev_queue_pair_setup (uint8_t dev_id, uint16_t
queue_pair_id, uint32_t max_inflight_ops, int socket_id)
uint16_t rte_compressdev_queue_pair_count (uint8_t dev_id)
int rte_compressdev_stats_get (uint8_t dev_id, struct
rte_compressdev_stats *stats)
void rte_compressdev_stats_reset (uint8_t dev_id)
void rte_compressdev_info_get (uint8_t dev_id, struct
rte_compressdev_info *dev_info)
uint16_t rte_compressdev_dequeue_burst (uint8_t dev_id, uint16_t qp_id,
struct rte_comp_op **ops, uint16_t nb_ops)
uint16_t rte_compressdev_enqueue_burst (uint8_t dev_id, uint16_t qp_id,
struct rte_comp_op **ops, uint16_t nb_ops)
int rte_compressdev_stream_create (uint8_t dev_id, const struct
rte_comp_xform *xform, void **stream)
int rte_compressdev_stream_free (uint8_t dev_id, void *stream)
int rte_compressdev_private_xform_create (uint8_t dev_id, const struct
rte_comp_xform *xform, void **private_xform)
int rte_compressdev_private_xform_free (uint8_t dev_id, void
*private_xform)
RTE Compression Device APIs.
Defines comp device APIs for the provisioning of compression operations.
Definition in file rte_compressdev.h.
Macro used at end of comp PMD list
Definition at line 48 of file rte_compressdev.h.
compression device supported feature flags
Note
Keep these flags synchronised with rte_compressdev_get_feature_name() Operations are off-loaded to an external hardware accelerator
Definition at line 63 of file rte_compressdev.h.
Utilises CPU SIMD SSE instructions
Definition at line 65 of file rte_compressdev.h.
Utilises CPU SIMD AVX instructions
Definition at line 67 of file rte_compressdev.h.
Utilises CPU SIMD AVX2 instructions
Definition at line 69 of file rte_compressdev.h.
Utilises CPU SIMD AVX512 instructions
Definition at line 71 of file rte_compressdev.h.
Utilises CPU NEON instructions
Definition at line 73 of file rte_compressdev.h.
A PMD should set this if the bulk of the processing is done during the dequeue. It should leave it cleared if the processing is done during the enqueue (default). Applications can use this as a hint for tuning.
Definition at line 79 of file rte_compressdev.h.
Get the name of a compress device feature flag.
Parameters
Returns
Get the device identifier for the named compress device.
Parameters
Returns
Get the compress device name given a device identifier.
Parameters
Returns
Get the total number of compress devices that have been successfully initialised.
Returns
Get number and identifiers of attached comp devices that use the same compress driver.
Parameters
Returns
Configure a device.
This function must be invoked first before any other function in the API. This function can also be re-invoked when a device is in the stopped state.
Parameters
Returns
Start a device.
The device start step is called after configuring the device and setting up its queue pairs. On success, data-path functions exported by the API (enqueue/dequeue, etc) can be invoked.
Parameters
Returns
Stop a device. The device can be restarted with a call to rte_compressdev_start()
Parameters
Close an device. The memory allocated in the device gets freed. After calling this function, in order to use the device again, it is required to configure the device again.
Parameters
Returns
Allocate and set up a receive queue pair for a device. This should only be called when the device is stopped.
Parameters
Returns
Get the number of queue pairs on a specific comp device
Parameters
Returns
Retrieve the general I/O statistics of a device.
Parameters
Returns
Reset the general I/O statistics of a device.
Parameters
Retrieve the contextual information of a device.
Parameters
Note
Dequeue a burst of processed compression operations from a queue on the comp device. The dequeued operation are stored in rte_comp_op structures whose pointers are supplied in the ops array.
The rte_compressdev_dequeue_burst() function returns the number of ops actually dequeued, which is the number of rte_comp_op data structures effectively supplied into the ops array.
A return value equal to nb_ops indicates that the queue contained at least nb_ops operations, and this is likely to signify that other processed operations remain in the devices output queue. Applications implementing a 'retrieve as many processed operations as possible' policy can check this specific case and keep invoking the rte_compressdev_dequeue_burst() function until a value less than nb_ops is returned.
The rte_compressdev_dequeue_burst() function does not provide any error notification to avoid the corresponding overhead.
Note
: In case op status = OUT_OF_SPACE_TERMINATED, op.consumed=0 and the op must be resubmitted with the same input data and a larger output buffer. op.produced is usually 0, but in decompression cases a PMD may return > 0 and the application may find it useful to inspect that data. This status is only returned on STATELESS ops.
: In case op status = OUT_OF_SPACE_RECOVERABLE, op.produced can be used and next op in stream should continue on from op.consumed+1 with a fresh output buffer. Consumed=0, produced=0 is an unusual but allowed case. There may be useful state/history stored in the PMD, even though no output was produced yet.
Parameters
Returns
Enqueue a burst of operations for processing on a compression device.
The rte_compressdev_enqueue_burst() function is invoked to place comp operations on the queue qp_id of the device designated by its dev_id.
The nb_ops parameter is the number of operations to process which are supplied in the ops array of rte_comp_op structures.
The rte_compressdev_enqueue_burst() function returns the number of operations it actually enqueued for processing. A return value equal to nb_ops means that all packets have been enqueued.
Note
The rte_comp_op contains both input and output parameters and is the vehicle for the application to pass data into and out of the PMD. While an op is inflight, i.e. once it has been enqueued, the private_xform or stream attached to it and any mbufs or memory referenced by it should not be altered or freed by the application. The PMD may use or change some of this data at any time until it has been returned in a dequeue operation.
The flush flag only applies to operations which return SUCCESS. In OUT_OF_SPACE cases whether STATEFUL or STATELESS, data in dest buffer is as if flush flag was FLUSH_NONE.
flush flag only applies in compression direction. It has no meaning for decompression.
: operation ordering is not maintained within the queue pair.
Parameters
Returns
This should alloc a stream from the device's mempool and initialise it. The application should call this API when setting up for the stateful processing of a set of data on a device. The API can be called multiple times to set up a stream for each data set. The handle returned is only for use with ops of op_type STATEFUL and must be passed to the PMD with every op in the data stream
Parameters
Returns
This should clear the stream and return it to the device's mempool.
Parameters
Returns
This should alloc a private_xform from the device's mempool and initialise it. The application should call this API when setting up for stateless processing on a device. If it returns non-shareable, then the appl cannot share this handle with multiple in-flight ops and should call this API again to get a separate handle for every in-flight op. The handle returned is only valid for use with ops of op_type STATELESS.
Parameters
Returns
This should clear the private_xform and return it to the device's mempool. It is the application's responsibility to ensure that private_xform data is not cleared while there are still in-flight operations using it.
Parameters
Returns
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |