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