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 TEST_BBDEV_VF_K0 = (1ULL << 26), 38 }; 39 40 enum op_data_type { 41 DATA_INPUT = 0, 42 DATA_SOFT_OUTPUT, 43 DATA_HARD_OUTPUT, 44 DATA_HARQ_INPUT, 45 DATA_HARQ_OUTPUT, 46 DATA_NUM_TYPES, 47 }; 48 49 struct op_data_buf { 50 uint32_t *addr; 51 uint32_t length; 52 }; 53 54 struct op_data_entries { 55 struct op_data_buf segments[RTE_BBDEV_TURBO_MAX_CODE_BLOCKS]; 56 unsigned int nb_segments; 57 }; 58 59 struct test_bbdev_vector { 60 enum rte_bbdev_op_type op_type; 61 int expected_status; 62 int mask; 63 union { 64 struct rte_bbdev_op_turbo_dec turbo_dec; 65 struct rte_bbdev_op_turbo_enc turbo_enc; 66 struct rte_bbdev_op_ldpc_dec ldpc_dec; 67 struct rte_bbdev_op_ldpc_enc ldpc_enc; 68 struct rte_bbdev_op_fft fft; 69 struct rte_bbdev_op_mldts mldts; 70 }; 71 /* Additional storage for op data entries */ 72 struct op_data_entries entries[DATA_NUM_TYPES]; 73 /* Vector FFT window width assumption. */ 74 uint16_t fft_window_width_vec; 75 }; 76 77 /* fills test vector parameters based on test file */ 78 int 79 test_bbdev_vector_read(const char *filename, 80 struct test_bbdev_vector *vector); 81 82 83 #endif /* TEST_BBDEV_VECTOR_H_ */ 84