#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 scatter-gather functionality */
RTE_BBDEV_TURBO_DEC_SCATTER_GATHER = (1ULL << 15),
/** Set to keep CRC24B bits appended while decoding. Only usable when
- * decoding Transport Blocks (code_block_mode = 0).
+ * decoding Transport Block mode.
*/
RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP = (1ULL << 16)
};
RTE_BBDEV_LDPC_ENC_CONCATENATION = (1ULL << 7)
};
+/** Flags for the Code Block/Transport block mode */
+enum rte_bbdev_op_cb_mode {
+ /** One operation is one or fraction of one transport block */
+ RTE_BBDEV_TRANSPORT_BLOCK = 0,
+ /** One operation is one code block mode */
+ RTE_BBDEV_CODE_BLOCK = 1,
+};
+
/** Data input and output buffer for BBDEV operations */
struct rte_bbdev_op_data {
/** The mbuf data structure representing the data for BBDEV operation.
*/
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;
};
/** 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 */
};