xref: /dpdk/drivers/net/bnxt/tf_ulp/ulp_template_struct.h (revision 6167c20c4dffbee83ff63ca82dffe9f046f53711)
1313ac35aSVenkat Duvvuru /* SPDX-License-Identifier: BSD-3-Clause
22addc463SAjit Khaparde  * Copyright(c) 2014-2021 Broadcom
3313ac35aSVenkat Duvvuru  * All rights reserved.
4313ac35aSVenkat Duvvuru  */
5313ac35aSVenkat Duvvuru 
6313ac35aSVenkat Duvvuru #ifndef _ULP_TEMPLATE_STRUCT_H_
7313ac35aSVenkat Duvvuru #define _ULP_TEMPLATE_STRUCT_H_
8313ac35aSVenkat Duvvuru 
9313ac35aSVenkat Duvvuru #include <stdint.h>
10313ac35aSVenkat Duvvuru #include "rte_ether.h"
11313ac35aSVenkat Duvvuru #include "rte_icmp.h"
12313ac35aSVenkat Duvvuru #include "rte_ip.h"
13313ac35aSVenkat Duvvuru #include "rte_tcp.h"
14313ac35aSVenkat Duvvuru #include "rte_udp.h"
15313ac35aSVenkat Duvvuru #include "rte_esp.h"
16313ac35aSVenkat Duvvuru #include "rte_sctp.h"
17313ac35aSVenkat Duvvuru #include "rte_flow.h"
18313ac35aSVenkat Duvvuru #include "tf_core.h"
19313ac35aSVenkat Duvvuru 
2053a0d4f7SKishore Padmanabha /* Number of fields for each protocol */
21a2417601SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_SVIF_NUM	2
2253a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_ETH_NUM	3
2353a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_S_VLAN_NUM	3
2453a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_VLAN_NUM	6
2553a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_IPV4_NUM	10
268d9978d7SVenkat Duvvuru #define BNXT_ULP_PROTO_HDR_IPV6_NUM	8
2753a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_UDP_NUM	4
2853a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_TCP_NUM	9
2953a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_VXLAN_NUM	4
3053a0d4f7SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_MAX		128
31a2417601SKishore Padmanabha #define BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX	1
3253a0d4f7SKishore Padmanabha 
3377b359eeSKishore Padmanabha /* Direction attributes */
3477b359eeSKishore Padmanabha #define BNXT_ULP_FLOW_ATTR_TRANSFER	0x1
3577b359eeSKishore Padmanabha #define BNXT_ULP_FLOW_ATTR_INGRESS	0x2
3677b359eeSKishore Padmanabha #define BNXT_ULP_FLOW_ATTR_EGRESS	0x4
3777b359eeSKishore Padmanabha 
388f153057SMike Baucom struct ulp_rte_hdr_bitmap {
398f153057SMike Baucom 	uint64_t	bits;
408f153057SMike Baucom };
418f153057SMike Baucom 
422bbcdee8SKishore Padmanabha struct ulp_rte_field_bitmap {
432bbcdee8SKishore Padmanabha 	uint64_t	bits;
442bbcdee8SKishore Padmanabha };
452bbcdee8SKishore Padmanabha 
46ae905028SMike Baucom /* Structure to store the protocol fields */
47ae905028SMike Baucom #define RTE_PARSER_FLOW_HDR_FIELD_SIZE		16
48ae905028SMike Baucom struct ulp_rte_hdr_field {
49ae905028SMike Baucom 	uint8_t		spec[RTE_PARSER_FLOW_HDR_FIELD_SIZE];
50ae905028SMike Baucom 	uint8_t		mask[RTE_PARSER_FLOW_HDR_FIELD_SIZE];
51ae905028SMike Baucom 	uint32_t	size;
52ae905028SMike Baucom };
53ae905028SMike Baucom 
543d6ba7cbSKishore Padmanabha struct ulp_rte_act_bitmap {
553d6ba7cbSKishore Padmanabha 	uint64_t	bits;
563d6ba7cbSKishore Padmanabha };
573d6ba7cbSKishore Padmanabha 
583d6ba7cbSKishore Padmanabha /* Structure to hold the action property details. */
593d6ba7cbSKishore Padmanabha struct ulp_rte_act_prop {
603d6ba7cbSKishore Padmanabha 	uint8_t	act_details[BNXT_ULP_ACT_PROP_IDX_LAST];
613d6ba7cbSKishore Padmanabha };
623d6ba7cbSKishore Padmanabha 
633d6ba7cbSKishore Padmanabha /* Structure to be used for passing all the parser functions */
643d6ba7cbSKishore Padmanabha struct ulp_rte_parser_params {
653d6ba7cbSKishore Padmanabha 	struct ulp_rte_hdr_bitmap	hdr_bitmap;
660c0f5a98SKishore Padmanabha 	struct ulp_rte_hdr_bitmap	hdr_fp_bit;
672bbcdee8SKishore Padmanabha 	struct ulp_rte_field_bitmap	fld_bitmap;
683d6ba7cbSKishore Padmanabha 	struct ulp_rte_hdr_field	hdr_field[BNXT_ULP_PROTO_HDR_MAX];
690f772db6SKishore Padmanabha 	uint32_t			comp_fld[BNXT_ULP_CF_IDX_LAST];
703d6ba7cbSKishore Padmanabha 	uint32_t			field_idx;
713d6ba7cbSKishore Padmanabha 	struct ulp_rte_act_bitmap	act_bitmap;
723d6ba7cbSKishore Padmanabha 	struct ulp_rte_act_prop		act_prop;
7377b359eeSKishore Padmanabha 	uint32_t			dir_attr;
74675e31d8SVenkat Duvvuru 	uint32_t			priority;
75675e31d8SVenkat Duvvuru 	uint32_t			fid;
76675e31d8SVenkat Duvvuru 	uint32_t			parent_flow;
77675e31d8SVenkat Duvvuru 	uint32_t			parent_fid;
78675e31d8SVenkat Duvvuru 	uint16_t			func_id;
79675e31d8SVenkat Duvvuru 	uint32_t			class_id;
80675e31d8SVenkat Duvvuru 	uint32_t			act_tmpl;
81dc8ee812SKishore Padmanabha 	struct bnxt_ulp_context		*ulp_ctx;
82a2417601SKishore Padmanabha 	uint32_t			hdr_sig_id;
83a2417601SKishore Padmanabha 	uint32_t			flow_sig_id;
843d6ba7cbSKishore Padmanabha };
853d6ba7cbSKishore Padmanabha 
8653a0d4f7SKishore Padmanabha /* Flow Parser Header Information Structure */
8753a0d4f7SKishore Padmanabha struct bnxt_ulp_rte_hdr_info {
8853a0d4f7SKishore Padmanabha 	enum bnxt_ulp_hdr_type					hdr_type;
8953a0d4f7SKishore Padmanabha 	/* Flow Parser Protocol Header Function Prototype */
9053a0d4f7SKishore Padmanabha 	int (*proto_hdr_func)(const struct rte_flow_item	*item_list,
913d6ba7cbSKishore Padmanabha 			      struct ulp_rte_parser_params	*params);
9253a0d4f7SKishore Padmanabha };
9353a0d4f7SKishore Padmanabha 
9453a0d4f7SKishore Padmanabha /* Flow Parser Header Information Structure Array defined in template source*/
9553a0d4f7SKishore Padmanabha extern struct bnxt_ulp_rte_hdr_info	ulp_hdr_info[];
9653a0d4f7SKishore Padmanabha 
9711c854e2SKishore Padmanabha /* Flow Parser Action Information Structure */
9811c854e2SKishore Padmanabha struct bnxt_ulp_rte_act_info {
9911c854e2SKishore Padmanabha 	enum bnxt_ulp_act_type					act_type;
10011c854e2SKishore Padmanabha 	/* Flow Parser Protocol Action Function Prototype */
10111c854e2SKishore Padmanabha 	int32_t (*proto_act_func)
10211c854e2SKishore Padmanabha 		(const struct rte_flow_action	*action_item,
1033d6ba7cbSKishore Padmanabha 		 struct ulp_rte_parser_params	*params);
10411c854e2SKishore Padmanabha };
10511c854e2SKishore Padmanabha 
10611c854e2SKishore Padmanabha /* Flow Parser Action Information Structure Array defined in template source*/
10711c854e2SKishore Padmanabha extern struct bnxt_ulp_rte_act_info	ulp_act_info[];
10811c854e2SKishore Padmanabha 
109c7520059SKishore Padmanabha /* Flow Matcher structures */
110c7520059SKishore Padmanabha struct bnxt_ulp_header_match_info {
111c7520059SKishore Padmanabha 	struct ulp_rte_hdr_bitmap		hdr_bitmap;
112c7520059SKishore Padmanabha 	uint32_t				start_idx;
113c7520059SKishore Padmanabha 	uint32_t				num_entries;
114c7520059SKishore Padmanabha 	uint32_t				class_tmpl_id;
115c7520059SKishore Padmanabha 	uint32_t				act_vnic;
116c7520059SKishore Padmanabha };
117c7520059SKishore Padmanabha 
1182bbcdee8SKishore Padmanabha struct ulp_rte_bitmap {
1192bbcdee8SKishore Padmanabha 	uint64_t	bits;
1202bbcdee8SKishore Padmanabha };
121c7520059SKishore Padmanabha 
1222bbcdee8SKishore Padmanabha struct bnxt_ulp_class_match_info {
1232bbcdee8SKishore Padmanabha 	struct ulp_rte_bitmap	hdr_sig;
1242bbcdee8SKishore Padmanabha 	struct ulp_rte_bitmap	field_sig;
1252bbcdee8SKishore Padmanabha 	uint32_t		class_hid;
1262bbcdee8SKishore Padmanabha 	uint32_t		class_tid;
1272bbcdee8SKishore Padmanabha 	uint8_t			act_vnic;
1282bbcdee8SKishore Padmanabha 	uint8_t			wc_pri;
129a2417601SKishore Padmanabha 	uint32_t		hdr_sig_id;
130a2417601SKishore Padmanabha 	uint32_t		flow_sig_id;
1312bbcdee8SKishore Padmanabha };
1322bbcdee8SKishore Padmanabha 
1332bbcdee8SKishore Padmanabha /* Flow Matcher templates Structure for class entries */
1342bbcdee8SKishore Padmanabha extern uint16_t ulp_class_sig_tbl[];
1352bbcdee8SKishore Padmanabha extern struct bnxt_ulp_class_match_info ulp_class_match_list[];
136c7520059SKishore Padmanabha 
13700fa81b7SKishore Padmanabha /* Flow Matcher Action structures */
13800fa81b7SKishore Padmanabha struct bnxt_ulp_action_match_info {
13900fa81b7SKishore Padmanabha 	struct ulp_rte_act_bitmap		act_bitmap;
14000fa81b7SKishore Padmanabha 	uint32_t				act_tmpl_id;
14100fa81b7SKishore Padmanabha };
14200fa81b7SKishore Padmanabha 
1432bbcdee8SKishore Padmanabha struct bnxt_ulp_act_match_info {
1442bbcdee8SKishore Padmanabha 	struct ulp_rte_bitmap	act_sig;
1452bbcdee8SKishore Padmanabha 	uint32_t		act_hid;
1462bbcdee8SKishore Padmanabha 	uint32_t		act_tid;
1472bbcdee8SKishore Padmanabha };
1482bbcdee8SKishore Padmanabha 
1492bbcdee8SKishore Padmanabha /* Flow Matcher templates Structure for action entries */
1502bbcdee8SKishore Padmanabha extern	uint16_t ulp_act_sig_tbl[];
1512bbcdee8SKishore Padmanabha extern struct bnxt_ulp_act_match_info ulp_act_match_list[];
15200fa81b7SKishore Padmanabha 
153a4638284SMike Baucom /* Device Specific Tables for mapper */
154c5d06df4SMike Baucom struct bnxt_ulp_mapper_cond_info {
155c5d06df4SMike Baucom 	enum bnxt_ulp_cond_opc cond_opcode;
156c5d06df4SMike Baucom 	uint32_t cond_operand;
157c5d06df4SMike Baucom };
158c5d06df4SMike Baucom 
159c5d06df4SMike Baucom struct bnxt_ulp_mapper_cond_list_info {
160c5d06df4SMike Baucom 	enum bnxt_ulp_cond_list_opc cond_list_opcode;
161c5d06df4SMike Baucom 	uint32_t cond_start_idx;
162c5d06df4SMike Baucom 	uint32_t cond_nums;
16359ae4961SKishore Padmanabha 	uint32_t cond_goto;
164c5d06df4SMike Baucom };
165c5d06df4SMike Baucom 
1669cbfa4cfSKishore Padmanabha struct bnxt_ulp_template_device_tbls {
1679cbfa4cfSKishore Padmanabha 	struct bnxt_ulp_mapper_tmpl_info *tmpl_list;
168a2417601SKishore Padmanabha 	uint32_t tmpl_list_size;
1690c9fe336SMike Baucom 	struct bnxt_ulp_mapper_tbl_info *tbl_list;
170a2417601SKishore Padmanabha 	uint32_t tbl_list_size;
171a2417601SKishore Padmanabha 	struct bnxt_ulp_mapper_key_info *key_info_list;
172a2417601SKishore Padmanabha 	uint32_t key_info_list_size;
173a2417601SKishore Padmanabha 	struct bnxt_ulp_mapper_field_info *result_field_list;
174a2417601SKishore Padmanabha 	uint32_t result_field_list_size;
175a4638284SMike Baucom 	struct bnxt_ulp_mapper_ident_info *ident_list;
176a2417601SKishore Padmanabha 	uint32_t ident_list_size;
177c5d06df4SMike Baucom 	struct bnxt_ulp_mapper_cond_info *cond_list;
178a2417601SKishore Padmanabha 	uint32_t cond_list_size;
179a4638284SMike Baucom };
180a4638284SMike Baucom 
181696843ccSMike Baucom /* Device specific parameters */
182313ac35aSVenkat Duvvuru struct bnxt_ulp_device_params {
183313ac35aSVenkat Duvvuru 	uint8_t				description[16];
184313ac35aSVenkat Duvvuru 	enum bnxt_ulp_byte_order	byte_order;
185313ac35aSVenkat Duvvuru 	uint8_t				encap_byte_swap;
186cd01ecffSKishore Padmanabha 	uint8_t				num_phy_ports;
187cd01ecffSKishore Padmanabha 	uint32_t			mark_db_lfid_entries;
188cd01ecffSKishore Padmanabha 	uint64_t			mark_db_gfid_entries;
189191f19ceSMike Baucom 	uint64_t			int_flow_db_num_entries;
190191f19ceSMike Baucom 	uint64_t			ext_flow_db_num_entries;
191cd01ecffSKishore Padmanabha 	uint32_t			flow_count_db_entries;
192f4a4421cSKishore Padmanabha 	uint32_t			fdb_parent_flow_entries;
193313ac35aSVenkat Duvvuru 	uint32_t			num_resources_per_flow;
194bbc5f1a0SKishore Padmanabha 	uint32_t			ext_cntr_table_type;
195bbc5f1a0SKishore Padmanabha 	uint64_t			byte_count_mask;
196bbc5f1a0SKishore Padmanabha 	uint64_t			packet_count_mask;
197bbc5f1a0SKishore Padmanabha 	uint32_t			byte_count_shift;
198bbc5f1a0SKishore Padmanabha 	uint32_t			packet_count_shift;
1999cbfa4cfSKishore Padmanabha 	const struct bnxt_ulp_template_device_tbls *dev_tbls;
200313ac35aSVenkat Duvvuru };
201313ac35aSVenkat Duvvuru 
2028f153057SMike Baucom /* Flow Mapper */
2039cbfa4cfSKishore Padmanabha struct bnxt_ulp_mapper_tmpl_info {
2048f153057SMike Baucom 	uint32_t		device_name;
2058f153057SMike Baucom 	uint32_t		start_tbl_idx;
2068f153057SMike Baucom 	uint32_t		num_tbls;
207c5d06df4SMike Baucom 	struct bnxt_ulp_mapper_cond_list_info reject_info;
2088f153057SMike Baucom };
2098f153057SMike Baucom 
2108608c099SKishore Padmanabha struct bnxt_ulp_mapper_tbl_info {
211ae905028SMike Baucom 	enum bnxt_ulp_resource_func	resource_func;
212642feef8SKishore Padmanabha 	uint32_t			resource_type; /* TF_ enum type */
213642feef8SKishore Padmanabha 	enum bnxt_ulp_resource_sub_type	resource_sub_type;
214c5d06df4SMike Baucom 	struct bnxt_ulp_mapper_cond_list_info execute_info;
215c5d06df4SMike Baucom 	enum bnxt_ulp_cond_opc cond_opcode;
2164c4e86faSKishore Padmanabha 	uint32_t cond_operand;
2179cbfa4cfSKishore Padmanabha 	enum bnxt_ulp_mem_type_opc	mem_type_opcode;
218ae905028SMike Baucom 	uint8_t				direction;
2199cbfa4cfSKishore Padmanabha 	enum bnxt_ulp_pri_opc		pri_opcode;
2209cbfa4cfSKishore Padmanabha 	uint32_t			pri_operand;
221a2417601SKishore Padmanabha 
222a2417601SKishore Padmanabha 	/* conflict resolution opcode */
223a2417601SKishore Padmanabha 	enum bnxt_ulp_accept_opc	accept_opcode;
224a2417601SKishore Padmanabha 
225f4875133SKishore Padmanabha 	enum bnxt_ulp_critical_resource		critical_resource;
226ae905028SMike Baucom 
227ae905028SMike Baucom 	/* Information for accessing the ulp_key_field_list */
228ae905028SMike Baucom 	uint32_t	key_start_idx;
229ae905028SMike Baucom 	uint16_t	key_bit_size;
230ae905028SMike Baucom 	uint16_t	key_num_fields;
231ae905028SMike Baucom 	/* Size of the blob that holds the key */
232ae905028SMike Baucom 	uint16_t	blob_key_bit_size;
233ae905028SMike Baucom 
234ae905028SMike Baucom 	/* Information for accessing the ulp_class_result_field_list */
235ae905028SMike Baucom 	uint32_t	result_start_idx;
236ae905028SMike Baucom 	uint16_t	result_bit_size;
237ae905028SMike Baucom 	uint16_t	result_num_fields;
2388608c099SKishore Padmanabha 	uint16_t	encap_num_fields;
239ae905028SMike Baucom 
240ae905028SMike Baucom 	/* Information for accessing the ulp_ident_list */
241ae905028SMike Baucom 	uint32_t	ident_start_idx;
242ae905028SMike Baucom 	uint16_t	ident_nums;
243ae905028SMike Baucom 
2449cbfa4cfSKishore Padmanabha 	enum bnxt_ulp_mark_db_opc	mark_db_opcode;
245f634204bSKishore Padmanabha 
246f634204bSKishore Padmanabha 	/* Table opcode for table operations */
247f634204bSKishore Padmanabha 	uint32_t			tbl_opcode;
2485952b1ccSKishore Padmanabha 	uint32_t			tbl_operand;
2490117293cSKishore Padmanabha 
2500117293cSKishore Padmanabha 	/* FDB table opcode */
2510117293cSKishore Padmanabha 	enum bnxt_ulp_fdb_opc		fdb_opcode;
252a2417601SKishore Padmanabha 	uint32_t			fdb_operand;
253ae905028SMike Baucom };
254ae905028SMike Baucom 
255a2417601SKishore Padmanabha struct bnxt_ulp_mapper_field_info {
2562bbcdee8SKishore Padmanabha 	uint8_t				description[64];
257ae905028SMike Baucom 	uint16_t			field_bit_size;
258*6167c20cSKishore Padmanabha 	enum bnxt_ulp_field_opc		field_opc;
25959ae4961SKishore Padmanabha 	enum bnxt_ulp_field_cond_src	field_cond_src;
26059ae4961SKishore Padmanabha 	uint8_t				field_cond_opr[16];
26159ae4961SKishore Padmanabha 	enum bnxt_ulp_field_src		field_src1;
26259ae4961SKishore Padmanabha 	uint8_t				field_opr1[16];
26359ae4961SKishore Padmanabha 	enum bnxt_ulp_field_src		field_src2;
26459ae4961SKishore Padmanabha 	uint8_t				field_opr2[16];
26559ae4961SKishore Padmanabha 
266ae905028SMike Baucom };
267ae905028SMike Baucom 
268a2417601SKishore Padmanabha struct bnxt_ulp_mapper_key_info {
269a2417601SKishore Padmanabha 	struct bnxt_ulp_mapper_field_info	field_info_spec;
270a2417601SKishore Padmanabha 	struct bnxt_ulp_mapper_field_info	field_info_mask;
271696843ccSMike Baucom };
272696843ccSMike Baucom 
273ae905028SMike Baucom struct bnxt_ulp_mapper_ident_info {
2742bbcdee8SKishore Padmanabha 	uint8_t		description[64];
275ae905028SMike Baucom 	uint32_t	resource_func;
276ae905028SMike Baucom 
277ae905028SMike Baucom 	uint16_t	ident_type;
278ae905028SMike Baucom 	uint16_t	ident_bit_size;
279ae905028SMike Baucom 	uint16_t	ident_bit_pos;
280a2417601SKishore Padmanabha 	enum bnxt_ulp_rf_idx	regfile_idx;
281ae905028SMike Baucom };
282ae905028SMike Baucom 
283bfcaae8fSKishore Padmanabha struct bnxt_ulp_glb_resource_info {
284bfcaae8fSKishore Padmanabha 	enum bnxt_ulp_resource_func	resource_func;
285bfcaae8fSKishore Padmanabha 	uint32_t			resource_type; /* TF_ enum type */
286a2417601SKishore Padmanabha 	enum bnxt_ulp_glb_rf_idx	glb_regfile_index;
287072cb4a8SMike Baucom 	enum tf_dir			direction;
288072cb4a8SMike Baucom };
289072cb4a8SMike Baucom 
2904bc32a80SMike Baucom struct bnxt_ulp_cache_tbl_params {
2914bc32a80SMike Baucom 	uint16_t num_entries;
2924bc32a80SMike Baucom };
2934bc32a80SMike Baucom 
294f634204bSKishore Padmanabha struct bnxt_ulp_generic_tbl_params {
295f634204bSKishore Padmanabha 	uint16_t			result_num_entries;
296a2417601SKishore Padmanabha 	uint16_t			result_num_bytes;
297f634204bSKishore Padmanabha 	enum bnxt_ulp_byte_order	result_byte_order;
298f634204bSKishore Padmanabha };
299f634204bSKishore Padmanabha 
300a2417601SKishore Padmanabha struct bnxt_ulp_shared_act_info {
301a2417601SKishore Padmanabha 	uint64_t act_bitmask;
302a2417601SKishore Padmanabha };
303a2417601SKishore Padmanabha 
304313ac35aSVenkat Duvvuru /*
305ae905028SMike Baucom  * Flow Mapper Static Data Externs:
306ae905028SMike Baucom  * Access to the below static data should be done through access functions and
307ae905028SMike Baucom  * directly throughout the code.
308ae905028SMike Baucom  */
309ae905028SMike Baucom 
310ae905028SMike Baucom /*
311ae905028SMike Baucom  * The ulp_device_params is indexed by the dev_id.
312ae905028SMike Baucom  * This table maintains the device specific parameters.
313313ac35aSVenkat Duvvuru  */
314313ac35aSVenkat Duvvuru extern struct bnxt_ulp_device_params ulp_device_params[];
315313ac35aSVenkat Duvvuru 
316696843ccSMike Baucom /*
317ae905028SMike Baucom  * The ulp_act_prop_map_table provides the mapping to index and size of action
318696843ccSMike Baucom  * properties.
319696843ccSMike Baucom  */
320696843ccSMike Baucom extern uint32_t ulp_act_prop_map_table[];
321696843ccSMike Baucom 
322072cb4a8SMike Baucom /*
323bfcaae8fSKishore Padmanabha  * The ulp_glb_resource_tbl provides the list of global resources that need to
324072cb4a8SMike Baucom  * be initialized and where to store them.
325072cb4a8SMike Baucom  */
326bfcaae8fSKishore Padmanabha extern struct bnxt_ulp_glb_resource_info ulp_glb_resource_tbl[];
3274bc32a80SMike Baucom 
3284bc32a80SMike Baucom /*
3294bc32a80SMike Baucom  * The ulp_cache_tbl_parms table provides the sizes of the cache tables the
3304bc32a80SMike Baucom  * mapper must dynamically allocate during initialization.
3314bc32a80SMike Baucom  */
3324bc32a80SMike Baucom extern struct bnxt_ulp_cache_tbl_params ulp_cache_tbl_params[];
3334bc32a80SMike Baucom 
334d097b460SKishore Padmanabha /*
335f634204bSKishore Padmanabha  * The ulp_generic_tbl_parms table provides the sizes of the generic tables the
336f634204bSKishore Padmanabha  * mapper must dynamically allocate during initialization.
337f634204bSKishore Padmanabha  */
338f634204bSKishore Padmanabha extern struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[];
339f634204bSKishore Padmanabha /*
340d097b460SKishore Padmanabha  * The ulp_global template table is used to initialize default entries
341d097b460SKishore Padmanabha  * that could be reused by other templates.
342d097b460SKishore Padmanabha  */
343d097b460SKishore Padmanabha extern uint32_t ulp_glb_template_tbl[];
344d097b460SKishore Padmanabha 
345313ac35aSVenkat Duvvuru #endif /* _ULP_TEMPLATE_STRUCT_H_ */
346