DPDK  21.08.0
Data Fields
rte_bbdev_op_data Struct Reference

#include <rte_bbdev_op.h>

Data Fields

struct rte_mbufdata
 
uint32_t offset
 
uint32_t length
 

Detailed Description

Data input and output buffer for BBDEV operations

Definition at line 221 of file rte_bbdev_op.h.

Field Documentation

◆ data

struct rte_mbuf* data

The mbuf data structure representing the data for BBDEV operation.

This mbuf pointer can point to one Code Block (CB) data buffer or multiple CBs contiguously located next to each other. 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. The smallest piece of data that can be contained in one mbuf is one CB. An mbuf can include one contiguous CB, 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. This capability is reported by the capability flags:

  • RTE_BBDEV_(TURBO/LDPC)_ENC_SCATTER_GATHER and
  • RTE_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.

Examples:
examples/bbdev_app/main.c.

Definition at line 251 of file rte_bbdev_op.h.

◆ offset

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.

Examples:
examples/bbdev_app/main.c.

Definition at line 259 of file rte_bbdev_op.h.

◆ length

uint32_t length

The total data length to be processed in one operation, in bytes.

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.

In case of chained mbuf, this data length includes the lengths of the "scattered" data segments undergoing the operation.

Examples:
examples/bbdev_app/main.c.

Definition at line 272 of file rte_bbdev_op.h.


The documentation for this struct was generated from the following file: