xref: /dpdk/drivers/net/ntnic/include/flow_api_engine.h (revision 2005c5493344798df735cfbd1f3b7ac6b97a3b1c)
11d3f62a0SOleksandr Kolomeiets /*
21d3f62a0SOleksandr Kolomeiets  * SPDX-License-Identifier: BSD-3-Clause
31d3f62a0SOleksandr Kolomeiets  * Copyright(c) 2023 Napatech A/S
41d3f62a0SOleksandr Kolomeiets  */
51d3f62a0SOleksandr Kolomeiets 
61d3f62a0SOleksandr Kolomeiets #ifndef _FLOW_API_ENGINE_H_
71d3f62a0SOleksandr Kolomeiets #define _FLOW_API_ENGINE_H_
81d3f62a0SOleksandr Kolomeiets 
91d3f62a0SOleksandr Kolomeiets /*
101d3f62a0SOleksandr Kolomeiets  * Resource management
117917b0d3SOleksandr Kolomeiets  */
127917b0d3SOleksandr Kolomeiets #define BIT_CONTAINER_8_ALIGN(x) (((x) + 7) / 8)
137917b0d3SOleksandr Kolomeiets 
147917b0d3SOleksandr Kolomeiets /*
157917b0d3SOleksandr Kolomeiets  * Resource management
161d3f62a0SOleksandr Kolomeiets  * These are free resources in FPGA
171d3f62a0SOleksandr Kolomeiets  * Other FPGA memory lists are linked to one of these
181d3f62a0SOleksandr Kolomeiets  * and will implicitly follow them
191d3f62a0SOleksandr Kolomeiets  */
201d3f62a0SOleksandr Kolomeiets enum res_type_e {
211d3f62a0SOleksandr Kolomeiets 	RES_QUEUE,
221d3f62a0SOleksandr Kolomeiets 	RES_CAT_CFN,
231d3f62a0SOleksandr Kolomeiets 	RES_CAT_COT,
241d3f62a0SOleksandr Kolomeiets 	RES_CAT_EXO,
251d3f62a0SOleksandr Kolomeiets 	RES_CAT_LEN,
261d3f62a0SOleksandr Kolomeiets 	RES_KM_FLOW_TYPE,
271d3f62a0SOleksandr Kolomeiets 	RES_KM_CATEGORY,
281d3f62a0SOleksandr Kolomeiets 	RES_HSH_RCP,
291d3f62a0SOleksandr Kolomeiets 	RES_PDB_RCP,
301d3f62a0SOleksandr Kolomeiets 	RES_QSL_RCP,
311d3f62a0SOleksandr Kolomeiets 	RES_QSL_QST,
321d3f62a0SOleksandr Kolomeiets 	RES_SLC_LR_RCP,
331d3f62a0SOleksandr Kolomeiets 
341d3f62a0SOleksandr Kolomeiets 	RES_FLM_FLOW_TYPE,
351d3f62a0SOleksandr Kolomeiets 	RES_FLM_RCP,
361d3f62a0SOleksandr Kolomeiets 	RES_TPE_RCP,
371d3f62a0SOleksandr Kolomeiets 	RES_TPE_EXT,
381d3f62a0SOleksandr Kolomeiets 	RES_TPE_RPL,
391d3f62a0SOleksandr Kolomeiets 	RES_SCRUB_RCP,
401d3f62a0SOleksandr Kolomeiets 	RES_COUNT,
411d3f62a0SOleksandr Kolomeiets 	RES_INVALID
421d3f62a0SOleksandr Kolomeiets };
431d3f62a0SOleksandr Kolomeiets 
44b01eb812SDanylo Vodopianov /*
45b01eb812SDanylo Vodopianov  * Flow NIC offload management
46b01eb812SDanylo Vodopianov  */
47b01eb812SDanylo Vodopianov #define MAX_OUTPUT_DEST (128)
48b01eb812SDanylo Vodopianov 
49*2005c549SSerhii Iliushyk struct flow_handle {
50*2005c549SSerhii Iliushyk 	struct flow_eth_dev *dev;
51*2005c549SSerhii Iliushyk 	struct flow_handle *next;
52*2005c549SSerhii Iliushyk };
53*2005c549SSerhii Iliushyk 
541d3f62a0SOleksandr Kolomeiets void km_free_ndev_resource_management(void **handle);
551d3f62a0SOleksandr Kolomeiets 
561d3f62a0SOleksandr Kolomeiets void kcc_free_ndev_resource_management(void **handle);
571d3f62a0SOleksandr Kolomeiets 
581d3f62a0SOleksandr Kolomeiets #endif  /* _FLOW_API_ENGINE_H_ */
59