rte_bbdev_op_data(3)
π NAME π
okay so bestie, this whole page is about rte_bbdev_op_data β yes that's the name, and the manual it lives in is the Library Functions Manual, which is exactly as fancy as it sounds π
β¨ SYNOPSIS β¨
#include <rte_bbdev_op.h>
π Data Fields π
struct rte_mbuf * datauint32_t offsetuint32_t length
π¦ DETAILED DESCRIPTION π¦
it's giving... Data input and output buffer for BBDEV operations β¨ that's the whole vibe.
Definition at line 274 of file rte_bbdev_op.h.
πΈ FIELD DOCUMENTATION πΈ
π struct rte_mbuf* data
The mbuf data structure representing the data for BBDEV operation. literally the main character of this struct π«Ά
This mbuf pointer can point to one Code Block (CB) data buffer or multiple CBs contiguously located next to each other. And bestie, a Transport Block (TB) represents a whole piece of data that is divided into one or more CBs. Maximum number of CBs can be contained in one TB is defined by RTE_BBDEV_(TURBO/LDPC)_MAX_CODE_BLOCKS.
An mbuf data structure cannot represent more than one TB, no cap. The smallest piece of data that can be contained in one mbuf is one CB. So an mbuf can include:
- one contiguous CB,
- a subset of contiguous CBs that are belonging to one TB,
- or all contiguous CBs that are belonging to one TB.
If a BBDEV PMD supports the extended capability "Scatter-Gather", then it is capable of collecting (gathering) non-contiguous (scattered) data from multiple locations in the memory π iconic honestly. This capability is reported by the capability flags:
RTE_BBDEV_(TURBO/LDPC)_ENC_SCATTER_GATHERandRTE_BBDEV_(TURBO/LDPC)_DEC_SCATTER_GATHER.
Only if a BBDEV PMD supports this feature, chained mbuf data structures are accepted β A chained mbuf can represent one non-contiguous CB or multiple non-contiguous CBs. If BBDEV PMD does not support this feature, it will assume inbound mbuf data contains one segment.
The output mbuf data though is always one segment, even if the input was a chained mbuf. periodt. π
Definition at line 304 of file rte_bbdev_op.h.
π uint32_t offset
The starting point of the BBDEV (encode/decode) operation, in bytes.
BBDEV starts to read data past this offset. In case of chained mbuf, this offset applies only to the first mbuf segment.
Definition at line 312 of file rte_bbdev_op.h.
π uint32_t length
The total data length to be processed in one operation, in bytes.
So like, in case the mbuf data is representing one CB, this is the length of the CB undergoing the operation. If it's for multiple CBs, this is the total length of those CBs undergoing the operation. If it is for one TB, this is the total length of the TB under operation. slay, it scales π
In case of chained mbuf, this data length includes the lengths of the "scattered" data segments undergoing the operation.
Definition at line 325 of file rte_bbdev_op.h.
π AUTHOR π
Generated automatically by Doxygen for DPDK from the source code. not a human wrote this, it's the machine's finest work π€β¨
and that's the whole page bestie!! this lovely thing shipped in DPDK Version 25.11.3, it's the rte_bbdev_op_data(3) page from the Library Functions Manual, and yes it's auto-generated Doxygen energy from top to bottom. go forth and gather those scattered CBs π§πβ¨
π¦ 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