Scroll to navigation

rte_bbdev_op.h(3) DPDK rte_bbdev_op.h(3)

NAME

rte_bbdev_op.h

SYNOPSIS

#include <stdint.h>
#include <rte_compat.h>
#include <rte_common.h>
#include <rte_mbuf.h>
#include <rte_memory.h>
#include <rte_mempool.h>

Data Structures


struct rte_bbdev_op_data
struct rte_bbdev_op_dec_turbo_cb_params
struct rte_bbdev_op_dec_ldpc_cb_params
struct rte_bbdev_op_dec_turbo_tb_params
struct rte_bbdev_op_dec_ldpc_tb_params
struct rte_bbdev_op_turbo_dec
struct rte_bbdev_op_ldpc_dec
struct rte_bbdev_op_enc_turbo_cb_params
struct rte_bbdev_op_enc_turbo_tb_params
struct rte_bbdev_op_enc_ldpc_cb_params
struct rte_bbdev_op_enc_ldpc_tb_params
struct rte_bbdev_op_turbo_enc
struct rte_bbdev_op_ldpc_enc
struct rte_bbdev_op_fft
struct rte_bbdev_op_mldts
struct rte_bbdev_op_cap_turbo_dec
struct rte_bbdev_op_cap_turbo_enc
struct rte_bbdev_op_cap_ldpc_dec
struct rte_bbdev_op_cap_ldpc_enc
struct rte_bbdev_op_cap_fft
struct rte_bbdev_op_cap_mld
struct rte_bbdev_enc_op
struct rte_bbdev_dec_op
struct rte_bbdev_fft_op
struct rte_bbdev_mldts_op
struct rte_bbdev_op_cap

Enumerations


enum rte_bbdev_op_td_flag_bitmasks { RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE = (1ULL << 0), RTE_BBDEV_TURBO_CRC_TYPE_24B = (1ULL << 1), RTE_BBDEV_TURBO_EQUALIZER = (1ULL << 2), RTE_BBDEV_TURBO_SOFT_OUT_SATURATE = (1ULL << 3), RTE_BBDEV_TURBO_HALF_ITERATION_EVEN = (1ULL << 4), RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH = (1ULL << 5), RTE_BBDEV_TURBO_SOFT_OUTPUT = (1ULL << 6), RTE_BBDEV_TURBO_EARLY_TERMINATION = (1ULL << 7), RTE_BBDEV_TURBO_DEC_INTERRUPTS = (1ULL << 9), RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN = (1ULL << 10), RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN = (1ULL << 11), RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT = (1ULL << 12), RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT = (1ULL << 13), RTE_BBDEV_TURBO_MAP_DEC = (1ULL << 14), RTE_BBDEV_TURBO_DEC_SCATTER_GATHER = (1ULL << 15), RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP = (1ULL << 16), RTE_BBDEV_TURBO_DEC_CRC_24B_DROP = (1ULL << 17) }
enum rte_bbdev_op_te_flag_bitmasks { RTE_BBDEV_TURBO_RV_INDEX_BYPASS = (1ULL << 0), RTE_BBDEV_TURBO_RATE_MATCH = (1ULL << 1), RTE_BBDEV_TURBO_CRC_24B_ATTACH = (1ULL << 2), RTE_BBDEV_TURBO_CRC_24A_ATTACH = (1ULL << 3), RTE_BBDEV_TURBO_ENC_INTERRUPTS = (1ULL << 4), RTE_BBDEV_TURBO_ENC_SCATTER_GATHER = (1ULL << 5) }
enum rte_bbdev_op_ldpcdec_flag_bitmasks { RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK = (1ULL << 0), RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK = (1ULL << 1), RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP = (1ULL << 2), RTE_BBDEV_LDPC_CRC_TYPE_16_CHECK = (1ULL << 3), RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS = (1ULL << 4), RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE = (1ULL << 5), RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE = (1ULL << 6), RTE_BBDEV_LDPC_DECODE_BYPASS = (1ULL << 7), RTE_BBDEV_LDPC_SOFT_OUT_ENABLE = (1ULL << 8), RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS = (1ULL << 9), RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS = (1ULL << 10), RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE = (1ULL << 11), RTE_BBDEV_LDPC_DEC_INTERRUPTS = (1ULL << 12), RTE_BBDEV_LDPC_DEC_SCATTER_GATHER = (1ULL << 13), RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION = (1ULL << 14), RTE_BBDEV_LDPC_LLR_COMPRESSION = (1ULL << 15), RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE = (1ULL << 16), RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE = (1ULL << 17), RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK = (1ULL << 18), RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS = (1ULL << 19), RTE_BBDEV_LDPC_HARQ_4BIT_COMPRESSION = (1ULL << 20) }
enum rte_bbdev_op_ldpcenc_flag_bitmasks { RTE_BBDEV_LDPC_INTERLEAVER_BYPASS = (1ULL << 0), RTE_BBDEV_LDPC_RATE_MATCH = (1ULL << 1), RTE_BBDEV_LDPC_CRC_24A_ATTACH = (1ULL << 2), RTE_BBDEV_LDPC_CRC_24B_ATTACH = (1ULL << 3), RTE_BBDEV_LDPC_CRC_16_ATTACH = (1ULL << 4), RTE_BBDEV_LDPC_ENC_INTERRUPTS = (1ULL << 5), RTE_BBDEV_LDPC_ENC_SCATTER_GATHER = (1ULL << 6), RTE_BBDEV_LDPC_ENC_CONCATENATION = (1ULL << 7) }
enum rte_bbdev_op_fft_flag_bitmasks { RTE_BBDEV_FFT_WINDOWING = (1ULL << 0), RTE_BBDEV_FFT_CS_ADJUSTMENT = (1ULL << 1), RTE_BBDEV_FFT_DFT_BYPASS = (1ULL << 2), RTE_BBDEV_FFT_IDFT_BYPASS = (1ULL << 3), RTE_BBDEV_FFT_WINDOWING_BYPASS = (1ULL << 4), RTE_BBDEV_FFT_POWER_MEAS = (1ULL << 5), RTE_BBDEV_FFT_FP16_INPUT = (1ULL << 6), RTE_BBDEV_FFT_FP16_OUTPUT = (1ULL << 7), RTE_BBDEV_FFT_TIMING_OFFSET_PER_CS = (1ULL << 8), RTE_BBDEV_FFT_TIMING_ERROR = (1ULL << 9), RTE_BBDEV_FFT_DEWINDOWING = (1ULL << 10), RTE_BBDEV_FFT_FREQ_RESAMPLING = (1ULL << 11) }
enum rte_bbdev_op_mldts_flag_bitmasks { RTE_BBDEV_MLDTS_REP = (1ULL << 0) }
enum rte_bbdev_op_cb_mode { RTE_BBDEV_TRANSPORT_BLOCK = 0, RTE_BBDEV_CODE_BLOCK = 1 }
enum rte_bbdev_op_type { RTE_BBDEV_OP_NONE, RTE_BBDEV_OP_TURBO_DEC, RTE_BBDEV_OP_TURBO_ENC, RTE_BBDEV_OP_LDPC_DEC, RTE_BBDEV_OP_LDPC_ENC, RTE_BBDEV_OP_FFT, RTE_BBDEV_OP_MLDTS }
enum

Functions


const char * rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)
struct rte_mempool * rte_bbdev_op_pool_create (const char *name, enum rte_bbdev_op_type type, unsigned int num_elements, unsigned int cache_size, int socket_id)
static int rte_bbdev_enc_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_enc_op **ops, unsigned int num_ops)
static int rte_bbdev_dec_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_dec_op **ops, unsigned int num_ops)
static int rte_bbdev_fft_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_fft_op **ops, unsigned int num_ops)
static __rte_experimental int rte_bbdev_mldts_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
static void rte_bbdev_dec_op_free_bulk (struct rte_bbdev_dec_op **ops, unsigned int num_ops)
static void rte_bbdev_enc_op_free_bulk (struct rte_bbdev_enc_op **ops, unsigned int num_ops)
static void rte_bbdev_fft_op_free_bulk (struct rte_bbdev_fft_op **ops, unsigned int num_ops)
static __rte_experimental void rte_bbdev_mldts_op_free_bulk (struct rte_bbdev_mldts_op **ops, unsigned int num_ops)

Detailed Description

Defines wireless base band layer 1 operations and capabilities

Definition in file rte_bbdev_op.h.

Enumeration Type Documentation

enum rte_bbdev_op_td_flag_bitmasks

Flags for turbo decoder operation and capability structure

Enumerator

If sub block de-interleaving is to be performed.
To use CRC Type 24B (otherwise use CRC Type 24A).
If turbo equalization is to be performed.
If set, saturate soft output to +/-127
Set to 1 to start iteration from even, else odd; one iteration = max_iteration + 0.5
If 0, TD stops after CRC matches; else if 1, runs to end of next odd iteration after CRC matches
Set if soft output is required to be output

Set to enable early termination mode
Set if a device supports decoder dequeue interrupts
Set if positive LLR encoded input is supported. Positive LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN when used to formalize the input data format.
Set if negative LLR encoded input is supported. Negative LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN when used to formalize the input data format.
Set if positive LLR soft output is supported. Positive LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT when used to formalize the input data format.
Set if negative LLR soft output is supported. Negative LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT when used to formalize the input data format.
Set if driver supports flexible parallel MAP engine decoding. If not supported, num_maps (number of MAP engines) argument is unusable.
Set if a device supports scatter-gather functionality
Set to keep CRC24B bits appended while decoding. Only usable when decoding Transport Block mode.
Set to drop CRC24B bits not to be appended while decoding.

Definition at line 67 of file rte_bbdev_op.h.

enum rte_bbdev_op_te_flag_bitmasks

Flags for turbo encoder operation and capability structure

Enumerator

Ignore rv_index and set K0 = 0
If rate matching is to be performed
This bit must be set to enable CRC-24B generation
This bit must be set to enable CRC-24A generation
Set if a device supports encoder dequeue interrupts
Set if a device supports scatter-gather functionality

Definition at line 137 of file rte_bbdev_op.h.

enum rte_bbdev_op_ldpcdec_flag_bitmasks

Flags for LDPC decoder operation and capability structure

Enumerator

Set for transport block CRC-24A checking
Set for code block CRC-24B checking
Set to drop the last CRC bits decoding output
Set for transport block CRC-16 checking
Set for bit-level de-interleaver bypass on Rx stream.
Set for HARQ combined input stream enable.
Set for HARQ combined output stream enable.
Set for LDPC decoder bypass. RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE must be set.
Set for soft-output stream enable
Set for Rate-Matching bypass on soft-out stream.
Set for bit-level de-interleaver bypass on soft-output stream.
Set for iteration stopping on successful decode condition i.e. a successful syndrome check.
Set if a device supports decoder dequeue interrupts.
Set if a device supports scatter-gather functionality.
Set if a device supports input/output HARQ compression.
Set if a device supports input LLR compression.
Set if a device supports HARQ input from device's internal memory.
Set if a device supports HARQ output to device's internal memory.
Set if a device supports loop-back access to HARQ internal memory. Intended for troubleshooting.
Set if a device includes LLR filler bits in the circular buffer for HARQ memory. If not set, it is assumed the filler bits are not in HARQ memory and handled directly by the LDPC decoder.
Set if a device supports input/output HARQ 4bits compression.

Definition at line 153 of file rte_bbdev_op.h.

enum rte_bbdev_op_ldpcenc_flag_bitmasks

Flags for LDPC encoder operation and capability structure

Enumerator

Set for bit-level interleaver bypass on output stream.
If rate matching is to be performed
Set for transport block CRC-24A attach
Set for code block CRC-24B attach
Set for code block CRC-16 attach
Set if a device supports encoder dequeue interrupts.
Set if a device supports scatter-gather functionality.
Set if a device supports concatenation of non byte aligned output

Definition at line 212 of file rte_bbdev_op.h.

enum rte_bbdev_op_fft_flag_bitmasks

Flags for FFT operation and capability structure.

Enumerator

Flexible windowing capability.
Flexible adjustment of Cyclic Shift time offset.
Set for bypass the DFT and get directly into iDFT input.
Set for bypass the IDFT and get directly the DFT output.
Set for bypass time domain windowing.
Set for optional power measurement on DFT output.
Set if the input data used FP16 format.
Set if the output data uses FP16 format.
Flexible adjustment of Timing offset adjustment per CS.
Flexible adjustment of Timing error correction per CS.
Set for optional frequency domain dewindowing.
Flexible adjustment of frequency resampling mode.

Definition at line 232 of file rte_bbdev_op.h.

enum rte_bbdev_op_mldts_flag_bitmasks

Flags for MLDTS operation and capability structure

Enumerator

Set if the device supports C/R repetition options.

Definition at line 260 of file rte_bbdev_op.h.

enum rte_bbdev_op_cb_mode

Flags for the Code Block/Transport block mode

Enumerator

One operation is one or fraction of one transport block

One operation is one code block mode

Definition at line 266 of file rte_bbdev_op.h.

enum rte_bbdev_op_type

Different operation types supported by the device. The related macro RTE_BBDEV_OP_TYPE_SIZE_MAX can be used as an absolute maximum for notably sizing array while allowing for future enumeration insertion.

Enumerator

Dummy operation that does nothing
Turbo decode
Turbo encode
LDPC decode
LDPC encode
FFT
MLD-TS

Definition at line 926 of file rte_bbdev_op.h.

anonymous enum

Bit indexes of possible errors reported through status field

Definition at line 938 of file rte_bbdev_op.h.

Function Documentation

const char* rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)

Converts queue operation type from enum to string

Parameters

op_type Operation type as enum

Returns

Operation type as string or NULL if op_type is invalid

struct rte_mempool* rte_bbdev_op_pool_create (const char * name, enum rte_bbdev_op_type type, unsigned int num_elements, unsigned int cache_size, int socket_id)

Creates a bbdev operation mempool

Parameters

name Pool name.
type Operation type, use RTE_BBDEV_OP_NONE for a pool which supports all operation types.
num_elements Number of elements in the pool.
cache_size Number of elements to cache on an lcore, see rte_mempool_create() for further details about cache size.
socket_id Socket to allocate memory on.

Returns

  • Pointer to a mempool on success,
  • NULL pointer on failure.

static int rte_bbdev_enc_op_alloc_bulk (struct rte_mempool * mempool, struct rte_bbdev_enc_op ** ops, unsigned int num_ops) [inline], [static]

Bulk allocate encode operations from a mempool with parameter defaults reset.

Parameters

mempool Operation mempool, created by rte_bbdev_op_pool_create().
ops Output array to place allocated operations
num_ops Number of operations to allocate

Returns

  • 0 on success
  • EINVAL if invalid mempool is provided

Definition at line 1072 of file rte_bbdev_op.h.

static int rte_bbdev_dec_op_alloc_bulk (struct rte_mempool * mempool, struct rte_bbdev_dec_op ** ops, unsigned int num_ops) [inline], [static]

Bulk allocate decode operations from a mempool with parameter defaults reset.

Parameters

mempool Operation mempool, created by rte_bbdev_op_pool_create().
ops Output array to place allocated operations
num_ops Number of operations to allocate

Returns

  • 0 on success
  • EINVAL if invalid mempool is provided

Definition at line 1103 of file rte_bbdev_op.h.

static int rte_bbdev_fft_op_alloc_bulk (struct rte_mempool * mempool, struct rte_bbdev_fft_op ** ops, unsigned int num_ops) [inline], [static]

Bulk allocate FFT operations from a mempool with default parameters.

Parameters

mempool Operation mempool, created by rte_bbdev_op_pool_create.
ops Output array to place allocated operations.
num_ops Number of operations to allocate.

Returns

  • 0 on success.
  • EINVAL if invalid mempool is provided.

Definition at line 1134 of file rte_bbdev_op.h.

static __rte_experimental int rte_bbdev_mldts_op_alloc_bulk (struct rte_mempool * mempool, struct rte_bbdev_mldts_op ** ops, uint16_t num_ops) [inline], [static]

Bulk allocate MLD operations from a mempool with parameter defaults reset.

Parameters

mempool Operation mempool, created by rte_bbdev_op_pool_create.
ops Output array to place allocated operations.
num_ops Number of operations to allocate.

Returns

  • 0 on success.
  • EINVAL if invalid mempool is provided.

Definition at line 1164 of file rte_bbdev_op.h.

static void rte_bbdev_dec_op_free_bulk (struct rte_bbdev_dec_op ** ops, unsigned int num_ops) [inline], [static]

Free decode operation structures that were allocated by rte_bbdev_dec_op_alloc_bulk(). All structures must belong to the same mempool.

Parameters

ops Operation structures
num_ops Number of structures

Definition at line 1189 of file rte_bbdev_op.h.

static void rte_bbdev_enc_op_free_bulk (struct rte_bbdev_enc_op ** ops, unsigned int num_ops) [inline], [static]

Free encode operation structures that were allocated by rte_bbdev_enc_op_alloc_bulk(). All structures must belong to the same mempool.

Parameters

ops Operation structures
num_ops Number of structures

Definition at line 1206 of file rte_bbdev_op.h.

static void rte_bbdev_fft_op_free_bulk (struct rte_bbdev_fft_op ** ops, unsigned int num_ops) [inline], [static]

Free encode operation structures that were allocated by rte_bbdev_fft_op_alloc_bulk. All structures must belong to the same mempool.

Parameters

ops Operation structures.
num_ops Number of structures.

Definition at line 1223 of file rte_bbdev_op.h.

static __rte_experimental void rte_bbdev_mldts_op_free_bulk (struct rte_bbdev_mldts_op ** ops, unsigned int num_ops) [inline], [static]

Free encode operation structures that were allocated by rte_bbdev_mldts_op_alloc_bulk(). All structures must belong to the same mempool.

Parameters

ops Operation structures
num_ops Number of structures

Definition at line 1241 of file rte_bbdev_op.h.

Author

Generated automatically by Doxygen for DPDK from the source code.

Fri Dec 15 2023 Version 23.11.0