rte_bbdev_op.h(3)
π rte_bbdev_op.h π
okay so this one is <pink>rte_bbdev_op.h</pink> from the Library Functions Manual, section 3, and bestieβ¦ sit down, grab a boba, hydrate. This is the header that defines the wireless base band layer 1 operations and capabilities. It's a big one. We're taking it slow. π«Ά
β¨ NAME β¨
rte_bbdev_op.h β the header of all headers for base band ops π
β¨ SYNOPSIS β¨
first things first, the includes, because obviously:
#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 π
the way this file is stacked with structs?? not me counting them, but there's literally twenty-five of them, periodt:
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
likeβ¦ the turbo ones, the ldpc ones, the fft one, the mldts one. it's giving full coverage and I'm obsessed. πΈ
π§ Enumerations π§
okay this is the part where the flags live and every single one matters, so I'm listing them ALL. no skipping. we do not skip here. π
enum rte_bbdev_op_td_flag_bitmasksβ the turbo decode flag bits, bestie, and yeah there's no(1ULL << 8)in there, that's on purpose, iykyk: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β turbo encode flags, the lil sister of the one above π: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β LDPC decode flags, and there's twenty-one of them so buckle up π¦: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β LDPC encode flags, all eight of them, slay β¨: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β FFT flags, twelve of them, all the vibes π: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β just the one flag, she's lowkey minimal and I respect it π:RTE_BBDEV_MLDTS_REP = (1ULL << 0)
enum rte_bbdev_op_cb_modeβ code block mode, two moods only:RTE_BBDEV_TRANSPORT_BLOCK = 0RTE_BBDEV_CODE_BLOCK = 1
enum rte_bbdev_op_typeβ the operation types, no values assigned so they just vibe in order π:RTE_BBDEV_OP_NONERTE_BBDEV_OP_TURBO_DECRTE_BBDEV_OP_TURBO_ENCRTE_BBDEV_OP_LDPC_DECRTE_BBDEV_OP_LDPC_ENCRTE_BBDEV_OP_FFTRTE_BBDEV_OP_MLDTS
enumβ and then there's literally justβ¦ an unnamedenum. no name, no members listed. she's mysterious. she's that girl. π
π Functions π
the actual doing-things part, bestie. here's every single one:
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 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 void rte_bbdev_mldts_op_free_bulk(struct rte_bbdev_mldts_op **ops, unsigned int num_ops)
notice how the mldts ones take uint16_t num_ops while everybody else is on unsigned int?? yeah. that's just how she is. π«Ά
πΈ Detailed Description πΈ
Defines wireless base band layer 1 operations and capabilities
and that's the whole description. short, sweet, iconic. also, for the record:
Definition in file rte_bbdev_op.h. π
and we're only just getting started, because the structs themselves areβ¦
β¨ Enumeration Type Documentation β¨
enum rte_bbdev_op_td_flag_bitmasks π¦
Flags for turbo decoder operation and capability structure
β¨ Enumerator β¨
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVEβ set when sub block de-interleaving needs to be performed. π«RTE_BBDEV_TURBO_CRC_TYPE_24Bβ go with CRC Type 24B; if not, it's CRC Type 24A. πRTE_BBDEV_TURBO_EQUALIZERβ set when turbo equalization needs to be performed. πΈRTE_BBDEV_TURBO_SOFT_OUT_SATURATEβ if set, soft output gets saturated 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. A 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. A 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. A 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. A 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 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 so they're not 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 β¨
RTE_BBDEV_TURBO_RV_INDEX_BYPASSβ ignorerv_indexand setK0 = 0. πRTE_BBDEV_TURBO_RATE_MATCHβ 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 π
Flags for LDPC decoder operation and capability structure
β¨ Enumerator β¨
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 device's internal memory. π§RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLEβ set if a device supports HARQ output to 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 π
Flags for LDPC encoder operation and capability structure
β¨ Enumerator β¨
RTE_BBDEV_LDPC_INTERLEAVER_BYPASSβ set for bit-level interleaver bypass on output stream. π¦RTE_BBDEV_LDPC_RATE_MATCHβ 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 β¨
Flags for FFT operation and capability structure.
β¨ Enumerator β¨
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 π¦
Flags for MLDTS operation and capability structure
β¨ Enumerator β¨
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 π
Flags for the Code Block/Transport block mode
β¨ Enumerator β¨
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.
β¨ Enumerator β¨
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 π
β¨ rte_bbdev_op_type_str β¨
const char * rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)
okay so bestie, this one is your little translator bestie π it takes a queue operation type and turns that enum into a string, so you can actually print it and be like "oh THAT'S what it was" instead of staring at a number like ποΈπποΈ
Parameters
op_typeβ the operation type, but as an enum obviously
Returns
- The operation type as a string β¨ β OR
NULLifop_typeis invalid π like it literally cannot find that enum's vibe, so it just hands you back nothing
β¨ 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)
this creates a bbdev operation mempool π it's the pool your ops live in, and honestly every other function in this section is obsessed with it because they ALL need one. main character energy, no cap.
Parameters
nameβ the pool's name π·οΈtypeβ the operation type. here's the trick bestie: useRTE_BBDEV_OP_NONEif you want a pool that supports all operation types β¨ (yes, all of them, she's versatile)num_elementsβ how many elements fit in the poolcache_sizeβ how many elements get cached on an lcore π§ for further details about cache size, go checkrte_mempool_create()β that's where the tea issocket_idβ which socket to allocate the memory on
Returns
- Pointer to a mempool on success π«Ά
NULLpointer on failure π
β¨ 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 allocates encode operations from a mempool, with parameter defaults reset π§Ό like a fresh start, a clean slate, a little reset moment for your ops
Parameters
mempoolβ operation mempool, and it has to be one created byrte_bbdev_op_pool_create()opsβ output array where the allocated operations get droppednum_opsβ how many operations you wanna allocate
Returns
0on success β¨EINVALif an invalid mempool is provided π
Definition at line 1076 of file rte_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]
same energy as above bestie, but this one's for decode operations π bulk allocate decode ops from a mempool, parameter defaults fully reset
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create()opsβ output array to place the allocated operationsnum_opsβ number of operations to allocate
Returns
0on success β¨EINVALif invalid mempool is provided π
Definition at line 1107 of file rte_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]
and now for the FFT girlies πΈ bulk allocate FFT operations from a mempool, with default parameters π¦
Parameters
mempoolβ operation mempool, created byrte_bbdev_op_pool_create.opsβ output array to place allocated operations.num_opsβ number of operations to allocate.
watch the punctuation bestie, the originals here end with periods and I am NOT about to lose them on my watch π
Returns
0on success.EINVALif invalid mempool is provided.
Definition at line 1138 of file rte_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]
MLD operations, bulk allocated from a mempool, parameter defaults reset π (and yes, num_ops here is a uint16_t β she's built different, literally, check the signature iykyk)
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 line 1167 of file rte_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 those decode operation structures that were allocated by rte_bbdev_dec_op_alloc_bulk() π«Ά
β οΈ real talk: all structures must belong to the same mempool. not some of them. all of them. don't mix pools bestie, that's not a vibe π
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line 1192 of file rte_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]
frees the encode operation structures that were allocated by rte_bbdev_enc_op_alloc_bulk() β¨ and again: all structures must belong to the same mempool π
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line 1209 of file rte_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]
frees encode operation structures that were allocated by rte_bbdev_fft_op_alloc_bulk π (yes bestie, the original literally says "encode operation structures" here β I'm not fixing it, I'm reporting it π) and all structures must belong to the same mempool, as always π
Parameters
opsβ operation structures.num_opsβ number of structures.
Definition at line 1226 of file rte_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]
frees encode operation structures that were allocated by rte_bbdev_mldts_op_alloc_bulk() π§ (again with the "encode" wording, I'm just the messenger π) β and obviously, all structures must belong to the same mempool π
Parameters
opsβ operation structuresnum_opsβ number of structures
Definition at line 1243 of file rte_bbdev_op.h.
π Author π
Generated automatically by Doxygen for DPDK from the source code π€β¨ like it literally wrote itself, iconic behaviour, we love a self-aware doc
aaaand that's the whole thing bestie, you made it to the end of part 3 ππ¦ this page is from DPDK Version 25.11.3 and it's the rte_bbdev_op.h(3) manual page, so yeah β go forth, allocate your ops in bulk, free them in bulk, and keep every single one of them in the same mempool. periodt π
ππΈ
π¦ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 Β· BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms