---
name: "rte_bbdev_op.h"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_bbdev_op.h"
---

# 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 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)\

## 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**

- *RTE\_BBDEV\_TURBO\_SUBBLOCK\_DEINTERLEAVE*

  *If sub block de-interleaving is to be performed.*

- *RTE\_BBDEV\_TURBO\_CRC\_TYPE\_24B*

  *To use CRC Type 24B (otherwise use CRC Type 24A).*

- *RTE\_BBDEV\_TURBO\_EQUALIZER*

  *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 to 1 to start iteration from even, else odd; one iteration = max\_iteration + 0.5*

- *RTE\_BBDEV\_TURBO\_CONTINUE\_CRC\_MATCH*

  *If 0, TD stops after CRC matches; else if 1, runs to end of 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 with RTE\_BBDEV\_TURBO\_NEG\_LLR\_1\_BIT\_IN when 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 with RTE\_BBDEV\_TURBO\_POS\_LLR\_1\_BIT\_IN when 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 with RTE\_BBDEV\_TURBO\_NEG\_LLR\_1\_BIT\_SOFT\_OUT when 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 with RTE\_BBDEV\_TURBO\_POS\_LLR\_1\_BIT\_SOFT\_OUT when used to formalize the input data format.*

- *RTE\_BBDEV\_TURBO\_MAP\_DEC*

  *Set if driver supports flexible parallel MAP engine decoding. If not supported, num\_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

*Flags for turbo encoder operation and capability structure*

**Enumerator**

- *RTE\_BBDEV\_TURBO\_RV\_INDEX\_BYPASS*

  *Ignore rv\_index and set K0 = 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\_ENABLE must 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

### 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* **1076** *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* **1107** *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* **1138** *of file* **rte\_bbdev\_op.h***.*

### static 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* **1167** *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* **1192** *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* **1209** *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* **1226** *of file* **rte\_bbdev\_op.h***.*

### static 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* **1243** *of file* **rte\_bbdev\_op.h***.*

## Author

*Generated automatically by Doxygen for DPDK from the source code.*
