rte_bbdev_op.h(3)
π¦ rte_bbdev_op.h β Library Functions Manual π«Ά
(part 1 of 3, bestie β we're going in)
π NAME π
rte_bbdev_op.h
That's literally it. The NAME section is just the header name, and honestly? Minimalist main character energy. π
β¨ SYNOPSIS β¨
Okay so first up, the includes. Copy these exactly, no freestyling, fr fr:
#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 π§±
These are the structs on deck, in the exact order the page gives them. No cap, every single one stays:
struct rte_bbdev_op_datastruct rte_bbdev_op_dec_turbo_cb_paramsstruct rte_bbdev_op_dec_ldpc_cb_paramsstruct rte_bbdev_op_dec_turbo_tb_paramsstruct rte_bbdev_op_dec_ldpc_tb_paramsstruct rte_bbdev_op_turbo_decstruct rte_bbdev_op_ldpc_decstruct rte_bbdev_op_enc_turbo_cb_paramsstruct rte_bbdev_op_enc_turbo_tb_paramsstruct rte_bbdev_op_enc_ldpc_cb_paramsstruct rte_bbdev_op_enc_ldpc_tb_paramsstruct rte_bbdev_op_turbo_encstruct rte_bbdev_op_ldpc_encstruct rte_bbdev_op_fftstruct rte_bbdev_op_mldtsstruct rte_bbdev_op_cap_turbo_decstruct rte_bbdev_op_cap_turbo_encstruct rte_bbdev_op_cap_ldpc_decstruct rte_bbdev_op_cap_ldpc_encstruct rte_bbdev_op_cap_fftstruct rte_bbdev_op_cap_mldstruct rte_bbdev_enc_opstruct rte_bbdev_dec_opstruct rte_bbdev_fft_opstruct rte_bbdev_mldts_opstruct rte_bbdev_op_cap
ποΈ Enumerations ποΈ
Bestie, these bitmask enums are the whole vibe check. Every value stays exactly as written β don't @ me. π
enum rte_bbdev_op_td_flag_bitmasks
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
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
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
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
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
enum rte_bbdev_op_mldts_flag_bitmasks {
RTE_BBDEV_MLDTS_REP = (1ULL << 0)
}
enum rte_bbdev_op_cb_mode
enum rte_bbdev_op_cb_mode {
RTE_BBDEV_TRANSPORT_BLOCK = 0,
RTE_BBDEV_CODE_BLOCK = 1
}
enum rte_bbdev_op_type
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
}
And then there's this last one:
enumβ yes, the page literally just saysenumhere. No name, no values, no explanation. It's giving mysterious cliffhanger energy π.
π§ Functions π§
Here's the declared function list, bestie. Signatures stay verbatim because we do not mess with header receipts. π
const char * rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)β exact signature, copied with love.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)β same deal: verbatim, no edits.static int rte_bbdev_enc_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_enc_op **ops, unsigned int num_ops)β exact as listed.static int rte_bbdev_dec_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_dec_op **ops, unsigned int num_ops)β exact as listed.static int rte_bbdev_fft_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_fft_op **ops, unsigned int num_ops)β exact as listed.static int rte_bbdev_mldts_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)β yep,uint16_t num_opshere, notunsigned int. Keep that detail. π«Άstatic void rte_bbdev_dec_op_free_bulk (struct rte_bbdev_dec_op **ops, unsigned int num_ops)β exact as listed.static void rte_bbdev_enc_op_free_bulk (struct rte_bbdev_enc_op **ops, unsigned int num_ops)β exact as listed.static void rte_bbdev_fft_op_free_bulk (struct rte_bbdev_fft_op **ops, unsigned int num_ops)β exact as listed.static void rte_bbdev_mldts_op_free_bulk (struct rte_bbdev_mldts_op **ops, unsigned int num_ops)β exact as listed.
π 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
Okay bestie, these are the flags for the turbo decoder operation and capability structure π β every single one matters, so hereβs the whole lineup:
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVEβ set this if sub block de-interleaving is to be performed.RTE_BBDEV_TURBO_CRC_TYPE_24Bβ use CRC Type 24B; otherwise itβs CRC Type 24A.RTE_BBDEV_TURBO_EQUALIZERβ set this if turbo equalization is to be performed.RTE_BBDEV_TURBO_SOFT_OUT_SATURATEβ if set, saturate soft output to+/-127.RTE_BBDEV_TURBO_HALF_ITERATION_EVENβ set to1to start iteration from even, else odd; one iteration =max_iteration + 0.5.RTE_BBDEV_TURBO_CONTINUE_CRC_MATCHβ if0, TD stops after CRC matches; else if1, it runs to the end of the next odd iteration after CRC matches.RTE_BBDEV_TURBO_SOFT_OUTPUTβ set if soft output is required to be output.RTE_BBDEV_TURBO_EARLY_TERMINATIONβ set to enable early termination mode.RTE_BBDEV_TURBO_DEC_INTERRUPTSβ set if a device supports decoder dequeue interrupts.RTE_BBDEV_TURBO_POS_LLR_1_BIT_INβ 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 withRTE_BBDEV_TURBO_NEG_LLR_1_BIT_INwhen used to formalize the input data format.RTE_BBDEV_TURBO_NEG_LLR_1_BIT_INβ 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 withRTE_BBDEV_TURBO_POS_LLR_1_BIT_INwhen used to formalize the input data format.RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUTβ 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 withRTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUTwhen used to formalize the input data format.RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUTβ 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 withRTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUTwhen used to formalize the input data format.RTE_BBDEV_TURBO_MAP_DECβ set if the driver supports flexible parallel MAP engine decoding. If itβs not supported, thenum_maps(number of MAP engines) argument is unusable.RTE_BBDEV_TURBO_DEC_SCATTER_GATHERβ set if a device supports scatter-gather functionality.RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEPβ set to keep CRC24B bits appended while decoding. Only usable when decoding Transport Block mode.RTE_BBDEV_TURBO_DEC_CRC_24B_DROPβ 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
These are the flags for the turbo encoder operation and capability structure β¨ β short list, but every bit is doing its job:
RTE_BBDEV_TURBO_RV_INDEX_BYPASSβ ignorerv_indexand setK0 = 0.RTE_BBDEV_TURBO_RATE_MATCHβ set if rate matching is to be performed.RTE_BBDEV_TURBO_CRC_24B_ATTACHβ this bit must be set to enable CRC-24B generation.RTE_BBDEV_TURBO_CRC_24A_ATTACHβ this bit must be set to enable CRC-24A generation.RTE_BBDEV_TURBO_ENC_INTERRUPTSβ set if a device supports encoder dequeue interrupts.RTE_BBDEV_TURBO_ENC_SCATTER_GATHERβ 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
LDPC decoder flags, bestie π¦ β this is the big one, so stay with me:
RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECKβ set for transport block CRC-24A checking.RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECKβ set for code block CRC-24B checking.RTE_BBDEV_LDPC_CRC_TYPE_24B_DROPβ set to drop the last CRC bits decoding output.RTE_BBDEV_LDPC_CRC_TYPE_16_CHECKβ set for transport block CRC-16 checking.RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASSβ set for bit-level de-interleaver bypass on Rx stream.RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLEβ set for HARQ combined input stream enable.RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLEβ set for HARQ combined output stream enable.RTE_BBDEV_LDPC_DECODE_BYPASSβ set for LDPC decoder bypass.RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLEmust be set.RTE_BBDEV_LDPC_SOFT_OUT_ENABLEβ set for soft-output stream enable.RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASSβ set for Rate-Matching bypass on soft-out stream.RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASSβ set for bit-level de-interleaver bypass on soft-output stream.RTE_BBDEV_LDPC_ITERATION_STOP_ENABLEβ set for iteration stopping on successful decode condition, i.e. a successful syndrome check.RTE_BBDEV_LDPC_DEC_INTERRUPTSβ set if a device supports decoder dequeue interrupts.RTE_BBDEV_LDPC_DEC_SCATTER_GATHERβ set if a device supports scatter-gather functionality.RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSIONβ set if a device supports input/output HARQ compression.RTE_BBDEV_LDPC_LLR_COMPRESSIONβ set if a device supports input LLR compression.RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLEβ set if a device supports HARQ input from the deviceβs internal memory.RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLEβ set if a device supports HARQ output to the deviceβs internal memory.RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACKβ set if a device supports loop-back access to HARQ internal memory. Intended for troubleshooting.RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERSβ 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.RTE_BBDEV_LDPC_HARQ_4BIT_COMPRESSIONβ 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
LDPC encoder flags incoming π β yes, theyβre giving capability-structure realness:
RTE_BBDEV_LDPC_INTERLEAVER_BYPASSβ set for bit-level interleaver bypass on output stream.RTE_BBDEV_LDPC_RATE_MATCHβ set if rate matching is to be performed.RTE_BBDEV_LDPC_CRC_24A_ATTACHβ set for transport block CRC-24A attach.RTE_BBDEV_LDPC_CRC_24B_ATTACHβ set for code block CRC-24B attach.RTE_BBDEV_LDPC_CRC_16_ATTACHβ set for code block CRC-16 attach.RTE_BBDEV_LDPC_ENC_INTERRUPTSβ set if a device supports encoder dequeue interrupts.RTE_BBDEV_LDPC_ENC_SCATTER_GATHERβ set if a device supports scatter-gather functionality.RTE_BBDEV_LDPC_ENC_CONCATENATIONβ 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
FFT flags, and yes, the vibes are flexible π β hereβs every one:
RTE_BBDEV_FFT_WINDOWINGβ flexible windowing capability.RTE_BBDEV_FFT_CS_ADJUSTMENTβ flexible adjustment of Cyclic Shift time offset.RTE_BBDEV_FFT_DFT_BYPASSβ set for bypass the DFT and get directly into iDFT input.RTE_BBDEV_FFT_IDFT_BYPASSβ set for bypass the IDFT and get directly the DFT output.RTE_BBDEV_FFT_WINDOWING_BYPASSβ set for bypass time domain windowing.RTE_BBDEV_FFT_POWER_MEASβ set for optional power measurement on DFT output.RTE_BBDEV_FFT_FP16_INPUTβ set if the input data used FP16 format.RTE_BBDEV_FFT_FP16_OUTPUTβ set if the output data uses FP16 format.RTE_BBDEV_FFT_TIMING_OFFSET_PER_CSβ flexible adjustment of Timing offset adjustment per CS.RTE_BBDEV_FFT_TIMING_ERRORβ flexible adjustment of Timing error correction per CS.RTE_BBDEV_FFT_DEWINDOWINGβ set for optional frequency domain dewindowing.RTE_BBDEV_FFT_FREQ_RESAMPLINGβ flexible adjustment of frequency resampling mode.
Definition at line 232 of file rte_bbdev_op.h.
enum rte_bbdev_op_mldts_flag_bitmasks
MLDTS flags β tiny but iconic π:
RTE_BBDEV_MLDTS_REPβ 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
These are the flags for the Code Block/Transport block mode, bestie π«Ά:
RTE_BBDEV_TRANSPORT_BLOCKβ one operation is one or fraction of one transport block.RTE_BBDEV_CODE_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. No cap, the enum is ready to grow π:
RTE_BBDEV_OP_NONEβ dummy operation that does nothing.RTE_BBDEV_OP_TURBO_DECβ Turbo decode.RTE_BBDEV_OP_TURBO_ENCβ Turbo encode.RTE_BBDEV_OP_LDPC_DECβ LDPC decode.RTE_BBDEV_OP_LDPC_ENCβ LDPC encode.RTE_BBDEV_OP_FFTβ FFT.RTE_BBDEV_OP_MLDTSβ MLD-TS.
Definition at line 930 of file rte_bbdev_op.h.
anonymous enum
Bit indexes of possible errors reported through status field π₯.
Definition at line 942 of file rte_bbdev_op.h.
π FUNCTION DOCUMENTATION π
okay bestie, this is the part where we actually call stuff. all the helper functions, laid out like a little function runway. let's go π
πΈ rte_bbdev_op_type_str
const char * rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)
Converts a queue operation type from its enum form into a string. literally enum-to-string glow-up β¨
Parameters
op_typeβ the operation type, as an enum
Returns
The operation type as a string, or NULL if op_type is invalid. so if you get NULL back, that's your vibe check failing π
π¦ rte_bbdev_op_pool_create
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. this is the main character function of the whole allocation saga β everything else builds on the pool you make here π
Parameters
nameβ pool name.typeβ operation type. useRTE_BBDEV_OP_NONEfor a pool which supports all operation types. no cap, that's the flexible one πnum_elementsβ number of elements in the pool.cache_sizeβ number of elements to cache on an lcore. seerte_mempool_create()for further details about cache size. (yes bestie, go read that one too, it's the lore π«Ά)socket_idβ socket to allocate memory on.
Returns
- Pointer to a mempool on success,
NULLpointer on failure.
so check for that NULL, fr fr π
π rte_bbdev_enc_op_alloc_bulk
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. bulk = grab a whole handful at once, it's giving efficiency π
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create().opsβ output array to place allocated operationsnum_opsβ number of operations to allocate
Returns
0on successEINVALif invalid mempool is provided
Definition at line1076of filerte_bbdev_op.h.
π rte_bbdev_dec_op_alloc_bulk
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. same energy as the encode one, just decode flavored π«
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create().opsβ output array to place allocated operationsnum_opsβ number of operations to allocate
Returns
0on successEINVALif invalid mempool is provided
Definition at line1107of filerte_bbdev_op.h.
π§ rte_bbdev_fft_op_alloc_bulk
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. FFT said lemme in on the bulk action π₯
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create.opsβ output array to place allocated operations.num_opsβ number of operations to allocate.
Returns
0on success.EINVALif invalid mempool is provided.
Definition at line1138of filerte_bbdev_op.h.
β rte_bbdev_mldts_op_alloc_bulk
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. and yes bestie, clock it: num_ops here is a uint16_t, not an unsigned int like the others π don't get caught slippin'
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create.opsβ output array to place allocated operations.num_opsβ number of operations to allocate.
Returns
0on success.EINVALif invalid mempool is provided.
Definition at line1167of filerte_bbdev_op.h.
πΈ rte_bbdev_dec_op_free_bulk
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 β that part is not optional, so keep your ops together like a little friend group π«Ά
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line1192of filerte_bbdev_op.h.
π¦ rte_bbdev_enc_op_free_bulk
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. yes, again. same mempool. always the same mempool π€
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line1209of filerte_bbdev_op.h.
π rte_bbdev_fft_op_free_bulk
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.
ngl the docs literally say "encode" here even though this is the FFT one β that's just what the source page says, bestie, I'm not touching it π
Parameters
opsβ operation structures.num_opsβ number of structures.
Definition at line1226of filerte_bbdev_op.h.
π rte_bbdev_mldts_op_free_bulk
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. (again β "encode" is what the page says, I'm just the messenger π all mldts ops must share a mempool regardless, that bit is real)
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line1243of filerte_bbdev_op.h.
β¨ AUTHOR β¨
Generated automatically by Doxygen for DPDK from the source code. so nobody wrote this, a robot did. and honestly? the robot ate π€π
aaaand that's the whole page bestie!! π₯³ every function, every param, every return value, every EINVAL, every line number β all accounted for. you understood the assignment, and now you understand bbdev ops too πβ¨
mwah π β this was DPDK Version 26.03.0, page <code>rte_bbdev_op.h(3)</code>, and you've officially reached the end. go build something iconic ππ¦
π¦ where this page comes from
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms