DPDK  19.02.0
Data Structures | Enumerations | Functions
rte_bbdev_op.h File Reference
#include <stdint.h>
#include <rte_common.h>
#include <rte_mbuf.h>
#include <rte_memory.h>
#include <rte_mempool.h>

Go to the source code of this file.

Data Structures

struct  rte_bbdev_op_dec_tb_params
struct  rte_bbdev_op_enc_tb_params
struct  rte_bbdev_op_turbo_enc
struct  rte_bbdev_op_cap_turbo_dec
struct  rte_bbdev_enc_op
struct  rte_bbdev_dec_op

Enumerations

enum  rte_bbdev_op_td_flag_bitmasks {
  RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE = (1ULL << 0), RTE_BBDEV_TURBO_CRC_TYPE_24B = (1ULL << 1), RTE_BBDEV_TURBO_EQUALIZER = (1ULL << 2), RTE_BBDEV_TURBO_SOFT_OUT_SATURATE = (1ULL << 3),
  RTE_BBDEV_TURBO_HALF_ITERATION_EVEN = (1ULL << 4), RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH = (1ULL << 5), RTE_BBDEV_TURBO_SOFT_OUTPUT = (1ULL << 6), RTE_BBDEV_TURBO_EARLY_TERMINATION = (1ULL << 7),
  RTE_BBDEV_TURBO_DEC_INTERRUPTS = (1ULL << 9), RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN = (1ULL << 10), RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN = (1ULL << 11), RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT = (1ULL << 12),
  RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT = (1ULL << 13), RTE_BBDEV_TURBO_MAP_DEC = (1ULL << 14), RTE_BBDEV_TURBO_DEC_SCATTER_GATHER = (1ULL << 15)
}
enum  rte_bbdev_op_te_flag_bitmasks {
  RTE_BBDEV_TURBO_RV_INDEX_BYPASS = (1ULL << 0), RTE_BBDEV_TURBO_RATE_MATCH = (1ULL << 1), RTE_BBDEV_TURBO_CRC_24B_ATTACH = (1ULL << 2), RTE_BBDEV_TURBO_CRC_24A_ATTACH = (1ULL << 3),
  RTE_BBDEV_TURBO_ENC_INTERRUPTS = (1ULL << 4)
}
enum  rte_bbdev_op_type { RTE_BBDEV_OP_NONE, RTE_BBDEV_OP_TURBO_DEC, RTE_BBDEV_OP_TURBO_ENC, RTE_BBDEV_OP_TYPE_COUNT }

Functions

const char *__rte_experimental rte_bbdev_op_type_str (enum rte_bbdev_op_type op_type)
struct rte_mempool
*__rte_experimental 
rte_bbdev_op_pool_create (const char *name, enum rte_bbdev_op_type type, unsigned int num_elements, unsigned int cache_size, int socket_id)
static int __rte_experimental rte_bbdev_enc_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
static int __rte_experimental rte_bbdev_dec_op_alloc_bulk (struct rte_mempool *mempool, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
static void __rte_experimental rte_bbdev_dec_op_free_bulk (struct rte_bbdev_dec_op **ops, unsigned int num_ops)
static void __rte_experimental rte_bbdev_enc_op_free_bulk (struct rte_bbdev_enc_op **ops, unsigned int num_ops)

Detailed Description

Defines wireless base band layer 1 operations and capabilities

Warning
EXPERIMENTAL: this API may change without prior notice

Definition in file rte_bbdev_op.h.

Enumeration Type Documentation

Flags for turbo decoder operation and capability structure

Enumerator:
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE 

If sub block de-interleaving is to be performed. To use CRC Type 24B (otherwise use CRC Type 24A).

RTE_BBDEV_TURBO_CRC_TYPE_24B 

If turbo equalization is to be performed.

RTE_BBDEV_TURBO_EQUALIZER 

If set, saturate soft output to +/-127

RTE_BBDEV_TURBO_SOFT_OUT_SATURATE 

Set to 1 to start iteration from even, else odd; one iteration = max_iteration + 0.5

RTE_BBDEV_TURBO_HALF_ITERATION_EVEN 

If 0, TD stops after CRC matches; else if 1, runs to end of next odd iteration after CRC matches

RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH 

Set if soft output is required to be output

RTE_BBDEV_TURBO_SOFT_OUTPUT 

Set to enable early termination mode

RTE_BBDEV_TURBO_EARLY_TERMINATION 

Set if a device supports decoder dequeue interrupts

RTE_BBDEV_TURBO_DEC_INTERRUPTS 

Set if positive LLR encoded input is supported. Positive LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN when used to formalize the input data format.

RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN 

Set if negative LLR encoded input is supported. Negative LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN when used to formalize the input data format.

RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN 

Set if positive LLR soft output is supported. Positive LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT when used to formalize the input data format.

RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT 

Set if negative LLR soft output is supported. Negative LLR value represents the level of confidence for bit '1', and vice versa for bit '0'. This is mutually exclusive with RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT when used to formalize the input data format.

RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT 

Set if driver supports flexible parallel MAP engine decoding. If not supported, num_maps (number of MAP engines) argument is unusable.

RTE_BBDEV_TURBO_MAP_DEC 

Set if a device supports scatter-gather functionality

RTE_BBDEV_TURBO_DEC_SCATTER_GATHER 

Set to keep CRC24B bits appended while decoding. Only usable when decoding Transport Blocks (code_block_mode = 0).

Definition at line 47 of file rte_bbdev_op.h.

Flags for turbo encoder operation and capability structure

Enumerator:
RTE_BBDEV_TURBO_RV_INDEX_BYPASS 

Ignore rv_index and set K0 = 0 If rate matching is to be performed

RTE_BBDEV_TURBO_RATE_MATCH 

This bit must be set to enable CRC-24B generation

RTE_BBDEV_TURBO_CRC_24B_ATTACH 

This bit must be set to enable CRC-24A generation

RTE_BBDEV_TURBO_CRC_24A_ATTACH 

Set if a device supports encoder dequeue interrupts

RTE_BBDEV_TURBO_ENC_INTERRUPTS 

Set if a device supports scatter-gather functionality

Definition at line 113 of file rte_bbdev_op.h.

Different operation types supported by the device

Enumerator:
RTE_BBDEV_OP_NONE 

Dummy operation that does nothing

RTE_BBDEV_OP_TURBO_DEC 

Turbo decode

RTE_BBDEV_OP_TURBO_ENC 

Turbo encode

RTE_BBDEV_OP_TYPE_COUNT 

Count of different op types

Definition at line 408 of file rte_bbdev_op.h.

Function Documentation

const char* __rte_experimental rte_bbdev_op_type_str ( enum rte_bbdev_op_type  op_type)

Converts queue operation type from enum to string

Parameters
op_typeOperation type as enum
Returns
Operation type as string or NULL if op_type is invalid
struct rte_mempool* __rte_experimental rte_bbdev_op_pool_create ( const char *  name,
enum rte_bbdev_op_type  type,
unsigned int  num_elements,
unsigned int  cache_size,
int  socket_id 
)
read

Creates a bbdev operation mempool

Parameters
namePool name.
typeOperation type, use RTE_BBDEV_OP_NONE for a pool which supports all operation types.
num_elementsNumber of elements in the pool.
cache_sizeNumber of elements to cache on an lcore, see rte_mempool_create() for further details about cache size.
socket_idSocket to allocate memory on.
Returns
  • Pointer to a mempool on success,
  • NULL pointer on failure.
Examples:
examples/bbdev_app/main.c.
static int __rte_experimental rte_bbdev_enc_op_alloc_bulk ( struct rte_mempool mempool,
struct rte_bbdev_enc_op **  ops,
uint16_t  num_ops 
)
inlinestatic

Bulk allocate encode operations from a mempool with parameter defaults reset.

Parameters
mempoolOperation mempool, created by rte_bbdev_op_pool_create().
opsOutput array to place allocated operations
num_opsNumber of operations to allocate
Returns
  • 0 on success
  • EINVAL if invalid mempool is provided
Examples:
examples/bbdev_app/main.c.

Definition at line 507 of file rte_bbdev_op.h.

static int __rte_experimental rte_bbdev_dec_op_alloc_bulk ( struct rte_mempool mempool,
struct rte_bbdev_dec_op **  ops,
uint16_t  num_ops 
)
inlinestatic

Bulk allocate decode operations from a mempool with parameter defaults reset.

Parameters
mempoolOperation mempool, created by rte_bbdev_op_pool_create().
opsOutput array to place allocated operations
num_opsNumber of operations to allocate
Returns
  • 0 on success
  • EINVAL if invalid mempool is provided
Examples:
examples/bbdev_app/main.c.

Definition at line 542 of file rte_bbdev_op.h.

static void __rte_experimental rte_bbdev_dec_op_free_bulk ( struct rte_bbdev_dec_op **  ops,
unsigned int  num_ops 
)
inlinestatic

Free decode operation structures that were allocated by rte_bbdev_dec_op_alloc_bulk(). All structures must belong to the same mempool.

Parameters
opsOperation structures
num_opsNumber of structures
Examples:
examples/bbdev_app/main.c.

Definition at line 573 of file rte_bbdev_op.h.

static void __rte_experimental rte_bbdev_enc_op_free_bulk ( struct rte_bbdev_enc_op **  ops,
unsigned int  num_ops 
)
inlinestatic

Free encode operation structures that were allocated by rte_bbdev_enc_op_alloc_bulk(). All structures must belong to the same mempool.

Parameters
opsOperation structures
num_opsNumber of structures
Examples:
examples/bbdev_app/main.c.

Definition at line 590 of file rte_bbdev_op.h.