rte_bbdev_op_ldpc_dec(3)

πŸ’– rte_bbdev_op_ldpc_dec(3) πŸ’–

okay bestie, gather round 🫢 this is the Library Functions Manual page for rte_bbdev_op_ldpc_dec β€” yes the whole page, and yes we're reading all of it, no skimming, because LDPC decode does not do "vibes only" πŸ’…


✨ NAME ✨

rte_bbdev_op_ldpc_dec β€” the operation structure for LDPC decode, she's the blueprint, the moment, the whole plot πŸ“–


✨ 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. periodt, that's the assignment.

So here's the tea β˜• an operation can run on one CB at a time, and that's called "CB-mode". It can also run on one or multiple CBs that logically belong to a TB, which is "TB-mode" β€” but heads up, TB-mode is currently not supported, so don't come for her about it πŸ™ˆ

The input encoded CB data is the Virtual Circular Buffer data stream. Every single byte in that input circular buffer is the LLR value of each bit of the original CB. literally one LLR per bit, no cap.

Hard output is a mandatory capability β€” every BBDEV PMD supports it, no excuses πŸ’ͺ This is the decoded CBs, and btw the CRC24A/B is the last 24-bit in each decoded CB.

Soft output is an optional capability for BBDEV PMDs. If it's supported, an LLR rate matched output gets computed in the soft_output buffer structure. These are A Posteriori Probabilities (APP)</> LLR samples for coded bits. fancy.

HARQ combined output is also an optional capability for BBDEV PMDs. If it's supported, a LLR output is streamed to the harq_combined_output buffer.

HARQ combined input β€” you guessed it, optional capability too πŸ¦‹ If supported, a LLR input is streamed from the harq_combined_input buffer.

And the output mbuf data structure is expected to be allocated by the application, with enough room for the output data. so like, allocate your own room bestie, she is not your landlord 🏠

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] β€” that's the whole switch, two moods only πŸ’«

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. (not a human, just a very diligent little robot 🧚)

okay so that's the whole page, every field, every line number, every [3GPP TS38.212] citation, nothing skipped fr fr. yw bestie πŸ’–

and that's the wrap! mwah πŸ’‹ this was the Library Functions Manual page for rte_bbdev_op_ldpc_dec(3), brought to you by DPDK, Version 25.11.3. go slay your LDPC decode, you've got this πŸ‘‘βœ¨πŸŒΈ

πŸ“¦ where this page comes from