rte_bbdev_op_ldpc_dec(3)

πŸ“¦ version 26.03, in nixos 26.05, nixpkgs unstable

✨ rte_bbdev_op_ldpc_dec ✨

Okay bestie, so this is the manual page for rte_bbdev_op_ldpc_dec(3) β€” it's giving iconic LDPC decoder operation struct energy, and we're gonna get into every single field, no cap. πŸ’…


✨ 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

✨ DESCRIPTION ✨

So this whole struct is the Operation structure for LDPC decode, periodt. πŸ’–

Here's the vibe: an operation can be performed on one CB at a time, and that's called "CB-mode". An operation can also be performed on one or multiple CBs that logically belong to a TB, and that's "TB-mode" β€” but heads up, TB-mode is Currently not supported 😭 (we love an honest king).

The input encoded CB data is the Virtual Circular Buffer data stream. And bestie, listen β€” each byte in the input circular buffer is the LLR value of each bit of the original CB. Literally every byte. 🀯

Hard output is a mandatory capability that all BBDEV PMDs support β€” it's the main character, no cap. This is the decoded CBs (and yes, CRC24A/B is the last 24-bit in each decoded CB, remember that πŸ’…).

Soft output is an optional capability for BBDEV PMDs. If it's 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 β€” say that three times fast, I dare you. πŸ¦‹

HARQ combined output is an optional capability for BBDEV PMDs. If supported, a LLR output is streamed to the harq_combined_output buffer. Slay. ✨

HARQ combined input is an optional capability for BBDEV PMDs. If supported, a LLR input is streamed from the harq_combined_input buffer. Iconic behavior. πŸŽ€

The output mbuf data structure is expect to be allocated by the application with enough room for the output data β€” so like, don't come crying to me if you didn't allocate enough space, bestie. πŸ™ˆ

Definition at line 506 of file rte_bbdev_op.h. (iykyk)

✨ FIELD DOCUMENTATION ✨

πŸ¦‹ struct rte_bbdev_op_data input

The Virtual Circular Buffer for this code block β€” one LLR per bit of the original CB. Literally one LLR for every single bit, we love precision. πŸ’–

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. Yes, size K, write that down. πŸ“

Definition at line 514 of file rte_bbdev_op.h.

πŸ¦‹ struct rte_bbdev_op_data soft_output

The soft LLR output LLR stream buffer β€” and it's optional, so like, no pressure bestie. πŸ’…

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 β€” also optional. We love a flexible icon. πŸŽ€

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 β€” you guessed it, optional. The optionality is giving very "take it or leave it" energy. ✨

Definition at line 520 of file rte_bbdev_op.h.

πŸ¦‹ uint32_t op_flags

Flags from rte_bbdev_op_ldpcdec_flag_bitmasks β€” literally just flags, bestie. Go look at the bitmasks if you need the details. πŸ”₯

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]. Not me citing the spec, but also yes me citing the spec. πŸ“š

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 β€” this one is input, so you're telling it what to do. Boss energy. πŸ‘‘

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 β€” this one is output, so it's telling you what happened. The tables have turned. 😌

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]. Pick your fighter. βš”οΈ

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]. Lifting size sounds like gym stuff but it's literally math. πŸ‹οΈβ€β™€οΈ

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]. Circular buffer length, got it. 🎯

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]. Those are your only options bestie, don't try anything else. πŸ’€

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]. It's math, but make it fashion. ✨

Definition at line 556 of file rte_bbdev_op.h.

πŸ¦‹ uint8_t code_block_mode

[0 - TB : 1 - CB] β€” so 0 means TB and 1 means CB. Short, sweet, to the point. We love efficiency. πŸŽ€

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 β€” it's giving very organized, very demure. πŸ¦‹

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 β€” sibling energy to cb_params, we love a matching set. πŸ’–

Definition at line 563 of file rte_bbdev_op.h.

πŸ¦‹ uint16_t k0

Optional k0 Rate matching starting position β€” and it overrides rv_index when non null [3GPP TS38.212, section 5.4.2.1]. So like, k0 said "move over rv_index, I'm the main character now." πŸ’…

Definition at line 568 of file rte_bbdev_op.h.

✨ AUTHOR ✨

Generated automatically by Doxygen for DPDK from the source code. Not me being auto-generated but also yes me being auto-generated. πŸ€–πŸ’–


That's the whole page bestie β€” every field, every line number, every spec reference, all of it. Slay. πŸ’…βœ¨

DPDK β€” Version 26.03.0 β€” rte_bbdev_op_ldpc_dec(3) β€” okay bye ily πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from