xref: /dpdk/app/test-bbdev/test_bbdev_vector.h (revision cfa443351ef581b7189467842ca102ab710cb7d2)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4 
5 #ifndef TEST_BBDEV_VECTOR_H_
6 #define TEST_BBDEV_VECTOR_H_
7 
8 #include <rte_bbdev_op.h>
9 
10 /* Flags which are set when specific parameter is define in vector file */
11 enum {
12 	TEST_BBDEV_VF_E = (1ULL << 0),
13 	TEST_BBDEV_VF_EA = (1ULL << 1),
14 	TEST_BBDEV_VF_EB = (1ULL << 2),
15 	TEST_BBDEV_VF_K = (1ULL << 3),
16 	TEST_BBDEV_VF_K_NEG = (1ULL << 4),
17 	TEST_BBDEV_VF_K_POS = (1ULL << 5),
18 	TEST_BBDEV_VF_C_NEG = (1ULL << 6),
19 	TEST_BBDEV_VF_C = (1ULL << 7),
20 	TEST_BBDEV_VF_CAB = (1ULL << 8),
21 	TEST_BBDEV_VF_RV_INDEX = (1ULL << 9),
22 	TEST_BBDEV_VF_ITER_MIN = (1ULL << 11),
23 	TEST_BBDEV_VF_EXPECTED_ITER_COUNT = (1ULL << 12),
24 	TEST_BBDEV_VF_EXT_SCALE = (1ULL << 13),
25 	TEST_BBDEV_VF_NUM_MAPS = (1ULL << 14),
26 	TEST_BBDEV_VF_NCB = (1ULL << 15),
27 	TEST_BBDEV_VF_NCB_NEG = (1ULL << 16),
28 	TEST_BBDEV_VF_NCB_POS = (1ULL << 17),
29 	TEST_BBDEV_VF_R = (1ULL << 18),
30 	TEST_BBDEV_VF_BG = (1ULL << 19),
31 	TEST_BBDEV_VF_ZC = (1ULL << 20),
32 	TEST_BBDEV_VF_F = (1ULL << 21),
33 	TEST_BBDEV_VF_QM = (1ULL << 22),
34 	TEST_BBDEV_VF_CODE_BLOCK_MODE = (1ULL << 23),
35 	TEST_BBDEV_VF_OP_FLAGS = (1ULL << 24),
36 	TEST_BBDEV_VF_EXPECTED_STATUS = (1ULL << 25),
37 };
38 
39 enum op_data_type {
40 	DATA_INPUT = 0,
41 	DATA_SOFT_OUTPUT,
42 	DATA_HARD_OUTPUT,
43 	DATA_HARQ_INPUT,
44 	DATA_HARQ_OUTPUT,
45 	DATA_NUM_TYPES,
46 };
47 
48 struct op_data_buf {
49 	uint32_t *addr;
50 	uint32_t length;
51 };
52 
53 struct op_data_entries {
54 	struct op_data_buf segments[RTE_BBDEV_TURBO_MAX_CODE_BLOCKS];
55 	unsigned int nb_segments;
56 };
57 
58 struct test_bbdev_vector {
59 	enum rte_bbdev_op_type op_type;
60 	int expected_status;
61 	int mask;
62 	union {
63 		struct rte_bbdev_op_turbo_dec turbo_dec;
64 		struct rte_bbdev_op_turbo_enc turbo_enc;
65 		struct rte_bbdev_op_ldpc_dec ldpc_dec;
66 		struct rte_bbdev_op_ldpc_enc ldpc_enc;
67 		struct rte_bbdev_op_fft fft;
68 		struct rte_bbdev_op_mldts mldts;
69 	};
70 	/* Additional storage for op data entries */
71 	struct op_data_entries entries[DATA_NUM_TYPES];
72 	/* Vector FFT window width assumption. */
73 	uint16_t fft_window_width_vec;
74 };
75 
76 /* fills test vector parameters based on test file */
77 int
78 test_bbdev_vector_read(const char *filename,
79 		struct test_bbdev_vector *vector);
80 
81 
82 #endif /* TEST_BBDEV_VECTOR_H_ */
83