#define RTE_BBDEV_TURBO_MAX_TB_SIZE (391656)
/* Maximum size of Code Block (36.212, Table 5.1.3-3) */
#define RTE_BBDEV_TURBO_MAX_CB_SIZE (6144)
-/* Maximum size of Code Block */
+/* Maximum size of Code Block */
#define RTE_BBDEV_LDPC_MAX_CB_SIZE (8448)
+/* Minimum size of Code Block */
+#define RTE_BBDEV_LDPC_MIN_CB_SIZE (40)
+/* Maximum E size we can manage with default mbuf */
+#define RTE_BBDEV_LDPC_E_MAX_MBUF (64000)
/* Minimum size of Code Block (36.212, Table 5.1.3-3) */
#define RTE_BBDEV_TURBO_MIN_CB_SIZE (40)
/* Maximum size of circular buffer */
/** Set if a device supports loop-back access to
* HARQ internal memory. Intended for troubleshooting.
*/
- RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK = (1ULL << 17)
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK = (1ULL << 17),
+ /** Set if a device includes LLR filler bits in the circular buffer
+ * for HARQ memory. If not set, it is assumed the filler bits are not
+ * in HARQ memory and handled directly by the LDPC decoder.
+ */
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS = (1ULL << 18)
};
/** Flags for LDPC encoder operation and capability structure */
*/
uint8_t num_maps;
- /**< [0 - TB : 1 - CB] */
+ /** [0 - TB : 1 - CB] */
uint8_t code_block_mode;
union {
- /**< Struct which stores Code Block specific parameters */
+ /** Struct which stores Code Block specific parameters */
struct rte_bbdev_op_dec_turbo_cb_params cb_params;
- /**< Struct which stores Transport Block specific parameters */
+ /** Struct which stores Transport Block specific parameters */
struct rte_bbdev_op_dec_turbo_tb_params tb_params;
};
};
* the Turbo operation when r >= C-, [K:3*Kpi]
*/
uint16_t ncb_pos;
- /**< The index of the first CB in the inbound mbuf data, default is 0 */
+ /** The index of the first CB in the inbound mbuf data, default is 0 */
uint8_t r;
};
int8_t llr_size;
/** LLR numbers of decimals bit for arithmetic representation */
int8_t llr_decimals;
- /** Amount of memory for HARQ in external DDR in MB */
- uint16_t harq_memory_size;
/** Num input code block buffers */
uint16_t num_buffers_src;
/** Num hard output code block buffers */
/** Structure specifying a single encode operation */
struct rte_bbdev_enc_op {
- /**< Status of operation that was performed */
+ /** Status of operation that was performed */
int status;
- /**< Mempool which op instance is in */
+ /** Mempool which op instance is in */
struct rte_mempool *mempool;
- /**< Opaque pointer for user data */
+ /** Opaque pointer for user data */
void *opaque_data;
union {
/** Contains turbo decoder specific parameters */
} cap; /**< Operation-type specific capabilities */
};
-/**< @internal Private data structure stored with operation pool. */
+/** @internal Private data structure stored with operation pool. */
struct rte_bbdev_op_pool_private {
enum rte_bbdev_op_type type; /**< Type of operations in a pool */
};