DPDK  22.11.7
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 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #include <stdint.h>
19 
20 #include <rte_compat.h>
21 #include <rte_common.h>
22 #include <rte_mbuf.h>
23 #include <rte_memory.h>
24 #include <rte_mempool.h>
25 
26 /* Number of columns in sub-block interleaver (36.212, section 5.1.4.1.1) */
27 #define RTE_BBDEV_TURBO_C_SUBBLOCK (32)
28 /* Maximum size of Transport Block (36.213, Table, Table 7.1.7.2.5-1) */
29 #define RTE_BBDEV_TURBO_MAX_TB_SIZE (391656)
30 /* Maximum size of Code Block (36.212, Table 5.1.3-3) */
31 #define RTE_BBDEV_TURBO_MAX_CB_SIZE (6144)
32 /* Maximum size of Code Block */
33 #define RTE_BBDEV_LDPC_MAX_CB_SIZE (8448)
34 /* Minimum size of Code Block */
35 #define RTE_BBDEV_LDPC_MIN_CB_SIZE (40)
36 /* Maximum E size we can manage with default mbuf */
37 #define RTE_BBDEV_LDPC_E_MAX_MBUF (64000)
38 /* Minimum size of Code Block (36.212, Table 5.1.3-3) */
39 #define RTE_BBDEV_TURBO_MIN_CB_SIZE (40)
40 /* Maximum size of circular buffer */
41 #define RTE_BBDEV_TURBO_MAX_KW (18528)
42 /*
43  * Turbo: Maximum number of Code Blocks in Transport Block. It is calculated
44  * based on maximum size of one Code Block and one Transport Block
45  * (considering CRC24A and CRC24B):
46  * (391656 + 24) / (6144 - 24) = 64
47  */
48 #define RTE_BBDEV_TURBO_MAX_CODE_BLOCKS (64)
49 /* LDPC: Maximum number of Code Blocks in Transport Block.*/
50 #define RTE_BBDEV_LDPC_MAX_CODE_BLOCKS (256)
51 /* 12 CS maximum */
52 #define RTE_BBDEV_MAX_CS_2 (6)
53 
54 /*
55  * Maximum size to be used to manage the enum rte_bbdev_op_type
56  * including padding for future enum insertion.
57  * The enum values must be explicitly kept smaller or equal to this padded maximum size.
58  */
59 #define RTE_BBDEV_OP_TYPE_SIZE_MAX 8
60 
118  RTE_BBDEV_TURBO_MAP_DEC = (1ULL << 14),
127  RTE_BBDEV_TURBO_DEC_CRC_24B_DROP = (1ULL << 17)
128 };
129 
130 
145 };
146 
202 };
203 
222 };
223 
227  RTE_BBDEV_FFT_WINDOWING = (1ULL << 0),
241  RTE_BBDEV_FFT_FP16_OUTPUT = (1ULL << 7)
242 };
243 
250 };
251 
283  struct rte_mbuf *data;
291  uint32_t offset;
304  uint32_t length;
305 };
306 
314  uint16_t k;
318  uint32_t e;
319 };
320 
326  uint32_t e;
327 };
328 
334  uint16_t k_neg;
338  uint16_t k_pos;
340  uint8_t c_neg;
344  uint8_t c;
346  uint8_t cab;
350  uint32_t ea;
354  uint32_t eb;
356  uint8_t r;
357 };
358 
364  uint32_t ea;
368  uint32_t eb;
372  uint8_t c;
374  uint8_t r;
376  uint8_t cab;
377 };
378 
408 /* Structure rte_bbdev_op_turbo_dec 8< */
411  struct rte_bbdev_op_data input;
418 
420  uint32_t op_flags;
421 
423  uint8_t rv_index;
427  uint8_t iter_min:4;
431  uint8_t iter_max:4;
435  uint8_t iter_count;
437  uint8_t ext_scale;
441  uint8_t num_maps;
442 
445  union {
450  };
451 };
452 /* >8 End of structure rte_bbdev_op_turbo_dec. */
453 
484 /* Structure rte_bbdev_op_ldpc_dec 8< */
489  struct rte_bbdev_op_data input;
500 
502  uint32_t op_flags;
503 
507  uint8_t rv_index;
511  uint8_t iter_max;
515  uint8_t iter_count;
519  uint8_t basegraph;
523  uint16_t z_c;
527  uint16_t n_cb;
531  uint8_t q_m;
535  uint16_t n_filler;
538  union {
543  };
544 };
545 /* >8 End of structure rte_bbdev_op_ldpc_dec. */
546 
554  uint16_t k;
558  uint32_t e;
562  uint16_t ncb;
563 };
564 
572  uint16_t k_neg;
578  uint16_t k_pos;
580  uint8_t c_neg;
584  uint8_t c;
586  uint8_t cab;
590  uint32_t ea;
594  uint32_t eb;
598  uint16_t ncb_neg;
602  uint16_t ncb_pos;
604  uint8_t r;
605 };
606 
612  uint32_t e;
613 };
614 
620  uint32_t ea;
624  uint32_t eb;
628  uint8_t c;
630  uint8_t r;
632  uint8_t cab;
633 };
634 
655 /* Structure rte_bbdev_op_turbo_enc 8< */
658  struct rte_bbdev_op_data input;
660  struct rte_bbdev_op_data output;
662  uint32_t op_flags;
663 
665  uint8_t rv_index;
668  union {
673  };
674 };
675 /* >8 End of structure rte_bbdev_op_turbo_enc. */
676 
691 /* Structure rte_bbdev_op_ldpc_enc 8< */
694  struct rte_bbdev_op_data input;
696  struct rte_bbdev_op_data output;
697 
699  uint32_t op_flags;
700 
702  uint8_t rv_index;
706  uint8_t basegraph;
710  uint16_t z_c;
714  uint16_t n_cb;
718  uint8_t q_m;
722  uint16_t n_filler;
725  union {
730  };
731 };
732 /* >8 End of structure rte_bbdev_op_ldpc_enc. */
733 
743 /* Structure rte_bbdev_op_fft 8< */
752  uint32_t op_flags;
762  uint8_t window_index[RTE_BBDEV_MAX_CS_2];
764  uint16_t cs_bitmap;
768  uint8_t idft_log2;
770  uint8_t dft_log2;
774  int8_t idft_shift;
776  int8_t dft_shift;
778  uint16_t ncs_reciprocal;
780  uint16_t power_shift;
782  uint16_t fp16_exp_adjust;
783 };
784 /* >8 End of structure rte_bbdev_op_fft. */
785 
795  uint8_t num_buffers_src;
800 };
801 
810 };
811 
817  int8_t llr_size;
819  int8_t llr_decimals;
821  uint16_t num_buffers_src;
826 };
827 
833  uint16_t num_buffers_src;
835  uint16_t num_buffers_dst;
836 };
837 
843  uint16_t num_buffers_src;
845  uint16_t num_buffers_dst;
846 };
847 
859  /* Note: RTE_BBDEV_OP_TYPE_SIZE_MAX must be larger or equal to maximum enum value */
860 };
861 
863 enum {
864  RTE_BBDEV_DRV_ERROR,
865  RTE_BBDEV_DATA_ERROR,
866  RTE_BBDEV_CRC_ERROR,
867  RTE_BBDEV_SYNDROME_ERROR
868 };
869 
873  int status;
877  void *opaque_data;
878  union {
883  };
884 };
885 
889  int status;
893  void *opaque_data;
894  union {
899  };
900 };
901 
905  int status;
909  void *opaque_data;
911  struct rte_bbdev_op_fft fft;
912 };
913 
916  enum rte_bbdev_op_type type;
917  union {
918  struct rte_bbdev_op_cap_turbo_dec turbo_dec;
919  struct rte_bbdev_op_cap_turbo_enc turbo_enc;
920  struct rte_bbdev_op_cap_ldpc_dec ldpc_dec;
921  struct rte_bbdev_op_cap_ldpc_enc ldpc_enc;
922  struct rte_bbdev_op_cap_fft fft;
923  } cap;
924 };
925 
927 struct rte_bbdev_op_pool_private {
928  enum rte_bbdev_op_type type;
929 };
930 
941 const char*
943 
964 struct rte_mempool *
966  unsigned int num_elements, unsigned int cache_size,
967  int socket_id);
968 
983 static inline int
985  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
986 {
987  struct rte_bbdev_op_pool_private *priv;
988 
989  /* Check type */
990  priv = (struct rte_bbdev_op_pool_private *)
991  rte_mempool_get_priv(mempool);
992  if (unlikely((priv->type != RTE_BBDEV_OP_TURBO_ENC) &&
993  (priv->type != RTE_BBDEV_OP_LDPC_ENC)))
994  return -EINVAL;
995 
996  /* Get elements */
997  return rte_mempool_get_bulk(mempool, (void **)ops, num_ops);
998 }
999 
1014 static inline int
1016  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
1017 {
1018  struct rte_bbdev_op_pool_private *priv;
1019 
1020  /* Check type */
1021  priv = (struct rte_bbdev_op_pool_private *)
1022  rte_mempool_get_priv(mempool);
1023  if (unlikely((priv->type != RTE_BBDEV_OP_TURBO_DEC) &&
1024  (priv->type != RTE_BBDEV_OP_LDPC_DEC)))
1025  return -EINVAL;
1026 
1027  /* Get elements */
1028  return rte_mempool_get_bulk(mempool, (void **)ops, num_ops);
1029 }
1030 
1045 __rte_experimental
1046 static inline int
1048  struct rte_bbdev_fft_op **ops, uint16_t num_ops)
1049 {
1050  struct rte_bbdev_op_pool_private *priv;
1051 
1052  /* Check type */
1053  priv = (struct rte_bbdev_op_pool_private *)rte_mempool_get_priv(mempool);
1054  if (unlikely(priv->type != RTE_BBDEV_OP_FFT))
1055  return -EINVAL;
1056 
1057  /* Get elements */
1058  return rte_mempool_get_bulk(mempool, (void **)ops, num_ops);
1059 }
1060 
1071 static inline void
1072 rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)
1073 {
1074  if (num_ops > 0)
1075  rte_mempool_put_bulk(ops[0]->mempool, (void **)ops, num_ops);
1076 }
1077 
1088 static inline void
1089 rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)
1090 {
1091  if (num_ops > 0)
1092  rte_mempool_put_bulk(ops[0]->mempool, (void **)ops, num_ops);
1093 }
1094 
1105 __rte_experimental
1106 static inline void
1107 rte_bbdev_fft_op_free_bulk(struct rte_bbdev_fft_op **ops, unsigned int num_ops)
1108 {
1109  if (num_ops > 0)
1110  rte_mempool_put_bulk(ops[0]->mempool, (void **)ops, num_ops);
1111 }
1112 
1113 #ifdef __cplusplus
1114 }
1115 #endif
1116 
1117 #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:540
rte_bbdev_op_dec_turbo_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:318
rte_bbdev_dec_op_free_bulk
static void rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)
Definition: rte_bbdev_op.h:1072
rte_bbdev_op_fft
Definition: rte_bbdev_op.h:744
rte_bbdev_op_enc_turbo_tb_params::k_pos
uint16_t k_pos
Definition: rte_bbdev_op.h:578
RTE_BBDEV_TURBO_SOFT_OUT_SATURATE
@ RTE_BBDEV_TURBO_SOFT_OUT_SATURATE
Definition: rte_bbdev_op.h:70
RTE_BBDEV_OP_LDPC_DEC
@ RTE_BBDEV_OP_LDPC_DEC
Definition: rte_bbdev_op.h:856
rte_bbdev_fft_op::mempool
struct rte_mempool * mempool
Definition: rte_bbdev_op.h:907
rte_bbdev_op_ldpc_enc::n_filler
uint16_t n_filler
Definition: rte_bbdev_op.h:722
rte_bbdev_op_turbo_dec::hard_output
struct rte_bbdev_op_data hard_output
Definition: rte_bbdev_op.h:415
rte_bbdev_op_dec_turbo_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:346
RTE_BBDEV_TURBO_CRC_24B_ATTACH
@ RTE_BBDEV_TURBO_CRC_24B_ATTACH
Definition: rte_bbdev_op.h:138
RTE_BBDEV_FFT_IDFT_BYPASS
@ RTE_BBDEV_FFT_IDFT_BYPASS
Definition: rte_bbdev_op.h:233
rte_bbdev_op_dec_turbo_tb_params::c_neg
uint8_t c_neg
Definition: rte_bbdev_op.h:340
RTE_BBDEV_OP_NONE
@ RTE_BBDEV_OP_NONE
Definition: rte_bbdev_op.h:853
rte_bbdev_op_turbo_enc::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:667
RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
@ RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
Definition: rte_bbdev_op.h:124
RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT
@ RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT
Definition: rte_bbdev_op.h:106
rte_bbdev_op_fft::base_output
struct rte_bbdev_op_data base_output
Definition: rte_bbdev_op.h:748
rte_bbdev_op_cap_turbo_enc::num_buffers_dst
uint8_t num_buffers_dst
Definition: rte_bbdev_op.h:809
rte_bbdev_op_cap_ldpc_enc::num_buffers_dst
uint16_t num_buffers_dst
Definition: rte_bbdev_op.h:835
rte_mempool_get_priv
static void * rte_mempool_get_priv(struct rte_mempool *mp)
Definition: rte_mempool.h:1822
rte_bbdev_op_data::length
uint32_t length
Definition: rte_bbdev_op.h:304
rte_bbdev_op_ldpc_enc
Definition: rte_bbdev_op.h:692
rte_bbdev_op_cap_ldpc_dec
Definition: rte_bbdev_op.h:813
rte_memory.h
rte_mempool::name
char name[RTE_MEMPOOL_NAMESIZE]
Definition: rte_mempool.h:220
unlikely
#define unlikely(x)
Definition: rte_branch_prediction.h:42
rte_bbdev_op_ldpc_dec::q_m
uint8_t q_m
Definition: rte_bbdev_op.h:531
RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE
@ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE
Definition: rte_bbdev_op.h:162
rte_bbdev_op_fft::output_leading_depadding
uint16_t output_leading_depadding
Definition: rte_bbdev_op.h:760
rte_bbdev_op_dec_turbo_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:350
RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE
@ RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE
Definition: rte_bbdev_op.h:64
rte_bbdev_op_cap_fft
Definition: rte_bbdev_op.h:839
RTE_BBDEV_FFT_FP16_INPUT
@ RTE_BBDEV_FFT_FP16_INPUT
Definition: rte_bbdev_op.h:239
RTE_BBDEV_OP_TURBO_DEC
@ RTE_BBDEV_OP_TURBO_DEC
Definition: rte_bbdev_op.h:854
RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
@ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
Definition: rte_bbdev_op.h:176
rte_bbdev_op_enc_turbo_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:584
RTE_BBDEV_TURBO_DEC_CRC_24B_DROP
@ RTE_BBDEV_TURBO_DEC_CRC_24B_DROP
Definition: rte_bbdev_op.h:127
rte_bbdev_op_dec_ldpc_tb_params
Definition: rte_bbdev_op.h:360
RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
@ RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
Definition: rte_bbdev_op.h:160
rte_bbdev_op_enc_ldpc_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:632
rte_bbdev_fft_op::status
int status
Definition: rte_bbdev_op.h:905
rte_bbdev_dec_op::mempool
struct rte_mempool * mempool
Definition: rte_bbdev_op.h:891
rte_bbdev_op_fft::window_index
uint8_t window_index[RTE_BBDEV_MAX_CS_2]
Definition: rte_bbdev_op.h:762
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
Definition: rte_bbdev_op.h:196
rte_bbdev_dec_op_alloc_bulk
static 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:1015
rte_bbdev_dec_op::ldpc_dec
struct rte_bbdev_op_ldpc_dec ldpc_dec
Definition: rte_bbdev_op.h:898
rte_bbdev_op_enc_ldpc_tb_params
Definition: rte_bbdev_op.h:616
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
@ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
Definition: rte_bbdev_op.h:114
rte_bbdev_op_ldpc_enc::basegraph
uint8_t basegraph
Definition: rte_bbdev_op.h:706
rte_bbdev_op_enc_turbo_tb_params::ncb_pos
uint16_t ncb_pos
Definition: rte_bbdev_op.h:602
rte_bbdev_op_ldpc_dec::n_filler
uint16_t n_filler
Definition: rte_bbdev_op.h:535
rte_bbdev_op_cap_turbo_enc::num_buffers_src
uint8_t num_buffers_src
Definition: rte_bbdev_op.h:807
rte_bbdev_op_fft::dft_log2
uint8_t dft_log2
Definition: rte_bbdev_op.h:770
RTE_BBDEV_OP_LDPC_ENC
@ RTE_BBDEV_OP_LDPC_ENC
Definition: rte_bbdev_op.h:857
RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK
@ RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK
Definition: rte_bbdev_op.h:152
rte_bbdev_enc_op::ldpc_enc
struct rte_bbdev_op_ldpc_enc ldpc_enc
Definition: rte_bbdev_op.h:882
rte_bbdev_op_fft_flag_bitmasks
rte_bbdev_op_fft_flag_bitmasks
Definition: rte_bbdev_op.h:225
rte_bbdev_op_ldpc_dec::iter_count
uint8_t iter_count
Definition: rte_bbdev_op.h:515
rte_bbdev_op_fft::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:752
rte_bbdev_op_enc_turbo_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:604
rte_bbdev_op_turbo_dec::iter_count
uint8_t iter_count
Definition: rte_bbdev_op.h:435
rte_bbdev_op_enc_turbo_tb_params::k_neg
uint16_t k_neg
Definition: rte_bbdev_op.h:572
rte_bbdev_fft_op
Definition: rte_bbdev_op.h:903
rte_bbdev_enc_op
Definition: rte_bbdev_op.h:871
rte_bbdev_op_fft::input_leading_padding
uint16_t input_leading_padding
Definition: rte_bbdev_op.h:756
rte_bbdev_op_fft::idft_log2
uint8_t idft_log2
Definition: rte_bbdev_op.h:768
rte_bbdev_op_cap_ldpc_dec::llr_size
int8_t llr_size
Definition: rte_bbdev_op.h:817
rte_bbdev_op_enc_turbo_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:594
rte_bbdev_op_turbo_dec::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:411
rte_bbdev_op_ldpc_enc::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:702
rte_bbdev_op_fft::cs_time_adjustment
int8_t cs_time_adjustment
Definition: rte_bbdev_op.h:772
RTE_BBDEV_TURBO_MAP_DEC
@ RTE_BBDEV_TURBO_MAP_DEC
Definition: rte_bbdev_op.h:118
rte_bbdev_op_turbo_dec::num_maps
uint8_t num_maps
Definition: rte_bbdev_op.h:441
rte_bbdev_op_ldpc_dec
Definition: rte_bbdev_op.h:485
rte_bbdev_op_ldpc_dec::basegraph
uint8_t basegraph
Definition: rte_bbdev_op.h:519
rte_bbdev_op_cap_turbo_dec::num_buffers_soft_out
uint8_t num_buffers_soft_out
Definition: rte_bbdev_op.h:799
RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
@ RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
Definition: rte_bbdev_op.h:91
rte_bbdev_op_te_flag_bitmasks
rte_bbdev_op_te_flag_bitmasks
Definition: rte_bbdev_op.h:132
rte_bbdev_op_turbo_enc
Definition: rte_bbdev_op.h:656
rte_bbdev_op_ldpc_enc::z_c
uint16_t z_c
Definition: rte_bbdev_op.h:710
rte_bbdev_op_ldpc_dec::iter_max
uint8_t iter_max
Definition: rte_bbdev_op.h:511
rte_bbdev_op_data::offset
uint32_t offset
Definition: rte_bbdev_op.h:291
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE
Definition: rte_bbdev_op.h:192
rte_mbuf
Definition: rte_mbuf_core.h:465
RTE_BBDEV_FFT_WINDOWING
@ RTE_BBDEV_FFT_WINDOWING
Definition: rte_bbdev_op.h:227
rte_bbdev_op_ldpc_dec::z_c
uint16_t z_c
Definition: rte_bbdev_op.h:523
RTE_BBDEV_TURBO_ENC_INTERRUPTS
@ RTE_BBDEV_TURBO_ENC_INTERRUPTS
Definition: rte_bbdev_op.h:142
rte_bbdev_op_type
rte_bbdev_op_type
Definition: rte_bbdev_op.h:852
rte_bbdev_op_fft::cs_bitmap
uint16_t cs_bitmap
Definition: rte_bbdev_op.h:764
rte_bbdev_enc_op::mempool
struct rte_mempool * mempool
Definition: rte_bbdev_op.h:875
rte_bbdev_op_enc_turbo_cb_params
Definition: rte_bbdev_op.h:548
rte_bbdev_op_cap_fft::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:841
rte_bbdev_op_cap_ldpc_dec::num_buffers_soft_out
uint16_t num_buffers_soft_out
Definition: rte_bbdev_op.h:825
rte_bbdev_op_enc_ldpc_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:628
rte_bbdev_op_ldpc_dec::harq_combined_input
struct rte_bbdev_op_data harq_combined_input
Definition: rte_bbdev_op.h:497
rte_bbdev_op_dec_ldpc_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:374
rte_bbdev_op_cap_turbo_enc
Definition: rte_bbdev_op.h:803
rte_bbdev_enc_op::status
int status
Definition: rte_bbdev_op.h:873
RTE_BBDEV_LDPC_SOFT_OUT_ENABLE
@ RTE_BBDEV_LDPC_SOFT_OUT_ENABLE
Definition: rte_bbdev_op.h:168
rte_bbdev_op_dec_ldpc_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:372
rte_bbdev_op_enc_ldpc_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:624
rte_bbdev_op_ldpc_dec::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:502
rte_bbdev_op_turbo_dec
Definition: rte_bbdev_op.h:409
rte_bbdev_op_cap_turbo_dec::num_buffers_src
uint8_t num_buffers_src
Definition: rte_bbdev_op.h:795
rte_bbdev_op_cap_turbo_dec::num_buffers_hard_out
uint8_t num_buffers_hard_out
Definition: rte_bbdev_op.h:797
RTE_BBDEV_TURBO_ENC_SCATTER_GATHER
@ RTE_BBDEV_TURBO_ENC_SCATTER_GATHER
Definition: rte_bbdev_op.h:144
rte_bbdev_op_cap_ldpc_dec::num_buffers_hard_out
uint16_t num_buffers_hard_out
Definition: rte_bbdev_op.h:823
rte_bbdev_op_enc_turbo_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:590
RTE_BBDEV_FFT_DFT_BYPASS
@ RTE_BBDEV_FFT_DFT_BYPASS
Definition: rte_bbdev_op.h:231
rte_bbdev_op_ldpc_enc::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:699
rte_bbdev_op_cb_mode
rte_bbdev_op_cb_mode
Definition: rte_bbdev_op.h:245
rte_bbdev_op_ldpc_enc::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:724
rte_bbdev_op_ldpc_enc::n_cb
uint16_t n_cb
Definition: rte_bbdev_op.h:714
rte_bbdev_op_turbo_enc::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:665
rte_bbdev_op_dec_turbo_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:356
rte_bbdev_op_dec_turbo_cb_params
Definition: rte_bbdev_op.h:308
rte_bbdev_enc_op_free_bulk
static void rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)
Definition: rte_bbdev_op.h:1089
rte_bbdev_op_dec_ldpc_cb_params
Definition: rte_bbdev_op.h:322
RTE_BBDEV_FFT_FP16_OUTPUT
@ RTE_BBDEV_FFT_FP16_OUTPUT
Definition: rte_bbdev_op.h:241
RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION
@ RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION
Definition: rte_bbdev_op.h:182
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
@ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
Definition: rte_bbdev_op.h:98
RTE_BBDEV_LDPC_DECODE_BYPASS
@ RTE_BBDEV_LDPC_DECODE_BYPASS
Definition: rte_bbdev_op.h:166
rte_bbdev_op_fft::fp16_exp_adjust
uint16_t fp16_exp_adjust
Definition: rte_bbdev_op.h:782
rte_bbdev_op_ldpc_dec::hard_output
struct rte_bbdev_op_data hard_output
Definition: rte_bbdev_op.h:493
rte_bbdev_dec_op
Definition: rte_bbdev_op.h:887
RTE_BBDEV_LDPC_LLR_COMPRESSION
@ RTE_BBDEV_LDPC_LLR_COMPRESSION
Definition: rte_bbdev_op.h:184
RTE_BBDEV_FFT_WINDOWING_BYPASS
@ RTE_BBDEV_FFT_WINDOWING_BYPASS
Definition: rte_bbdev_op.h:235
rte_bbdev_op_dec_ldpc_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:376
rte_bbdev_fft_op_alloc_bulk
static __rte_experimental int rte_bbdev_fft_op_alloc_bulk(struct rte_mempool *mempool, struct rte_bbdev_fft_op **ops, uint16_t num_ops)
Definition: rte_bbdev_op.h:1047
rte_bbdev_op_ldpc_dec::n_cb
uint16_t n_cb
Definition: rte_bbdev_op.h:527
rte_bbdev_op_fft::base_input
struct rte_bbdev_op_data base_input
Definition: rte_bbdev_op.h:746
rte_bbdev_op_cap_ldpc_enc::num_buffers_src
uint16_t num_buffers_src
Definition: rte_bbdev_op.h:833
rte_bbdev_op_enc_ldpc_cb_params
Definition: rte_bbdev_op.h:608
RTE_BBDEV_FFT_POWER_MEAS
@ RTE_BBDEV_FFT_POWER_MEAS
Definition: rte_bbdev_op.h:237
rte_bbdev_op_cap_ldpc_dec::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:815
rte_bbdev_op_data::data
struct rte_mbuf * data
Definition: rte_bbdev_op.h:283
rte_bbdev_op_ldpc_dec::harq_combined_output
struct rte_bbdev_op_data harq_combined_output
Definition: rte_bbdev_op.h:499
rte_bbdev_op_ldpc_enc::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:694
rte_bbdev_dec_op::opaque_data
void * opaque_data
Definition: rte_bbdev_op.h:893
rte_bbdev_op_turbo_dec::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:420
rte_common.h
rte_bbdev_op_cap::cap
union rte_bbdev_op_cap::@40 cap
rte_bbdev_op_fft::output_sequence_size
uint16_t output_sequence_size
Definition: rte_bbdev_op.h:758
RTE_BBDEV_TURBO_EQUALIZER
@ RTE_BBDEV_TURBO_EQUALIZER
Definition: rte_bbdev_op.h:68
rte_bbdev_op_cap_ldpc_enc::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:831
RTE_BBDEV_TURBO_EARLY_TERMINATION
@ RTE_BBDEV_TURBO_EARLY_TERMINATION
Definition: rte_bbdev_op.h:82
rte_bbdev_op_data
Definition: rte_bbdev_op.h:253
rte_bbdev_op_dec_turbo_tb_params::k_neg
uint16_t k_neg
Definition: rte_bbdev_op.h:334
rte_bbdev_op_fft::power_shift
uint16_t power_shift
Definition: rte_bbdev_op.h:780
rte_bbdev_op_ldpc_enc::tb_params
struct rte_bbdev_op_enc_ldpc_tb_params tb_params
Definition: rte_bbdev_op.h:729
rte_bbdev_op_turbo_enc::op_flags
uint32_t op_flags
Definition: rte_bbdev_op.h:662
rte_bbdev_op_dec_turbo_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:354
rte_bbdev_op_cap_turbo_dec
Definition: rte_bbdev_op.h:787
rte_bbdev_op_ldpc_enc::q_m
uint8_t q_m
Definition: rte_bbdev_op.h:718
RTE_BBDEV_LDPC_ENC_INTERRUPTS
@ RTE_BBDEV_LDPC_ENC_INTERRUPTS
Definition: rte_bbdev_op.h:217
rte_bbdev_op_turbo_dec::iter_min
uint8_t iter_min
Definition: rte_bbdev_op.h:427
rte_bbdev_op_fft::idft_shift
int8_t idft_shift
Definition: rte_bbdev_op.h:774
RTE_BBDEV_TURBO_DEC_SCATTER_GATHER
@ RTE_BBDEV_TURBO_DEC_SCATTER_GATHER
Definition: rte_bbdev_op.h:120
rte_bbdev_op_turbo_enc::output
struct rte_bbdev_op_data output
Definition: rte_bbdev_op.h:660
RTE_BBDEV_LDPC_ENC_CONCATENATION
@ RTE_BBDEV_LDPC_ENC_CONCATENATION
Definition: rte_bbdev_op.h:221
rte_bbdev_op_enc_ldpc_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:620
rte_bbdev_op_turbo_dec::cb_params
struct rte_bbdev_op_dec_turbo_cb_params cb_params
Definition: rte_bbdev_op.h:447
rte_bbdev_op_ldpc_dec::soft_output
struct rte_bbdev_op_data soft_output
Definition: rte_bbdev_op.h:495
rte_bbdev_op_ldpc_dec::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:537
rte_bbdev_op_turbo_enc::cb_params
struct rte_bbdev_op_enc_turbo_cb_params cb_params
Definition: rte_bbdev_op.h:670
rte_bbdev_op_turbo_dec::iter_max
uint8_t iter_max
Definition: rte_bbdev_op.h:431
rte_bbdev_op_dec_turbo_tb_params
Definition: rte_bbdev_op.h:330
RTE_BBDEV_TURBO_SOFT_OUTPUT
@ RTE_BBDEV_TURBO_SOFT_OUTPUT
Definition: rte_bbdev_op.h:80
rte_bbdev_op_cap::type
enum rte_bbdev_op_type type
Definition: rte_bbdev_op.h:916
rte_bbdev_enc_op_alloc_bulk
static 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:984
rte_bbdev_op_cap_ldpc_enc
Definition: rte_bbdev_op.h:829
rte_bbdev_fft_op::fft
struct rte_bbdev_op_fft fft
Definition: rte_bbdev_op.h:911
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE
Definition: rte_bbdev_op.h:188
rte_mempool
Definition: rte_mempool.h:219
rte_bbdev_op_dec_ldpc_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:326
rte_bbdev_op_enc_turbo_tb_params
Definition: rte_bbdev_op.h:566
RTE_BBDEV_LDPC_RATE_MATCH
@ RTE_BBDEV_LDPC_RATE_MATCH
Definition: rte_bbdev_op.h:209
RTE_BBDEV_LDPC_INTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_INTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:207
RTE_BBDEV_TURBO_CRC_24A_ATTACH
@ RTE_BBDEV_TURBO_CRC_24A_ATTACH
Definition: rte_bbdev_op.h:140
RTE_BBDEV_LDPC_CRC_24B_ATTACH
@ RTE_BBDEV_LDPC_CRC_24B_ATTACH
Definition: rte_bbdev_op.h:213
rte_bbdev_enc_op::opaque_data
void * opaque_data
Definition: rte_bbdev_op.h:877
rte_bbdev_op_turbo_dec::soft_output
struct rte_bbdev_op_data soft_output
Definition: rte_bbdev_op.h:417
rte_bbdev_op_cap_turbo_dec::max_llr_modulus
int8_t max_llr_modulus
Definition: rte_bbdev_op.h:793
RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:172
rte_bbdev_op_turbo_dec::code_block_mode
uint8_t code_block_mode
Definition: rte_bbdev_op.h:444
RTE_BBDEV_FFT_CS_ADJUSTMENT
@ RTE_BBDEV_FFT_CS_ADJUSTMENT
Definition: rte_bbdev_op.h:229
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:1640
rte_bbdev_op_enc_turbo_tb_params::cab
uint8_t cab
Definition: rte_bbdev_op.h:586
rte_bbdev_op_type_str
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:78
rte_mempool.h
RTE_BBDEV_TURBO_RV_INDEX_BYPASS
@ RTE_BBDEV_TURBO_RV_INDEX_BYPASS
Definition: rte_bbdev_op.h:134
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:1455
rte_bbdev_op_ldpc_enc::output
struct rte_bbdev_op_data output
Definition: rte_bbdev_op.h:696
RTE_BBDEV_CODE_BLOCK
@ RTE_BBDEV_CODE_BLOCK
Definition: rte_bbdev_op.h:249
RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS
@ RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS
Definition: rte_bbdev_op.h:158
rte_bbdev_op_enc_turbo_cb_params::ncb
uint16_t ncb
Definition: rte_bbdev_op.h:562
rte_bbdev_op_td_flag_bitmasks
rte_bbdev_op_td_flag_bitmasks
Definition: rte_bbdev_op.h:62
rte_bbdev_op_ldpcenc_flag_bitmasks
rte_bbdev_op_ldpcenc_flag_bitmasks
Definition: rte_bbdev_op.h:205
rte_bbdev_op_enc_ldpc_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:612
rte_bbdev_op_dec_turbo_cb_params::k
uint16_t k
Definition: rte_bbdev_op.h:314
rte_bbdev_op_turbo_dec::tb_params
struct rte_bbdev_op_dec_turbo_tb_params tb_params
Definition: rte_bbdev_op.h:449
RTE_BBDEV_LDPC_ENC_SCATTER_GATHER
@ RTE_BBDEV_LDPC_ENC_SCATTER_GATHER
Definition: rte_bbdev_op.h:219
rte_bbdev_op_turbo_enc::tb_params
struct rte_bbdev_op_enc_turbo_tb_params tb_params
Definition: rte_bbdev_op.h:672
rte_mbuf.h
rte_bbdev_op_cap_fft::num_buffers_dst
uint16_t num_buffers_dst
Definition: rte_bbdev_op.h:845
rte_bbdev_op_cap_turbo_dec::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:789
rte_bbdev_dec_op::status
int status
Definition: rte_bbdev_op.h:889
rte_bbdev_op_cap_ldpc_dec::num_buffers_src
uint16_t num_buffers_src
Definition: rte_bbdev_op.h:821
rte_bbdev_op_fft::input_sequence_size
uint16_t input_sequence_size
Definition: rte_bbdev_op.h:754
rte_bbdev_op_enc_turbo_tb_params::ncb_neg
uint16_t ncb_neg
Definition: rte_bbdev_op.h:598
rte_bbdev_op_pool_create
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_LDPC_DEC_SCATTER_GATHER
@ RTE_BBDEV_LDPC_DEC_SCATTER_GATHER
Definition: rte_bbdev_op.h:180
rte_bbdev_enc_op::turbo_enc
struct rte_bbdev_op_turbo_enc turbo_enc
Definition: rte_bbdev_op.h:880
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
@ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
Definition: rte_bbdev_op.h:201
rte_bbdev_op_ldpc_dec::tb_params
struct rte_bbdev_op_dec_ldpc_tb_params tb_params
Definition: rte_bbdev_op.h:542
RTE_BBDEV_TRANSPORT_BLOCK
@ RTE_BBDEV_TRANSPORT_BLOCK
Definition: rte_bbdev_op.h:247
rte_bbdev_op_turbo_enc::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:658
rte_bbdev_op_dec_turbo_tb_params::k_pos
uint16_t k_pos
Definition: rte_bbdev_op.h:338
RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
@ RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
Definition: rte_bbdev_op.h:154
RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK
@ RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK
Definition: rte_bbdev_op.h:150
rte_bbdev_op_enc_turbo_tb_params::c_neg
uint8_t c_neg
Definition: rte_bbdev_op.h:580
rte_bbdev_op_dec_turbo_tb_params::c
uint8_t c
Definition: rte_bbdev_op.h:344
RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS
@ RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS
Definition: rte_bbdev_op.h:170
RTE_BBDEV_LDPC_CRC_TYPE_16_CHECK
@ RTE_BBDEV_LDPC_CRC_TYPE_16_CHECK
Definition: rte_bbdev_op.h:156
rte_bbdev_op_ldpcdec_flag_bitmasks
rte_bbdev_op_ldpcdec_flag_bitmasks
Definition: rte_bbdev_op.h:148
rte_bbdev_op_turbo_dec::ext_scale
uint8_t ext_scale
Definition: rte_bbdev_op.h:437
rte_bbdev_op_turbo_dec::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:423
rte_bbdev_op_fft::power_meas_output
struct rte_bbdev_op_data power_meas_output
Definition: rte_bbdev_op.h:750
RTE_BBDEV_OP_TURBO_ENC
@ RTE_BBDEV_OP_TURBO_ENC
Definition: rte_bbdev_op.h:855
rte_bbdev_op_fft::num_antennas_log2
uint8_t num_antennas_log2
Definition: rte_bbdev_op.h:766
rte_bbdev_op_enc_turbo_cb_params::e
uint32_t e
Definition: rte_bbdev_op.h:558
rte_mempool::cache_size
uint32_t cache_size
Definition: rte_mempool.h:231
rte_bbdev_op_cap_turbo_enc::capability_flags
uint32_t capability_flags
Definition: rte_bbdev_op.h:805
RTE_BBDEV_TURBO_HALF_ITERATION_EVEN
@ RTE_BBDEV_TURBO_HALF_ITERATION_EVEN
Definition: rte_bbdev_op.h:74
rte_bbdev_op_cap
Definition: rte_bbdev_op.h:915
rte_bbdev_op_dec_ldpc_tb_params::ea
uint32_t ea
Definition: rte_bbdev_op.h:364
RTE_BBDEV_TURBO_DEC_INTERRUPTS
@ RTE_BBDEV_TURBO_DEC_INTERRUPTS
Definition: rte_bbdev_op.h:84
rte_bbdev_dec_op::turbo_dec
struct rte_bbdev_op_turbo_dec turbo_dec
Definition: rte_bbdev_op.h:896
RTE_BBDEV_OP_FFT
@ RTE_BBDEV_OP_FFT
Definition: rte_bbdev_op.h:858
rte_bbdev_op_fft::dft_shift
int8_t dft_shift
Definition: rte_bbdev_op.h:776
rte_mempool::socket_id
int socket_id
Definition: rte_mempool.h:229
RTE_BBDEV_TURBO_RATE_MATCH
@ RTE_BBDEV_TURBO_RATE_MATCH
Definition: rte_bbdev_op.h:136
rte_bbdev_op_ldpc_dec::rv_index
uint8_t rv_index
Definition: rte_bbdev_op.h:507
rte_bbdev_fft_op::opaque_data
void * opaque_data
Definition: rte_bbdev_op.h:909
rte_bbdev_op_ldpc_dec::input
struct rte_bbdev_op_data input
Definition: rte_bbdev_op.h:489
rte_bbdev_op_cap_ldpc_dec::llr_decimals
int8_t llr_decimals
Definition: rte_bbdev_op.h:819
RTE_BBDEV_TURBO_CRC_TYPE_24B
@ RTE_BBDEV_TURBO_CRC_TYPE_24B
Definition: rte_bbdev_op.h:66
rte_bbdev_fft_op_free_bulk
static __rte_experimental void rte_bbdev_fft_op_free_bulk(struct rte_bbdev_fft_op **ops, unsigned int num_ops)
Definition: rte_bbdev_op.h:1107
rte_bbdev_op_dec_ldpc_tb_params::eb
uint32_t eb
Definition: rte_bbdev_op.h:368
rte_bbdev_op_enc_ldpc_tb_params::r
uint8_t r
Definition: rte_bbdev_op.h:630
rte_bbdev_op_cap_fft::num_buffers_src
uint16_t num_buffers_src
Definition: rte_bbdev_op.h:843
RTE_BBDEV_LDPC_CRC_24A_ATTACH
@ RTE_BBDEV_LDPC_CRC_24A_ATTACH
Definition: rte_bbdev_op.h:211
RTE_BBDEV_LDPC_CRC_16_ATTACH
@ RTE_BBDEV_LDPC_CRC_16_ATTACH
Definition: rte_bbdev_op.h:215
rte_bbdev_op_enc_turbo_cb_params::k
uint16_t k
Definition: rte_bbdev_op.h:554
rte_bbdev_op_fft::ncs_reciprocal
uint16_t ncs_reciprocal
Definition: rte_bbdev_op.h:778
RTE_BBDEV_LDPC_DEC_INTERRUPTS
@ RTE_BBDEV_LDPC_DEC_INTERRUPTS
Definition: rte_bbdev_op.h:178
rte_bbdev_op_ldpc_enc::cb_params
struct rte_bbdev_op_enc_ldpc_cb_params cb_params
Definition: rte_bbdev_op.h:727