---
name: "rte_bbdev_op_ldpc_dec"
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_ldpc_dec"
---

# rte\_bbdev\_op\_ldpc\_dec(3)

## NAME

rte\_bbdev\_op\_ldpc\_dec

## SYNOPSIS

`#include <rte_bbdev_op.h>`

### Data Fields

struct **rte\_bbdev\_op\_data** **input**\
 struct **rte\_bbdev\_op\_data** **hard\_output**\
 struct **rte\_bbdev\_op\_data** **soft\_output**\
 struct **rte\_bbdev\_op\_data** **harq\_combined\_input**\
 struct **rte\_bbdev\_op\_data** **harq\_combined\_output**\
 uint32\_t **op\_flags**\
 uint8\_t **rv\_index**\
 uint8\_t **iter\_max**\
 uint8\_t **iter\_count**\
 uint8\_t **basegraph**\
 uint16\_t **z\_c**\
 uint16\_t **n\_cb**\
 uint8\_t **q\_m**\
 uint16\_t **n\_filler**\
 uint8\_t **code\_block\_mode**\
 uint16\_t **k0**\

## Detailed Description

Operation structure for LDPC decode.

An operation can be performed on one CB at a time 'CB-mode'. An operation can also be performed on one or multiple CBs that logically belong to a TB 'TB-mode' (Currently not supported).

The input encoded CB data is the Virtual Circular Buffer data stream.

Each byte in the input circular buffer is the LLR value of each bit of the original CB.

Hard output is a mandatory capability that all BBDEV PMDs support. This is the decoded CBs (CRC24A/B is the last 24-bit in each decoded CB).

Soft output is an optional capability for BBDEV PMDs. If supported, an LLR rate matched output is computed in the soft\_output buffer structure. These are A Posteriori Probabilities (APP) LLR samples for coded bits.

HARQ combined output is an optional capability for BBDEV PMDs. If supported, a LLR output is streamed to the harq\_combined\_output buffer.

HARQ combined input is an optional capability for BBDEV PMDs. If supported, a LLR input is streamed from the harq\_combined\_input buffer.

The output mbuf data structure is expected to be allocated by the application with enough room for the output data.

Definition at line **506** of file **rte\_bbdev\_op.h**.

## Field Documentation

### struct rte\_bbdev\_op\_data input

The Virtual Circular Buffer for this code block, one LLR per bit of the original CB.

Definition at line **510** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_data hard\_output

The hard decisions buffer for the decoded output, size K for each CB

Definition at line **514** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_data soft\_output

The soft LLR output LLR stream buffer - optional

Definition at line **516** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_data harq\_combined\_input

The HARQ combined LLR stream input buffer - optional

Definition at line **518** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_data harq\_combined\_output

The HARQ combined LLR stream output buffer - optional

Definition at line **520** of file **rte\_bbdev\_op.h**.

### uint32\_t op\_flags

Flags from rte\_bbdev\_op\_ldpcdec\_flag\_bitmasks

Definition at line **523** of file **rte\_bbdev\_op.h**.

### uint8\_t rv\_index

Rate matching redundancy version \[3GPP TS38.212, section 5.4.2.1\]

Definition at line **528** of file **rte\_bbdev\_op.h**.

### uint8\_t iter\_max

The maximum number of iterations to perform in decoding CB in this operation - input

Definition at line **532** of file **rte\_bbdev\_op.h**.

### uint8\_t iter\_count

The number of iterations that were performed in decoding CB in this decode operation - output

Definition at line **536** of file **rte\_bbdev\_op.h**.

### uint8\_t basegraph

1: LDPC Base graph 1, 2: LDPC Base graph 2. \[3GPP TS38.212, section 5.2.2\]

Definition at line **540** of file **rte\_bbdev\_op.h**.

### uint16\_t z\_c

Zc, LDPC lifting size. \[3GPP TS38.212, section 5.2.2\]

Definition at line **544** of file **rte\_bbdev\_op.h**.

### uint16\_t n\_cb

Ncb, length of the circular buffer in bits. \[3GPP TS38.212, section 5.4.2.1\]

Definition at line **548** of file **rte\_bbdev\_op.h**.

### uint8\_t q\_m

Qm, modulation order {1,2,4,6,8}. \[3GPP TS38.212, section 5.4.2.2\]

Definition at line **552** of file **rte\_bbdev\_op.h**.

### uint16\_t n\_filler

Number of Filler bits, n\_filler = K – K’ \[3GPP TS38.212 section 5.2.2\]

Definition at line **556** of file **rte\_bbdev\_op.h**.

### uint8\_t code\_block\_mode

\[0 - TB : 1 - CB\]

Definition at line **558** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_dec\_ldpc\_cb\_params cb\_params

Struct which stores Code Block specific parameters

Definition at line **561** of file **rte\_bbdev\_op.h**.

### struct rte\_bbdev\_op\_dec\_ldpc\_tb\_params tb\_params

Struct which stores Transport Block specific parameters

Definition at line **563** of file **rte\_bbdev\_op.h**.

### uint16\_t k0

Optional k0 Rate matching starting position, overrides rv\_index when non null \[3GPP TS38.212, section 5.4.2.1\]

Definition at line **568** of file **rte\_bbdev\_op.h**.

## Author

Generated automatically by Doxygen for DPDK from the source code.
