DPDK  20.11.0
rte_bbdev_op.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4 
5 #ifndef _RTE_BBDEV_OP_H_
6 #define _RTE_BBDEV_OP_H_
7 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <stdint.h>
22 
23 #include <rte_common.h>
24 #include <rte_mbuf.h>
25 #include <rte_memory.h>
26 #include <rte_mempool.h>
27 
28 /* Number of columns in sub-block interleaver (36.212, section 5.1.4.1.1) */
29 #define RTE_BBDEV_TURBO_C_SUBBLOCK (32)
30 /* Maximum size of Transport Block (36.213, Table, Table 7.1.7.2.5-1) */
31 #define RTE_BBDEV_TURBO_MAX_TB_SIZE (391656)
32 /* Maximum size of Code Block (36.212, Table 5.1.3-3) */
33 #define RTE_BBDEV_TURBO_MAX_CB_SIZE (6144)
34 /* Maximum size of Code Block */
35 #define RTE_BBDEV_LDPC_MAX_CB_SIZE (8448)
36 /* Minimum size of Code Block */
37 #define RTE_BBDEV_LDPC_MIN_CB_SIZE (40)
38 /* Maximum E size we can manage with default mbuf */
39 #define RTE_BBDEV_LDPC_E_MAX_MBUF (64000)
40 /* Minimum size of Code Block (36.212, Table 5.1.3-3) */
41 #define RTE_BBDEV_TURBO_MIN_CB_SIZE (40)
42 /* Maximum size of circular buffer */
43 #define RTE_BBDEV_TURBO_MAX_KW (18528)
44 /*
45  * Turbo: Maximum number of Code Blocks in Transport Block. It is calculated
46  * based on maximum size of one Code Block and one Transport Block
47  * (considering CRC24A and CRC24B):
48  * (391656 + 24) / (6144 - 24) = 64
49  */
50 #define RTE_BBDEV_TURBO_MAX_CODE_BLOCKS (64)
51 /* LDPC: Maximum number of Code Blocks in Transport Block.*/
52 #define RTE_BBDEV_LDPC_MAX_CODE_BLOCKS (256)
53 
111  RTE_BBDEV_TURBO_MAP_DEC = (1ULL << 14),
118 };
119 
120 
135 };
136 
190 };
191 
210 };
211 
243  struct rte_mbuf *data;
251  uint32_t offset;
264  uint32_t length;
265 };
266 
274  uint16_t k;
278  uint32_t e;
279 };
280 
286  uint32_t e;
287 };
288 
294  uint16_t k_neg;
298  uint16_t k_pos;
300  uint8_t c_neg;
304  uint8_t c;
306  uint8_t cab;
310  uint32_t ea;
314  uint32_t eb;
316  uint8_t r;
317 };
318 
324  uint32_t ea;
328  uint32_t eb;
332  uint8_t c;
334  uint8_t r;
336  uint8_t cab;
337 };
338 
369  struct rte_bbdev_op_data input;
376 
378  uint32_t op_flags;
379 
381  uint8_t rv_index;
385  uint8_t iter_min:4;
389  uint8_t iter_max:4;
393  uint8_t iter_count;
395  uint8_t ext_scale;
399  uint8_t num_maps;
400 
403  union {
408  };
409 };
410 
444  struct rte_bbdev_op_data input;
455 
457  uint32_t op_flags;
458 
462  uint8_t rv_index;
466  uint8_t iter_max;
470  uint8_t iter_count;
474  uint8_t basegraph;
478  uint16_t z_c;
482  uint16_t n_cb;
486  uint8_t q_m;
490  uint16_t n_filler;
493  union {
498  };
499 };
500 
508  uint16_t k;
512  uint32_t e;
516  uint16_t ncb;
517 };
518 
526  uint16_t k_neg;
532  uint16_t k_pos;
534  uint8_t c_neg;
538  uint8_t c;
540  uint8_t cab;
544  uint32_t ea;
548  uint32_t eb;
552  uint16_t ncb_neg;
556  uint16_t ncb_pos;
558  uint8_t r;
559 };
560 
566  uint32_t e;
567 };
568 
574  uint32_t ea;
578  uint32_t eb;
582  uint8_t c;
584  uint8_t r;
586  uint8_t cab;
587 };
588 
610  struct rte_bbdev_op_data input;
612  struct rte_bbdev_op_data output;
614  uint32_t op_flags;
615 
617  uint8_t rv_index;
620  union {
625  };
626 };
627 
643  struct rte_bbdev_op_data input;
645  struct rte_bbdev_op_data output;
646 
648  uint32_t op_flags;
649 
651  uint8_t rv_index;
655  uint8_t basegraph;
659  uint16_t z_c;
663  uint16_t n_cb;
667  uint8_t q_m;
671  uint16_t n_filler;
674  union {
679  };
680 };
681 
691  uint8_t num_buffers_src;
696 };
697 
706 };
707 
713  int8_t llr_size;
715  int8_t llr_decimals;
717  uint16_t num_buffers_src;
722 };
723 
729  uint16_t num_buffers_src;
731  uint16_t num_buffers_dst;
732 };
733 
742 };
743 
745 enum {
746  RTE_BBDEV_DRV_ERROR,
747  RTE_BBDEV_DATA_ERROR,
748  RTE_BBDEV_CRC_ERROR,
749  RTE_BBDEV_SYNDROME_ERROR
750 };
751 
755  int status;
759  void *opaque_data;
760  union {
765  };
766 };
767 
771  int status;
775  void *opaque_data;
776  union {
781  };
782 };
783 
786  enum rte_bbdev_op_type type;
787  union {
788  struct rte_bbdev_op_cap_turbo_dec turbo_dec;
789  struct rte_bbdev_op_cap_turbo_enc turbo_enc;
790  struct rte_bbdev_op_cap_ldpc_dec ldpc_dec;
791  struct rte_bbdev_op_cap_ldpc_enc ldpc_enc;
792  } cap;
793 };
794 
796 struct rte_bbdev_op_pool_private {
797  enum rte_bbdev_op_type type;
798 };
799 
810 __rte_experimental
811 const char*
813 
834 __rte_experimental
835 struct rte_mempool *
837  unsigned int num_elements, unsigned int cache_size,
838  int socket_id);
839 
854 __rte_experimental
855 static inline int
857  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
858 {
859  struct rte_bbdev_op_pool_private *priv;
860  int ret;
861 
862  /* Check type */
863  priv = (struct rte_bbdev_op_pool_private *)
864  rte_mempool_get_priv(mempool);
865  if (unlikely((priv->type != RTE_BBDEV_OP_TURBO_ENC) &&
866  (priv->type != RTE_BBDEV_OP_LDPC_ENC)))
867  return -EINVAL;
868 
869  /* Get elements */
870  ret = rte_mempool_get_bulk(mempool, (void **)ops, num_ops);
871  if (unlikely(ret < 0))
872  return ret;
873 
874  return 0;
875 }
876 
891 __rte_experimental
892 static inline int
894  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
895 {
896  struct rte_bbdev_op_pool_private *priv;
897  int ret;
898 
899  /* Check type */
900  priv = (struct rte_bbdev_op_pool_private *)
901  rte_mempool_get_priv(mempool);
902  if (unlikely((priv->type != RTE_BBDEV_OP_TURBO_DEC) &&
903  (priv->type != RTE_BBDEV_OP_LDPC_DEC)))
904  return -EINVAL;
905 
906  /* Get elements */
907  ret = rte_mempool_get_bulk(mempool, (void **)ops, num_ops);
908  if (unlikely(ret < 0))
909  return ret;
910 
911  return 0;
912 }
913 
924 __rte_experimental
925 static inline void
926 rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)
927 {
928  if (num_ops > 0)
929  rte_mempool_put_bulk(ops[0]->mempool, (void **)ops, num_ops);
930 }
931 
942 __rte_experimental
943 static inline void
944 rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)
945 {
946  if (num_ops > 0)
947  rte_mempool_put_bulk(ops[0]->mempool, (void **)ops, num_ops);
948 }
949 
950 #ifdef __cplusplus
951 }
952 #endif
953 
954 #endif /* _RTE_BBDEV_OP_H_ */
rte_bbdev_op_ldpc_dec::cb_params
struct rte_bbdev_op_dec_ldpc_cb_params cb_params
Definition: rte_bbdev_op.h:495
rte_bbdev_op_dec_turbo_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:278
rte_bbdev_op_enc_turbo_tb_params::k_pos
uint16_t k_pos
Definition: rte_bbdev_op.h:532
RTE_BBDEV_TURBO_SOFT_OUT_SATURATE
@ RTE_BBDEV_TURBO_SOFT_OUT_SATURATE
Definition: rte_bbdev_op.h:63
RTE_BBDEV_OP_LDPC_DEC
@ RTE_BBDEV_OP_LDPC_DEC
Definition: rte_bbdev_op.h:739
rte_bbdev_op_ldpc_enc::n_filler
uint16_t n_filler
Definition: rte_bbdev_op.h:671
rte_bbdev_op_turbo_dec::hard_output
struct rte_bbdev_op_data hard_output
Definition: rte_bbdev_op.h:373
rte_bbdev_op_dec_turbo_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:306
RTE_BBDEV_TURBO_CRC_24B_ATTACH
@ RTE_BBDEV_TURBO_CRC_24B_ATTACH
Definition: rte_bbdev_op.h:128
rte_bbdev_op_dec_turbo_tb_params::c_neg
uint8_t c_neg
Definition: rte_bbdev_op.h:300
RTE_BBDEV_OP_NONE
@ RTE_BBDEV_OP_NONE
Definition: rte_bbdev_op.h:736
rte_bbdev_op_turbo_enc::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:619
rte_bbdev_op_pool_create
__rte_experimental struct rte_mempool * 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)
RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
@ RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
Definition: rte_bbdev_op.h:117
RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT
@ RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT
Definition: rte_bbdev_op.h:99
rte_bbdev_op_cap_turbo_enc::num_buffers_dst
uint8_t num_buffers_dst
Definition: rte_bbdev_op.h:705
rte_bbdev_op_cap_ldpc_enc::num_buffers_dst
uint16_t num_buffers_dst
Definition: rte_bbdev_op.h:731
rte_mempool_get_priv
static void * rte_mempool_get_priv(struct rte_mempool *mp)
Definition: rte_mempool.h:1701
rte_bbdev_op_data::length
uint32_t length
Definition: rte_bbdev_op.h:264
rte_bbdev_op_ldpc_enc
Definition: rte_bbdev_op.h:641
rte_bbdev_op_cap_ldpc_dec
Definition: rte_bbdev_op.h:709
rte_memory.h
unlikely
#define unlikely(x)
Definition: rte_branch_prediction.h:38
rte_bbdev_op_ldpc_dec::q_m
uint8_t q_m
Definition: rte_bbdev_op.h:486
RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE
@ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE
Definition: rte_bbdev_op.h:150
rte_bbdev_op_dec_turbo_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:310
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE
@ RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE
Definition: rte_bbdev_op.h:57
RTE_BBDEV_OP_TURBO_DEC
@ RTE_BBDEV_OP_TURBO_DEC
Definition: rte_bbdev_op.h:737
RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
@ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
Definition: rte_bbdev_op.h:164
rte_bbdev_op_enc_turbo_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:538
rte_bbdev_op_dec_ldpc_tb_params
Definition: rte_bbdev_op.h:320
RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
@ RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
Definition: rte_bbdev_op.h:148
rte_mempool::name
char name[RTE_MEMZONE_NAMESIZE]
Definition: rte_mempool.h:213
rte_bbdev_op_enc_ldpc_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:586
rte_bbdev_dec_op_free_bulk
static __rte_experimental void rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)
Definition: rte_bbdev_op.h:926
rte_bbdev_dec_op::mempool
struct rte_mempool * mempool
Definition: rte_bbdev_op.h:773
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
Definition: rte_bbdev_op.h:184
rte_bbdev_dec_op::ldpc_dec
struct rte_bbdev_op_ldpc_dec ldpc_dec
Definition: rte_bbdev_op.h:780
rte_bbdev_op_enc_ldpc_tb_params
Definition: rte_bbdev_op.h:570
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
@ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
Definition: rte_bbdev_op.h:107
RTE_BBDEV_OP_TYPE_COUNT
@ RTE_BBDEV_OP_TYPE_COUNT
Definition: rte_bbdev_op.h:741
rte_bbdev_op_ldpc_enc::basegraph
uint8_t basegraph
Definition: rte_bbdev_op.h:655
rte_bbdev_op_enc_turbo_tb_params::ncb_pos
uint16_t ncb_pos
Definition: rte_bbdev_op.h:556
rte_bbdev_op_ldpc_dec::n_filler
uint16_t n_filler
Definition: rte_bbdev_op.h:490
rte_bbdev_op_cap_turbo_enc::num_buffers_src
uint8_t num_buffers_src
Definition: rte_bbdev_op.h:703
RTE_BBDEV_OP_LDPC_ENC
@ RTE_BBDEV_OP_LDPC_ENC
Definition: rte_bbdev_op.h:740
RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK
@ RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK
Definition: rte_bbdev_op.h:142
rte_bbdev_enc_op::ldpc_enc
struct rte_bbdev_op_ldpc_enc ldpc_enc
Definition: rte_bbdev_op.h:764
rte_bbdev_op_ldpc_dec::iter_count
uint8_t iter_count
Definition: rte_bbdev_op.h:470
rte_bbdev_op_enc_turbo_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:558
rte_bbdev_op_cap::cap
union rte_bbdev_op_cap::@78 cap
rte_bbdev_op_turbo_dec::iter_count
uint8_t iter_count
Definition: rte_bbdev_op.h:393
rte_bbdev_op_enc_turbo_tb_params::k_neg
uint16_t k_neg
Definition: rte_bbdev_op.h:526
rte_bbdev_enc_op
Definition: rte_bbdev_op.h:753
rte_bbdev_op_cap_ldpc_dec::llr_size
int8_t llr_size
Definition: rte_bbdev_op.h:713
rte_bbdev_op_enc_turbo_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:548
rte_bbdev_op_turbo_dec::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:369
rte_bbdev_op_ldpc_enc::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:651
RTE_BBDEV_TURBO_MAP_DEC
@ RTE_BBDEV_TURBO_MAP_DEC
Definition: rte_bbdev_op.h:111
rte_bbdev_op_turbo_dec::num_maps
uint8_t num_maps
Definition: rte_bbdev_op.h:399
rte_bbdev_op_ldpc_dec
Definition: rte_bbdev_op.h:440
rte_bbdev_op_ldpc_dec::basegraph
uint8_t basegraph
Definition: rte_bbdev_op.h:474
rte_bbdev_dec_op_alloc_bulk
static __rte_experimental int rte_bbdev_dec_op_alloc_bulk(struct rte_mempool *mempool, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev_op.h:893
rte_bbdev_op_cap_turbo_dec::num_buffers_soft_out
uint8_t num_buffers_soft_out
Definition: rte_bbdev_op.h:695
RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
@ RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
Definition: rte_bbdev_op.h:84
rte_bbdev_op_te_flag_bitmasks
rte_bbdev_op_te_flag_bitmasks
Definition: rte_bbdev_op.h:122
rte_bbdev_op_turbo_enc
Definition: rte_bbdev_op.h:608
rte_bbdev_op_ldpc_enc::z_c
uint16_t z_c
Definition: rte_bbdev_op.h:659
rte_bbdev_op_ldpc_dec::iter_max
uint8_t iter_max
Definition: rte_bbdev_op.h:466
rte_bbdev_op_data::offset
uint32_t offset
Definition: rte_bbdev_op.h:251
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE
Definition: rte_bbdev_op.h:180
rte_mbuf
Definition: rte_mbuf_core.h:473
rte_bbdev_op_ldpc_dec::z_c
uint16_t z_c
Definition: rte_bbdev_op.h:478
RTE_BBDEV_TURBO_ENC_INTERRUPTS
@ RTE_BBDEV_TURBO_ENC_INTERRUPTS
Definition: rte_bbdev_op.h:132
rte_bbdev_op_type
rte_bbdev_op_type
Definition: rte_bbdev_op.h:735
rte_bbdev_enc_op::mempool
struct rte_mempool * mempool
Definition: rte_bbdev_op.h:757
rte_bbdev_op_enc_turbo_cb_params
Definition: rte_bbdev_op.h:502
rte_bbdev_op_cap_ldpc_dec::num_buffers_soft_out
uint16_t num_buffers_soft_out
Definition: rte_bbdev_op.h:721
rte_bbdev_op_enc_ldpc_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:582
rte_bbdev_op_ldpc_dec::harq_combined_input
struct rte_bbdev_op_data harq_combined_input
Definition: rte_bbdev_op.h:452
rte_bbdev_op_dec_ldpc_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:334
rte_bbdev_op_cap_turbo_enc
Definition: rte_bbdev_op.h:699
rte_bbdev_enc_op::status
int status
Definition: rte_bbdev_op.h:755
RTE_BBDEV_LDPC_SOFT_OUT_ENABLE
@ RTE_BBDEV_LDPC_SOFT_OUT_ENABLE
Definition: rte_bbdev_op.h:156
rte_bbdev_op_dec_ldpc_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:332
rte_bbdev_op_enc_ldpc_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:578
rte_bbdev_op_ldpc_dec::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:457
rte_bbdev_op_turbo_dec
Definition: rte_bbdev_op.h:367
rte_bbdev_op_cap_turbo_dec::num_buffers_src
uint8_t num_buffers_src
Definition: rte_bbdev_op.h:691
rte_bbdev_op_cap_turbo_dec::num_buffers_hard_out
uint8_t num_buffers_hard_out
Definition: rte_bbdev_op.h:693
RTE_BBDEV_TURBO_ENC_SCATTER_GATHER
@ RTE_BBDEV_TURBO_ENC_SCATTER_GATHER
Definition: rte_bbdev_op.h:134
rte_bbdev_op_cap_ldpc_dec::num_buffers_hard_out
uint16_t num_buffers_hard_out
Definition: rte_bbdev_op.h:719
rte_bbdev_op_enc_turbo_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:544
rte_bbdev_op_ldpc_enc::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:648
rte_bbdev_op_ldpc_enc::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:673
rte_bbdev_op_ldpc_enc::n_cb
uint16_t n_cb
Definition: rte_bbdev_op.h:663
rte_bbdev_op_turbo_enc::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:617
rte_bbdev_op_dec_turbo_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:316
rte_bbdev_op_dec_turbo_cb_params
Definition: rte_bbdev_op.h:268
rte_bbdev_op_dec_ldpc_cb_params
Definition: rte_bbdev_op.h:282
RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION
@ RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION
Definition: rte_bbdev_op.h:170
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
@ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
Definition: rte_bbdev_op.h:91
RTE_BBDEV_LDPC_DECODE_BYPASS
@ RTE_BBDEV_LDPC_DECODE_BYPASS
Definition: rte_bbdev_op.h:154
rte_bbdev_op_ldpc_dec::hard_output
struct rte_bbdev_op_data hard_output
Definition: rte_bbdev_op.h:448
rte_bbdev_dec_op
Definition: rte_bbdev_op.h:769
RTE_BBDEV_LDPC_LLR_COMPRESSION
@ RTE_BBDEV_LDPC_LLR_COMPRESSION
Definition: rte_bbdev_op.h:172
rte_bbdev_op_dec_ldpc_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:336
rte_bbdev_op_ldpc_dec::n_cb
uint16_t n_cb
Definition: rte_bbdev_op.h:482
rte_bbdev_enc_op_alloc_bulk
static __rte_experimental int rte_bbdev_enc_op_alloc_bulk(struct rte_mempool *mempool, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev_op.h:856
rte_bbdev_op_cap_ldpc_enc::num_buffers_src
uint16_t num_buffers_src
Definition: rte_bbdev_op.h:729
rte_bbdev_op_enc_ldpc_cb_params
Definition: rte_bbdev_op.h:562
rte_bbdev_op_cap_ldpc_dec::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:711
rte_bbdev_op_data::data
struct rte_mbuf * data
Definition: rte_bbdev_op.h:243
rte_bbdev_op_ldpc_dec::harq_combined_output
struct rte_bbdev_op_data harq_combined_output
Definition: rte_bbdev_op.h:454
rte_bbdev_op_ldpc_enc::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:643
rte_bbdev_dec_op::opaque_data
void * opaque_data
Definition: rte_bbdev_op.h:775
rte_bbdev_op_turbo_dec::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:378
rte_common.h
RTE_BBDEV_TURBO_EQUALIZER
@ RTE_BBDEV_TURBO_EQUALIZER
Definition: rte_bbdev_op.h:61
rte_bbdev_op_cap_ldpc_enc::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:727
RTE_BBDEV_TURBO_EARLY_TERMINATION
@ RTE_BBDEV_TURBO_EARLY_TERMINATION
Definition: rte_bbdev_op.h:75
rte_bbdev_op_data
Definition: rte_bbdev_op.h:213
rte_bbdev_op_dec_turbo_tb_params::k_neg
uint16_t k_neg
Definition: rte_bbdev_op.h:294
rte_bbdev_op_ldpc_enc::tb_params
struct rte_bbdev_op_enc_ldpc_tb_params tb_params
Definition: rte_bbdev_op.h:678
rte_bbdev_op_turbo_enc::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:614
rte_bbdev_op_dec_turbo_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:314
rte_bbdev_op_cap_turbo_dec
Definition: rte_bbdev_op.h:683
rte_bbdev_op_ldpc_enc::q_m
uint8_t q_m
Definition: rte_bbdev_op.h:667
RTE_BBDEV_LDPC_ENC_INTERRUPTS
@ RTE_BBDEV_LDPC_ENC_INTERRUPTS
Definition: rte_bbdev_op.h:205
rte_bbdev_op_turbo_dec::iter_min
uint8_t iter_min
Definition: rte_bbdev_op.h:385
RTE_BBDEV_TURBO_DEC_SCATTER_GATHER
@ RTE_BBDEV_TURBO_DEC_SCATTER_GATHER
Definition: rte_bbdev_op.h:113
rte_bbdev_op_turbo_enc::output
struct rte_bbdev_op_data output
Definition: rte_bbdev_op.h:612
RTE_BBDEV_LDPC_ENC_CONCATENATION
@ RTE_BBDEV_LDPC_ENC_CONCATENATION
Definition: rte_bbdev_op.h:209
rte_bbdev_op_enc_ldpc_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:574
rte_bbdev_op_turbo_dec::cb_params
struct rte_bbdev_op_dec_turbo_cb_params cb_params
Definition: rte_bbdev_op.h:405
rte_bbdev_op_ldpc_dec::soft_output
struct rte_bbdev_op_data soft_output
Definition: rte_bbdev_op.h:450
rte_bbdev_op_ldpc_dec::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:492
rte_bbdev_op_turbo_enc::cb_params
struct rte_bbdev_op_enc_turbo_cb_params cb_params
Definition: rte_bbdev_op.h:622
rte_bbdev_op_turbo_dec::iter_max
uint8_t iter_max
Definition: rte_bbdev_op.h:389
rte_bbdev_op_dec_turbo_tb_params
Definition: rte_bbdev_op.h:290
RTE_BBDEV_TURBO_SOFT_OUTPUT
@ RTE_BBDEV_TURBO_SOFT_OUTPUT
Definition: rte_bbdev_op.h:73
rte_bbdev_op_cap::type
enum rte_bbdev_op_type type
Definition: rte_bbdev_op.h:786
rte_bbdev_op_cap_ldpc_enc
Definition: rte_bbdev_op.h:725
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE
Definition: rte_bbdev_op.h:176
rte_mempool
Definition: rte_mempool.h:207
rte_bbdev_op_dec_ldpc_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:286
rte_bbdev_op_enc_turbo_tb_params
Definition: rte_bbdev_op.h:520
RTE_BBDEV_LDPC_RATE_MATCH
@ RTE_BBDEV_LDPC_RATE_MATCH
Definition: rte_bbdev_op.h:197
RTE_BBDEV_LDPC_INTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_INTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:195
RTE_BBDEV_TURBO_CRC_24A_ATTACH
@ RTE_BBDEV_TURBO_CRC_24A_ATTACH
Definition: rte_bbdev_op.h:130
RTE_BBDEV_LDPC_CRC_24B_ATTACH
@ RTE_BBDEV_LDPC_CRC_24B_ATTACH
Definition: rte_bbdev_op.h:201
rte_bbdev_enc_op::opaque_data
void * opaque_data
Definition: rte_bbdev_op.h:759
rte_bbdev_op_turbo_dec::soft_output
struct rte_bbdev_op_data soft_output
Definition: rte_bbdev_op.h:375
rte_bbdev_op_cap_turbo_dec::max_llr_modulus
int8_t max_llr_modulus
Definition: rte_bbdev_op.h:689
RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:160
rte_bbdev_enc_op_free_bulk
static __rte_experimental void rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)
Definition: rte_bbdev_op.h:944
rte_bbdev_op_turbo_dec::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:402
rte_mempool_get_bulk
static __rte_always_inline int rte_mempool_get_bulk(struct rte_mempool *mp, void **obj_table, unsigned int n)
Definition: rte_mempool.h:1521
rte_bbdev_op_enc_turbo_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:540
rte_bbdev_op_type_str
__rte_experimental const char * rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH
@ RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH
Definition: rte_bbdev_op.h:71
rte_mempool.h
RTE_BBDEV_TURBO_RV_INDEX_BYPASS
@ RTE_BBDEV_TURBO_RV_INDEX_BYPASS
Definition: rte_bbdev_op.h:124
rte_mempool_put_bulk
static __rte_always_inline void rte_mempool_put_bulk(struct rte_mempool *mp, void *const *obj_table, unsigned int n)
Definition: rte_mempool.h:1367
rte_bbdev_op_ldpc_enc::output
struct rte_bbdev_op_data output
Definition: rte_bbdev_op.h:645
RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:146
rte_bbdev_op_enc_turbo_cb_params::ncb
uint16_t ncb
Definition: rte_bbdev_op.h:516
rte_bbdev_op_td_flag_bitmasks
rte_bbdev_op_td_flag_bitmasks
Definition: rte_bbdev_op.h:55
rte_bbdev_op_ldpcenc_flag_bitmasks
rte_bbdev_op_ldpcenc_flag_bitmasks
Definition: rte_bbdev_op.h:193
rte_bbdev_op_enc_ldpc_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:566
rte_bbdev_op_dec_turbo_cb_params::k
uint16_t k
Definition: rte_bbdev_op.h:274
rte_bbdev_op_turbo_dec::tb_params
struct rte_bbdev_op_dec_turbo_tb_params tb_params
Definition: rte_bbdev_op.h:407
RTE_BBDEV_LDPC_ENC_SCATTER_GATHER
@ RTE_BBDEV_LDPC_ENC_SCATTER_GATHER
Definition: rte_bbdev_op.h:207
rte_bbdev_op_turbo_enc::tb_params
struct rte_bbdev_op_enc_turbo_tb_params tb_params
Definition: rte_bbdev_op.h:624
rte_mbuf.h
rte_bbdev_op_cap_turbo_dec::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:685
rte_bbdev_dec_op::status
int status
Definition: rte_bbdev_op.h:771
rte_bbdev_op_cap_ldpc_dec::num_buffers_src
uint16_t num_buffers_src
Definition: rte_bbdev_op.h:717
rte_bbdev_op_enc_turbo_tb_params::ncb_neg
uint16_t ncb_neg
Definition: rte_bbdev_op.h:552
RTE_BBDEV_LDPC_DEC_SCATTER_GATHER
@ RTE_BBDEV_LDPC_DEC_SCATTER_GATHER
Definition: rte_bbdev_op.h:168
rte_bbdev_enc_op::turbo_enc
struct rte_bbdev_op_turbo_enc turbo_enc
Definition: rte_bbdev_op.h:762
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
Definition: rte_bbdev_op.h:189
rte_bbdev_op_ldpc_dec::tb_params
struct rte_bbdev_op_dec_ldpc_tb_params tb_params
Definition: rte_bbdev_op.h:497
rte_bbdev_op_turbo_enc::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:610
rte_bbdev_op_dec_turbo_tb_params::k_pos
uint16_t k_pos
Definition: rte_bbdev_op.h:298
RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
@ RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
Definition: rte_bbdev_op.h:144
RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK
@ RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK
Definition: rte_bbdev_op.h:140
rte_bbdev_op_enc_turbo_tb_params::c_neg
uint8_t c_neg
Definition: rte_bbdev_op.h:534
rte_bbdev_op_dec_turbo_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:304
RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS
@ RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS
Definition: rte_bbdev_op.h:158
rte_bbdev_op_ldpcdec_flag_bitmasks
rte_bbdev_op_ldpcdec_flag_bitmasks
Definition: rte_bbdev_op.h:138
rte_bbdev_op_turbo_dec::ext_scale
uint8_t ext_scale
Definition: rte_bbdev_op.h:395
rte_bbdev_op_turbo_dec::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:381
RTE_BBDEV_OP_TURBO_ENC
@ RTE_BBDEV_OP_TURBO_ENC
Definition: rte_bbdev_op.h:738
rte_bbdev_op_enc_turbo_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:512
rte_mempool::cache_size
uint32_t cache_size
Definition: rte_mempool.h:224
rte_bbdev_op_cap_turbo_enc::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:701
RTE_BBDEV_TURBO_HALF_ITERATION_EVEN
@ RTE_BBDEV_TURBO_HALF_ITERATION_EVEN
Definition: rte_bbdev_op.h:67
rte_bbdev_op_cap
Definition: rte_bbdev_op.h:785
rte_bbdev_op_dec_ldpc_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:324
RTE_BBDEV_TURBO_DEC_INTERRUPTS
@ RTE_BBDEV_TURBO_DEC_INTERRUPTS
Definition: rte_bbdev_op.h:77
rte_bbdev_dec_op::turbo_dec
struct rte_bbdev_op_turbo_dec turbo_dec
Definition: rte_bbdev_op.h:778
rte_mempool::socket_id
int socket_id
Definition: rte_mempool.h:222
RTE_BBDEV_TURBO_RATE_MATCH
@ RTE_BBDEV_TURBO_RATE_MATCH
Definition: rte_bbdev_op.h:126
rte_bbdev_op_ldpc_dec::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:462
rte_bbdev_op_ldpc_dec::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:444
rte_bbdev_op_cap_ldpc_dec::llr_decimals
int8_t llr_decimals
Definition: rte_bbdev_op.h:715
RTE_BBDEV_TURBO_CRC_TYPE_24B
@ RTE_BBDEV_TURBO_CRC_TYPE_24B
Definition: rte_bbdev_op.h:59
rte_bbdev_op_dec_ldpc_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:328
rte_bbdev_op_enc_ldpc_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:584
RTE_BBDEV_LDPC_CRC_24A_ATTACH
@ RTE_BBDEV_LDPC_CRC_24A_ATTACH
Definition: rte_bbdev_op.h:199
RTE_BBDEV_LDPC_CRC_16_ATTACH
@ RTE_BBDEV_LDPC_CRC_16_ATTACH
Definition: rte_bbdev_op.h:203
rte_bbdev_op_enc_turbo_cb_params::k
uint16_t k
Definition: rte_bbdev_op.h:508
RTE_BBDEV_LDPC_DEC_INTERRUPTS
@ RTE_BBDEV_LDPC_DEC_INTERRUPTS
Definition: rte_bbdev_op.h:166
rte_bbdev_op_ldpc_enc::cb_params
struct rte_bbdev_op_enc_ldpc_cb_params cb_params
Definition: rte_bbdev_op.h:676