doc: add Meson coding style to contributors guide
[dpdk.git] / lib / librte_bbdev / rte_bbdev_op.h
index 1e119a7..f946842 100644 (file)
@@ -31,8 +31,12 @@ extern "C" {
 #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 */
@@ -108,7 +112,7 @@ enum rte_bbdev_op_td_flag_bitmasks {
        /** 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)
 };
@@ -177,7 +181,12 @@ enum rte_bbdev_op_ldpcdec_flag_bitmasks {
        /** 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 */
@@ -200,6 +209,14 @@ enum rte_bbdev_op_ldpcenc_flag_bitmasks {
        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.
@@ -389,12 +406,12 @@ struct rte_bbdev_op_turbo_dec {
         */
        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;
        };
 };
@@ -545,7 +562,7 @@ struct rte_bbdev_op_enc_turbo_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;
 };
 
@@ -704,8 +721,6 @@ struct rte_bbdev_op_cap_ldpc_dec {
        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 */
@@ -744,11 +759,11 @@ enum {
 
 /** 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 */
@@ -785,7 +800,7 @@ struct rte_bbdev_op_cap {
        } 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 */
 };