1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2019 Intel Corporation
5 #ifndef _FPGA_LTE_FEC_H_
6 #define _FPGA_LTE_FEC_H_
12 * @file fpga_lte_fec.h
14 * Interface for Intel(R) FGPA LTE FEC device configuration at the host level,
15 * directly accessible by the application.
16 * Configuration related to LTE Turbo coding functionality is done through
17 * librte_bbdev library.
20 * @b EXPERIMENTAL: this API may change without prior notice
27 /**< Number of Virtual Functions FGPA 4G FEC supports */
28 #define FPGA_LTE_FEC_NUM_VFS 8
31 * Structure to pass FPGA 4G FEC configuration.
33 struct rte_fpga_lte_fec_conf {
34 /**< 1 if PF is used for dataplane, 0 for VFs */
36 /**< Number of UL queues per VF */
37 uint8_t vf_ul_queues_number[FPGA_LTE_FEC_NUM_VFS];
38 /**< Number of DL queues per VF */
39 uint8_t vf_dl_queues_number[FPGA_LTE_FEC_NUM_VFS];
40 /**< UL bandwidth. Needed for schedule algorithm */
42 /**< DL bandwidth. Needed for schedule algorithm */
44 /**< UL Load Balance */
45 uint8_t ul_load_balance;
46 /**< DL Load Balance */
47 uint8_t dl_load_balance;
48 /**< FLR timeout value */
49 uint16_t flr_time_out;
53 * Configure Intel(R) FPGA LTE FEC device
56 * The name of the device. This is the short form of PCI BDF, e.g. 00:01.0.
57 * It can also be retrieved for a bbdev device from the dev_name field in the
58 * rte_bbdev_info structure returned by rte_bbdev_info_get().
60 * Configuration to apply to FPGA 4G FEC.
63 * Zero on success, negative value on failure.
67 rte_fpga_lte_fec_configure(const char *dev_name,
68 const struct rte_fpga_lte_fec_conf *conf);
74 #endif /* _FPGA_LTE_FEC_H_ */