net/bnxt: process resource lists before session open
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_tbl.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5
6 /* date: Wed Mar 17 11:31:19 2021 */
7
8 #include "ulp_template_db_enum.h"
9 #include "ulp_template_db_field.h"
10 #include "ulp_template_struct.h"
11 #include "ulp_template_db_tbl.h"
12
13 /* Specifies parameters for the cache and shared tables */
14 struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
15         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM << 1 |
16                 BNXT_ULP_DIRECTION_INGRESS] = {
17         .name                    = "INGRESS GENERIC_TABLE_L2_CNTXT_TCAM",
18         .result_num_entries      = 256,
19         .result_num_bytes        = 8,
20         .key_num_bytes           = 0,
21         .num_buckets             = 0,
22         .hash_tbl_entries        = 0,
23         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
24         },
25         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM << 1 |
26                 BNXT_ULP_DIRECTION_EGRESS] = {
27         .name                    = "EGRESS GENERIC_TABLE_L2_CNTXT_TCAM",
28         .result_num_entries      = 256,
29         .result_num_bytes        = 8,
30         .key_num_bytes           = 0,
31         .num_buckets             = 0,
32         .hash_tbl_entries        = 0,
33         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
34         },
35         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM << 1 |
36                 BNXT_ULP_DIRECTION_INGRESS] = {
37         .name                    = "INGRESS GENERIC_TABLE_PROFILE_TCAM",
38         .result_num_entries      = 16384,
39         .result_num_bytes        = 16,
40         .key_num_bytes           = 0,
41         .num_buckets             = 0,
42         .hash_tbl_entries        = 0,
43         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
44         },
45         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM << 1 |
46                 BNXT_ULP_DIRECTION_EGRESS] = {
47         .name                    = "EGRESS GENERIC_TABLE_PROFILE_TCAM",
48         .result_num_entries      = 16384,
49         .result_num_bytes        = 16,
50         .key_num_bytes           = 0,
51         .num_buckets             = 0,
52         .hash_tbl_entries        = 0,
53         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
54         },
55         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR << 1 |
56                 BNXT_ULP_DIRECTION_INGRESS] = {
57         .name                    = "INGRESS GENERIC_TABLE_SHARED_MIRROR",
58         .result_num_entries      = 16,
59         .result_num_bytes        = 8,
60         .key_num_bytes           = 0,
61         .num_buckets             = 0,
62         .hash_tbl_entries        = 0,
63         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
64         },
65         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR << 1 |
66                 BNXT_ULP_DIRECTION_EGRESS] = {
67         .name                    = "EGRESS GENERIC_TABLE_SHARED_MIRROR",
68         .result_num_entries      = 16,
69         .result_num_bytes        = 8,
70         .key_num_bytes           = 0,
71         .num_buckets             = 0,
72         .hash_tbl_entries        = 0,
73         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
74         },
75         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE << 1 |
76                 BNXT_ULP_DIRECTION_INGRESS] = {
77         .name                    = "INGRESS GENERIC_TABLE_MAC_ADDR_CACHE",
78         .result_num_entries      = 256,
79         .result_num_bytes        = 8,
80         .key_num_bytes           = 9,
81         .num_buckets             = 8,
82         .hash_tbl_entries        = 1024,
83         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
84         },
85         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE << 1 |
86                 BNXT_ULP_DIRECTION_EGRESS] = {
87         .name                    = "EGRESS GENERIC_TABLE_MAC_ADDR_CACHE",
88         .result_num_entries      = 256,
89         .result_num_bytes        = 8,
90         .key_num_bytes           = 9,
91         .num_buckets             = 8,
92         .hash_tbl_entries        = 1024,
93         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
94         },
95         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE << 1 |
96                 BNXT_ULP_DIRECTION_INGRESS] = {
97         .name                    = "INGRESS GENERIC_TABLE_PORT_TABLE",
98         .result_num_entries      = 1024,
99         .result_num_bytes        = 19,
100         .key_num_bytes           = 0,
101         .num_buckets             = 0,
102         .hash_tbl_entries        = 0,
103         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
104         },
105         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE << 1 |
106                 BNXT_ULP_DIRECTION_EGRESS] = {
107         .name                    = "EGRESS GENERIC_TABLE_PORT_TABLE",
108         .result_num_entries      = 1024,
109         .result_num_bytes        = 19,
110         .key_num_bytes           = 0,
111         .num_buckets             = 0,
112         .hash_tbl_entries        = 0,
113         .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
114         }
115 };
116
117 /* device tables */
118 const struct bnxt_ulp_template_device_tbls ulp_template_wh_plus_tbls[] = {
119         [BNXT_ULP_TEMPLATE_TYPE_CLASS] = {
120         .tmpl_list               = ulp_wh_plus_class_tmpl_list,
121         .tmpl_list_size          = ULP_WH_PLUS_CLASS_TMPL_LIST_SIZE,
122         .tbl_list                = ulp_wh_plus_class_tbl_list,
123         .tbl_list_size           = ULP_WH_PLUS_CLASS_TBL_LIST_SIZE,
124         .key_info_list           = ulp_wh_plus_class_key_info_list,
125         .key_info_list_size      = ULP_WH_PLUS_CLASS_KEY_INFO_LIST_SIZE,
126         .ident_list              = ulp_wh_plus_class_ident_list,
127         .ident_list_size         = ULP_WH_PLUS_CLASS_IDENT_LIST_SIZE,
128         .cond_list               = ulp_wh_plus_class_cond_list,
129         .cond_list_size          = ULP_WH_PLUS_CLASS_COND_LIST_SIZE,
130         .result_field_list       = ulp_wh_plus_class_result_field_list,
131         .result_field_list_size  = ULP_WH_PLUS_CLASS_RESULT_FIELD_LIST_SIZE
132         },
133         [BNXT_ULP_TEMPLATE_TYPE_ACTION] = {
134         .tmpl_list               = ulp_wh_plus_act_tmpl_list,
135         .tmpl_list_size          = ULP_WH_PLUS_ACT_TMPL_LIST_SIZE,
136         .tbl_list                = ulp_wh_plus_act_tbl_list,
137         .tbl_list_size           = ULP_WH_PLUS_ACT_TBL_LIST_SIZE,
138         .key_info_list           = ulp_wh_plus_act_key_info_list,
139         .key_info_list_size      = ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE,
140         .ident_list              = ulp_wh_plus_act_ident_list,
141         .ident_list_size         = ULP_WH_PLUS_ACT_IDENT_LIST_SIZE,
142         .cond_list               = ulp_wh_plus_act_cond_list,
143         .cond_list_size          = ULP_WH_PLUS_ACT_COND_LIST_SIZE,
144         .result_field_list       = ulp_wh_plus_act_result_field_list,
145         .result_field_list_size  = ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE
146         }
147 };
148
149 /* device tables */
150 const struct bnxt_ulp_template_device_tbls ulp_template_thor_tbls[] = {
151         [BNXT_ULP_TEMPLATE_TYPE_CLASS] = {
152         .tmpl_list               = ulp_thor_class_tmpl_list,
153         .tmpl_list_size          = ULP_THOR_CLASS_TMPL_LIST_SIZE,
154         .tbl_list                = ulp_thor_class_tbl_list,
155         .tbl_list_size           = ULP_THOR_CLASS_TBL_LIST_SIZE,
156         .key_info_list           = ulp_thor_class_key_info_list,
157         .key_info_list_size      = ULP_THOR_CLASS_KEY_INFO_LIST_SIZE,
158         .ident_list              = ulp_thor_class_ident_list,
159         .ident_list_size         = ULP_THOR_CLASS_IDENT_LIST_SIZE,
160         .cond_list               = ulp_thor_class_cond_list,
161         .cond_list_size          = ULP_THOR_CLASS_COND_LIST_SIZE,
162         .result_field_list       = ulp_thor_class_result_field_list,
163         .result_field_list_size  = ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE
164         },
165         [BNXT_ULP_TEMPLATE_TYPE_ACTION] = {
166         .tmpl_list               = ulp_thor_act_tmpl_list,
167         .tmpl_list_size          = ULP_THOR_ACT_TMPL_LIST_SIZE,
168         .tbl_list                = ulp_thor_act_tbl_list,
169         .tbl_list_size           = ULP_THOR_ACT_TBL_LIST_SIZE,
170         .result_field_list       = ulp_thor_act_result_field_list,
171         .result_field_list_size  = ULP_THOR_ACT_RESULT_FIELD_LIST_SIZE
172         }
173 };
174
175 /* List of device specific parameters */
176 struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
177         [BNXT_ULP_DEVICE_ID_WH_PLUS] = {
178         .description             = "Whitney_Plus",
179         .byte_order              = BNXT_ULP_BYTE_ORDER_LE,
180         .encap_byte_swap         = 1,
181         .int_flow_db_num_entries = 16384,
182         .ext_flow_db_num_entries = 32768,
183         .mark_db_lfid_entries    = 65536,
184         .mark_db_gfid_entries    = 65536,
185         .flow_count_db_entries   = 16384,
186         .fdb_parent_flow_entries = 2,
187         .num_resources_per_flow  = 8,
188         .num_phy_ports           = 2,
189         .ext_cntr_table_type     = 0,
190         .byte_count_mask         = 0x0000000fffffffff,
191         .packet_count_mask       = 0xffffffff00000000,
192         .byte_count_shift        = 0,
193         .packet_count_shift      = 36,
194         .dynamic_pad_en          = 0,
195         .dev_tbls                = ulp_template_wh_plus_tbls
196         },
197         [BNXT_ULP_DEVICE_ID_THOR] = {
198         .description             = "Thor",
199         .byte_order              = BNXT_ULP_BYTE_ORDER_LE,
200         .encap_byte_swap         = 1,
201         .int_flow_db_num_entries = 16384,
202         .ext_flow_db_num_entries = 32768,
203         .mark_db_lfid_entries    = 0,
204         .mark_db_gfid_entries    = 0,
205         .flow_count_db_entries   = 0,
206         .fdb_parent_flow_entries = 2,
207         .num_resources_per_flow  = 8,
208         .num_phy_ports           = 2,
209         .ext_cntr_table_type     = 0,
210         .byte_count_mask         = 0x0000000fffffffff,
211         .packet_count_mask       = 0xffffffff00000000,
212         .byte_count_shift        = 0,
213         .packet_count_shift      = 36,
214         .dynamic_pad_en          = 1,
215         .em_blk_size_bits        = 100,
216         .em_blk_align_bits       = 128,
217         .em_key_align_bytes      = 80,
218         .wc_slice_width          = 160,
219         .wc_max_slices           = 4,
220         .wc_mode_list        = {0x0000000c, 0x0000000e, 0x0000000f, 0x0000000f},
221         .wc_mod_list_max_size    = 4,
222         .wc_ctl_size_bits        = 32,
223         .dev_tbls                = ulp_template_thor_tbls
224         }
225 };
226
227 /* Provides act_bitmask */
228 struct bnxt_ulp_shared_act_info ulp_shared_act_info[] = {
229         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR << 1 |
230                 BNXT_ULP_DIRECTION_INGRESS] = {
231         .act_bitmask             = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
232         },
233         [BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR << 1 |
234                 BNXT_ULP_DIRECTION_EGRESS] = {
235         .act_bitmask             = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
236         }
237 };
238
239 /* List of device specific parameters */
240 struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
241         {
242         .app_id                  = 0,
243         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
244         .flags                   = 0
245         },
246         {
247         .app_id                  = 0,
248         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
249         .flags                   = 0
250         },
251         {
252         .app_id                  = 1,
253         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
254         .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
255         },
256         {
257         .app_id                  = 1,
258         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
259         .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
260         },
261         {
262         .app_id                  = 2,
263         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
264         .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
265         },
266         {
267         .app_id                  = 2,
268         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
269         .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
270         }
271 };
272
273 /* List of unnamed app tf resources required to be reserved per app/device */
274 struct bnxt_ulp_resource_resv_info ulp_app_resource_resv_list[] = {
275         {
276         .app_id                  = 1,
277         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
278         .direction               = TF_DIR_RX,
279         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
280         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
281         .count                   = 256
282         },
283         {
284         .app_id                  = 1,
285         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
286         .direction               = TF_DIR_RX,
287         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
288         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
289         .count                   = 256
290         },
291         {
292         .app_id                  = 2,
293         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
294         .direction               = TF_DIR_RX,
295         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
296         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
297         .count                   = 256
298         },
299         {
300         .app_id                  = 2,
301         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
302         .direction               = TF_DIR_RX,
303         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
304         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
305         .count                   = 256
306         }
307 };
308
309 /* List of device specific parameters */
310 struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[]  = {
311         {
312         .app_id                  = 1,
313         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
314         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
315         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
316         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0,
317         .direction               = TF_DIR_RX
318         },
319         {
320         .app_id                  = 1,
321         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
322         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
323         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
324         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0,
325         .direction               = TF_DIR_RX
326         },
327         {
328         .app_id                  = 1,
329         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
330         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
331         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
332         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1,
333         .direction               = TF_DIR_RX
334         },
335         {
336         .app_id                  = 1,
337         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
338         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
339         .resource_type           = TF_IDENT_TYPE_EM_PROF,
340         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
341         .direction               = TF_DIR_RX
342         },
343         {
344         .app_id                  = 1,
345         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
346         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
347         .resource_type           = TF_IDENT_TYPE_WC_PROF,
348         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
349         .direction               = TF_DIR_RX
350         },
351         {
352         .app_id                  = 1,
353         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
354         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
355         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
356         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0,
357         .direction               = TF_DIR_RX
358         },
359         {
360         .app_id                  = 1,
361         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
362         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
363         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
364         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0,
365         .direction               = TF_DIR_RX
366         },
367         {
368         .app_id                  = 1,
369         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
370         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
371         .resource_type           = TF_IDENT_TYPE_EM_PROF,
372         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
373         .direction               = TF_DIR_RX
374         },
375         {
376         .app_id                  = 1,
377         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
378         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
379         .resource_type           = TF_IDENT_TYPE_WC_PROF,
380         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
381         .direction               = TF_DIR_RX
382         },
383         {
384         .app_id                  = 1,
385         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
386         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
387         .resource_type           = TF_TBL_TYPE_EM_FKB,
388         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0,
389         .direction               = TF_DIR_RX
390         },
391         {
392         .app_id                  = 1,
393         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
394         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
395         .resource_type           = TF_TBL_TYPE_WC_FKB,
396         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
397         .direction               = TF_DIR_RX
398         },
399         {
400         .app_id                  = 1,
401         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
402         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
403         .resource_type           = TF_TBL_TYPE_WC_FKB,
404         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
405         .direction               = TF_DIR_TX
406         },
407         {
408         .app_id                  = 1,
409         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
410         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
411         .resource_type           = TF_IDENT_TYPE_EM_PROF,
412         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
413         .direction               = TF_DIR_TX
414         },
415         {
416         .app_id                  = 1,
417         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
418         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
419         .resource_type           = TF_IDENT_TYPE_WC_PROF,
420         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
421         .direction               = TF_DIR_TX
422         },
423         {
424         .app_id                  = 2,
425         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
426         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
427         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
428         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0,
429         .direction               = TF_DIR_RX
430         },
431         {
432         .app_id                  = 2,
433         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
434         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
435         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
436         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0,
437         .direction               = TF_DIR_RX
438         },
439         {
440         .app_id                  = 2,
441         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
442         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
443         .resource_type           = TF_IDENT_TYPE_EM_PROF,
444         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
445         .direction               = TF_DIR_RX
446         },
447         {
448         .app_id                  = 2,
449         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
450         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
451         .resource_type           = TF_IDENT_TYPE_WC_PROF,
452         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
453         .direction               = TF_DIR_RX
454         },
455         {
456         .app_id                  = 2,
457         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
458         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
459         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
460         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0,
461         .direction               = TF_DIR_RX
462         },
463         {
464         .app_id                  = 2,
465         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
466         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
467         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
468         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0,
469         .direction               = TF_DIR_RX
470         },
471         {
472         .app_id                  = 2,
473         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
474         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
475         .resource_type           = TF_IDENT_TYPE_EM_PROF,
476         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
477         .direction               = TF_DIR_RX
478         },
479         {
480         .app_id                  = 2,
481         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
482         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
483         .resource_type           = TF_IDENT_TYPE_WC_PROF,
484         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
485         .direction               = TF_DIR_RX
486         },
487         {
488         .app_id                  = 2,
489         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
490         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
491         .resource_type           = TF_TBL_TYPE_EM_FKB,
492         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0,
493         .direction               = TF_DIR_RX
494         },
495         {
496         .app_id                  = 2,
497         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
498         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
499         .resource_type           = TF_TBL_TYPE_WC_FKB,
500         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
501         .direction               = TF_DIR_RX
502         },
503         {
504         .app_id                  = 2,
505         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
506         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
507         .resource_type           = TF_TBL_TYPE_WC_FKB,
508         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
509         .direction               = TF_DIR_TX
510         },
511         {
512         .app_id                  = 2,
513         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
514         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
515         .resource_type           = TF_IDENT_TYPE_EM_PROF,
516         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0,
517         .direction               = TF_DIR_TX
518         },
519         {
520         .app_id                  = 2,
521         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
522         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
523         .resource_type           = TF_IDENT_TYPE_WC_PROF,
524         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0,
525         .direction               = TF_DIR_TX
526         }
527 };
528
529 /* List of device specific parameters */
530 struct bnxt_ulp_glb_resource_info ulp_glb_resource_tbl[] = {
531         {
532         .app_id                  = 0,
533         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
534         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
535         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
536         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
537         .direction               = TF_DIR_RX
538         },
539         {
540         .app_id                  = 0,
541         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
542         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
543         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
544         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
545         .direction               = TF_DIR_TX
546         },
547         {
548         .app_id                  = 0,
549         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
550         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
551         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
552         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
553         .direction               = TF_DIR_TX
554         },
555         {
556         .app_id                  = 0,
557         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
558         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
559         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
560         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
561         .direction               = TF_DIR_RX
562         },
563         {
564         .app_id                  = 0,
565         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
566         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
567         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
568         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
569         .direction               = TF_DIR_TX
570         },
571         {
572         .app_id                  = 0,
573         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
574         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
575         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
576         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_VXLAN_PROF_FUNC_ID,
577         .direction               = TF_DIR_RX
578         },
579         {
580         .app_id                  = 0,
581         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
582         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
583         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
584         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
585         .direction               = TF_DIR_RX
586         },
587         {
588         .app_id                  = 0,
589         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
590         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
591         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
592         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
593         .direction               = TF_DIR_TX
594         },
595         {
596         .app_id                  = 0,
597         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
598         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
599         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
600         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
601         .direction               = TF_DIR_RX
602         },
603         {
604         .app_id                  = 0,
605         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
606         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
607         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
608         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
609         .direction               = TF_DIR_TX
610         },
611         {
612         .app_id                  = 0,
613         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
614         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
615         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
616         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
617         .direction               = TF_DIR_TX
618         },
619         {
620         .app_id                  = 1,
621         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
622         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
623         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
624         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
625         .direction               = TF_DIR_RX
626         },
627         {
628         .app_id                  = 1,
629         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
630         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
631         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
632         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
633         .direction               = TF_DIR_TX
634         },
635         {
636         .app_id                  = 1,
637         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
638         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
639         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
640         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
641         .direction               = TF_DIR_TX
642         },
643         {
644         .app_id                  = 1,
645         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
646         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
647         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
648         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
649         .direction               = TF_DIR_RX
650         },
651         {
652         .app_id                  = 1,
653         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
654         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
655         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
656         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
657         .direction               = TF_DIR_TX
658         },
659         {
660         .app_id                  = 1,
661         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
662         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
663         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
664         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_VXLAN_PROF_FUNC_ID,
665         .direction               = TF_DIR_RX
666         },
667         {
668         .app_id                  = 1,
669         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
670         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
671         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
672         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
673         .direction               = TF_DIR_RX
674         },
675         {
676         .app_id                  = 1,
677         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
678         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
679         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
680         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
681         .direction               = TF_DIR_TX
682         },
683         {
684         .app_id                  = 1,
685         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
686         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
687         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
688         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
689         .direction               = TF_DIR_RX
690         },
691         {
692         .app_id                  = 1,
693         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
694         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
695         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
696         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
697         .direction               = TF_DIR_TX
698         },
699         {
700         .app_id                  = 1,
701         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
702         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
703         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
704         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
705         .direction               = TF_DIR_TX
706         },
707         {
708         .app_id                  = 2,
709         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
710         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
711         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
712         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
713         .direction               = TF_DIR_RX
714         },
715         {
716         .app_id                  = 2,
717         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
718         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
719         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
720         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
721         .direction               = TF_DIR_TX
722         },
723         {
724         .app_id                  = 2,
725         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
726         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
727         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
728         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
729         .direction               = TF_DIR_TX
730         },
731         {
732         .app_id                  = 2,
733         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
734         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
735         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
736         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
737         .direction               = TF_DIR_RX
738         },
739         {
740         .app_id                  = 2,
741         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
742         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
743         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
744         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID,
745         .direction               = TF_DIR_TX
746         },
747         {
748         .app_id                  = 2,
749         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
750         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
751         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
752         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_VXLAN_PROF_FUNC_ID,
753         .direction               = TF_DIR_RX
754         },
755         {
756         .app_id                  = 2,
757         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
758         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
759         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
760         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
761         .direction               = TF_DIR_RX
762         },
763         {
764         .app_id                  = 2,
765         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
766         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
767         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
768         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
769         .direction               = TF_DIR_TX
770         },
771         {
772         .app_id                  = 2,
773         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
774         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
775         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
776         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
777         .direction               = TF_DIR_RX
778         },
779         {
780         .app_id                  = 2,
781         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
782         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
783         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
784         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID,
785         .direction               = TF_DIR_TX
786         },
787         {
788         .app_id                  = 2,
789         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
790         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
791         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
792         .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
793         .direction               = TF_DIR_TX
794         }
795 };
796
797 /* List of tf resources required to be reserved per app/device */
798 struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
799         {
800         .app_id                  = 0,
801         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
802         .direction               = TF_DIR_RX,
803         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
804         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
805         .count                   = 422
806         },
807         {
808         .app_id                  = 0,
809         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
810         .direction               = TF_DIR_RX,
811         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
812         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
813         .count                   = 6
814         },
815         {
816         .app_id                  = 0,
817         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
818         .direction               = TF_DIR_RX,
819         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
820         .resource_type           = TF_IDENT_TYPE_WC_PROF,
821         .count                   = 192
822         },
823         {
824         .app_id                  = 0,
825         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
826         .direction               = TF_DIR_RX,
827         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
828         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
829         .count                   = 64
830         },
831         {
832         .app_id                  = 0,
833         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
834         .direction               = TF_DIR_RX,
835         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
836         .resource_type           = TF_IDENT_TYPE_EM_PROF,
837         .count                   = 192
838         },
839         {
840         .app_id                  = 0,
841         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
842         .direction               = TF_DIR_RX,
843         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
844         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
845         .count                   = 8192
846         },
847         {
848         .app_id                  = 0,
849         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
850         .direction               = TF_DIR_RX,
851         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
852         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
853         .count                   = 8192
854         },
855         {
856         .app_id                  = 0,
857         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
858         .direction               = TF_DIR_RX,
859         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
860         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
861         .count                   = 1023
862         },
863         {
864         .app_id                  = 0,
865         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
866         .direction               = TF_DIR_RX,
867         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
868         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
869         .count                   = 511
870         },
871         {
872         .app_id                  = 0,
873         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
874         .direction               = TF_DIR_RX,
875         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
876         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
877         .count                   = 63
878         },
879         {
880         .app_id                  = 0,
881         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
882         .direction               = TF_DIR_RX,
883         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
884         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC,
885         .count                   = 255
886         },
887         {
888         .app_id                  = 0,
889         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
890         .direction               = TF_DIR_RX,
891         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
892         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
893         .count                   = 1
894         },
895         {
896         .app_id                  = 0,
897         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
898         .direction               = TF_DIR_RX,
899         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
900         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
901         .count                   = 422
902         },
903         {
904         .app_id                  = 0,
905         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
906         .direction               = TF_DIR_RX,
907         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
908         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
909         .count                   = 6
910         },
911         {
912         .app_id                  = 0,
913         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
914         .direction               = TF_DIR_RX,
915         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
916         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
917         .count                   = 960
918         },
919         {
920         .app_id                  = 0,
921         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
922         .direction               = TF_DIR_RX,
923         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
924         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
925         .count                   = 88
926         },
927         {
928         .app_id                  = 0,
929         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
930         .direction               = TF_DIR_RX,
931         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
932         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
933         .count                   = 13168
934         },
935         {
936         .app_id                  = 0,
937         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
938         .direction               = TF_DIR_RX,
939         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
940         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
941         .count                   = 1
942         },
943         {
944         .app_id                  = 0,
945         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
946         .direction               = TF_DIR_TX,
947         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
948         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
949         .count                   = 292
950         },
951         {
952         .app_id                  = 0,
953         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
954         .direction               = TF_DIR_TX,
955         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
956         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
957         .count                   = 148
958         },
959         {
960         .app_id                  = 0,
961         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
962         .direction               = TF_DIR_TX,
963         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
964         .resource_type           = TF_IDENT_TYPE_WC_PROF,
965         .count                   = 192
966         },
967         {
968         .app_id                  = 0,
969         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
970         .direction               = TF_DIR_TX,
971         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
972         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
973         .count                   = 64
974         },
975         {
976         .app_id                  = 0,
977         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
978         .direction               = TF_DIR_TX,
979         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
980         .resource_type           = TF_IDENT_TYPE_EM_PROF,
981         .count                   = 192
982         },
983         {
984         .app_id                  = 0,
985         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
986         .direction               = TF_DIR_TX,
987         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
988         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
989         .count                   = 8192
990         },
991         {
992         .app_id                  = 0,
993         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
994         .direction               = TF_DIR_TX,
995         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
996         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
997         .count                   = 8192
998         },
999         {
1000         .app_id                  = 0,
1001         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1002         .direction               = TF_DIR_TX,
1003         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1004         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
1005         .count                   = 1023
1006         },
1007         {
1008         .app_id                  = 0,
1009         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1010         .direction               = TF_DIR_TX,
1011         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1012         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1013         .count                   = 511
1014         },
1015         {
1016         .app_id                  = 0,
1017         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1018         .direction               = TF_DIR_TX,
1019         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1020         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
1021         .count                   = 223
1022         },
1023         {
1024         .app_id                  = 0,
1025         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1026         .direction               = TF_DIR_TX,
1027         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1028         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
1029         .count                   = 255
1030         },
1031         {
1032         .app_id                  = 0,
1033         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1034         .direction               = TF_DIR_TX,
1035         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1036         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1037         .count                   = 488
1038         },
1039         {
1040         .app_id                  = 0,
1041         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1042         .direction               = TF_DIR_TX,
1043         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1044         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
1045         .count                   = 511
1046         },
1047         {
1048         .app_id                  = 0,
1049         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1050         .direction               = TF_DIR_TX,
1051         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1052         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1053         .count                   = 1
1054         },
1055         {
1056         .app_id                  = 0,
1057         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1058         .direction               = TF_DIR_TX,
1059         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1060         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1061         .count                   = 292
1062         },
1063         {
1064         .app_id                  = 0,
1065         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1066         .direction               = TF_DIR_TX,
1067         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1068         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1069         .count                   = 144
1070         },
1071         {
1072         .app_id                  = 0,
1073         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1074         .direction               = TF_DIR_TX,
1075         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1076         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1077         .count                   = 960
1078         },
1079         {
1080         .app_id                  = 0,
1081         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1082         .direction               = TF_DIR_TX,
1083         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1084         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1085         .count                   = 928
1086         },
1087         {
1088         .app_id                  = 0,
1089         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1090         .direction               = TF_DIR_TX,
1091         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1092         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1093         .count                   = 15232
1094         },
1095         {
1096         .app_id                  = 0,
1097         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1098         .direction               = TF_DIR_TX,
1099         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1100         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
1101         .count                   = 1
1102         },
1103         {
1104         .app_id                  = 0,
1105         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1106         .direction               = TF_DIR_RX,
1107         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1108         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1109         .count                   = 26
1110         },
1111         {
1112         .app_id                  = 0,
1113         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1114         .direction               = TF_DIR_RX,
1115         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1116         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1117         .count                   = 6
1118         },
1119         {
1120         .app_id                  = 0,
1121         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1122         .direction               = TF_DIR_RX,
1123         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1124         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1125         .count                   = 32
1126         },
1127         {
1128         .app_id                  = 0,
1129         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1130         .direction               = TF_DIR_RX,
1131         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1132         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1133         .count                   = 32
1134         },
1135         {
1136         .app_id                  = 0,
1137         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1138         .direction               = TF_DIR_RX,
1139         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1140         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1141         .count                   = 32
1142         },
1143         {
1144         .app_id                  = 0,
1145         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1146         .direction               = TF_DIR_RX,
1147         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1148         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1149         .count                   = 1024
1150         },
1151         {
1152         .app_id                  = 0,
1153         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1154         .direction               = TF_DIR_RX,
1155         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1156         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1157         .count                   = 512
1158         },
1159         {
1160         .app_id                  = 0,
1161         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1162         .direction               = TF_DIR_RX,
1163         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1164         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1165         .count                   = 14
1166         },
1167         {
1168         .app_id                  = 0,
1169         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1170         .direction               = TF_DIR_RX,
1171         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1172         .resource_type           = TF_TBL_TYPE_EM_FKB,
1173         .count                   = 32
1174         },
1175         {
1176         .app_id                  = 0,
1177         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1178         .direction               = TF_DIR_RX,
1179         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1180         .resource_type           = TF_TBL_TYPE_WC_FKB,
1181         .count                   = 32
1182         },
1183         {
1184         .app_id                  = 0,
1185         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1186         .direction               = TF_DIR_RX,
1187         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1188         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1189         .count                   = 64
1190         },
1191         {
1192         .app_id                  = 0,
1193         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1194         .direction               = TF_DIR_RX,
1195         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1196         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1197         .count                   = 64
1198         },
1199         {
1200         .app_id                  = 0,
1201         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1202         .direction               = TF_DIR_RX,
1203         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1204         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1205         .count                   = 300
1206         },
1207         {
1208         .app_id                  = 0,
1209         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1210         .direction               = TF_DIR_RX,
1211         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1212         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1213         .count                   = 6
1214         },
1215         {
1216         .app_id                  = 0,
1217         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1218         .direction               = TF_DIR_RX,
1219         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1220         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1221         .count                   = 128
1222         },
1223         {
1224         .app_id                  = 0,
1225         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1226         .direction               = TF_DIR_RX,
1227         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1228         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1229         .count                   = 112
1230         },
1231         {
1232         .app_id                  = 0,
1233         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1234         .direction               = TF_DIR_RX,
1235         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1236         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1237         .count                   = 13200
1238         },
1239         {
1240         .app_id                  = 0,
1241         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1242         .direction               = TF_DIR_TX,
1243         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1244         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1245         .count                   = 26
1246         },
1247         {
1248         .app_id                  = 0,
1249         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1250         .direction               = TF_DIR_TX,
1251         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1252         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1253         .count                   = 26
1254         },
1255         {
1256         .app_id                  = 0,
1257         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1258         .direction               = TF_DIR_TX,
1259         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1260         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1261         .count                   = 32
1262         },
1263         {
1264         .app_id                  = 0,
1265         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1266         .direction               = TF_DIR_TX,
1267         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1268         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1269         .count                   = 63
1270         },
1271         {
1272         .app_id                  = 0,
1273         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1274         .direction               = TF_DIR_TX,
1275         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1276         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1277         .count                   = 32
1278         },
1279         {
1280         .app_id                  = 0,
1281         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1282         .direction               = TF_DIR_TX,
1283         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1284         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1285         .count                   = 1024
1286         },
1287         {
1288         .app_id                  = 0,
1289         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1290         .direction               = TF_DIR_TX,
1291         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1292         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1293         .count                   = 512
1294         },
1295         {
1296         .app_id                  = 0,
1297         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1298         .direction               = TF_DIR_TX,
1299         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1300         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1301         .count                   = 14
1302         },
1303         {
1304         .app_id                  = 0,
1305         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1306         .direction               = TF_DIR_TX,
1307         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1308         .resource_type           = TF_TBL_TYPE_EM_FKB,
1309         .count                   = 32
1310         },
1311         {
1312         .app_id                  = 0,
1313         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1314         .direction               = TF_DIR_TX,
1315         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1316         .resource_type           = TF_TBL_TYPE_WC_FKB,
1317         .count                   = 32
1318         },
1319         {
1320         .app_id                  = 0,
1321         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1322         .direction               = TF_DIR_TX,
1323         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1324         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1325         .count                   = 64
1326         },
1327         {
1328         .app_id                  = 0,
1329         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1330         .direction               = TF_DIR_TX,
1331         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1332         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1333         .count                   = 100
1334         },
1335         {
1336         .app_id                  = 0,
1337         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1338         .direction               = TF_DIR_TX,
1339         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1340         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1341         .count                   = 1
1342         },
1343         {
1344         .app_id                  = 0,
1345         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1346         .direction               = TF_DIR_TX,
1347         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1348         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1349         .count                   = 200
1350         },
1351         {
1352         .app_id                  = 0,
1353         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1354         .direction               = TF_DIR_TX,
1355         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1356         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1357         .count                   = 110
1358         },
1359         {
1360         .app_id                  = 0,
1361         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1362         .direction               = TF_DIR_TX,
1363         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1364         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1365         .count                   = 128
1366         },
1367         {
1368         .app_id                  = 0,
1369         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1370         .direction               = TF_DIR_TX,
1371         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1372         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1373         .count                   = 128
1374         },
1375         {
1376         .app_id                  = 0,
1377         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1378         .direction               = TF_DIR_TX,
1379         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1380         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1381         .count                   = 15232
1382         },
1383         {
1384         .app_id                  = 1,
1385         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1386         .direction               = TF_DIR_RX,
1387         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1388         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1389         .count                   = 422
1390         },
1391         {
1392         .app_id                  = 1,
1393         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1394         .direction               = TF_DIR_RX,
1395         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1396         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1397         .count                   = 6
1398         },
1399         {
1400         .app_id                  = 1,
1401         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1402         .direction               = TF_DIR_RX,
1403         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1404         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1405         .count                   = 192
1406         },
1407         {
1408         .app_id                  = 1,
1409         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1410         .direction               = TF_DIR_RX,
1411         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1412         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1413         .count                   = 64
1414         },
1415         {
1416         .app_id                  = 1,
1417         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1418         .direction               = TF_DIR_RX,
1419         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1420         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1421         .count                   = 192
1422         },
1423         {
1424         .app_id                  = 1,
1425         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1426         .direction               = TF_DIR_RX,
1427         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1428         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1429         .count                   = 8192
1430         },
1431         {
1432         .app_id                  = 1,
1433         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1434         .direction               = TF_DIR_RX,
1435         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1436         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1437         .count                   = 8192
1438         },
1439         {
1440         .app_id                  = 1,
1441         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1442         .direction               = TF_DIR_RX,
1443         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1444         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
1445         .count                   = 1023
1446         },
1447         {
1448         .app_id                  = 1,
1449         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1450         .direction               = TF_DIR_RX,
1451         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1452         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
1453         .count                   = 511
1454         },
1455         {
1456         .app_id                  = 1,
1457         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1458         .direction               = TF_DIR_RX,
1459         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1460         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
1461         .count                   = 63
1462         },
1463         {
1464         .app_id                  = 1,
1465         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1466         .direction               = TF_DIR_RX,
1467         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1468         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC,
1469         .count                   = 255
1470         },
1471         {
1472         .app_id                  = 1,
1473         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1474         .direction               = TF_DIR_RX,
1475         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1476         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1477         .count                   = 1
1478         },
1479         {
1480         .app_id                  = 1,
1481         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1482         .direction               = TF_DIR_RX,
1483         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1484         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1485         .count                   = 422
1486         },
1487         {
1488         .app_id                  = 1,
1489         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1490         .direction               = TF_DIR_RX,
1491         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1492         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1493         .count                   = 6
1494         },
1495         {
1496         .app_id                  = 1,
1497         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1498         .direction               = TF_DIR_RX,
1499         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1500         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1501         .count                   = 960
1502         },
1503         {
1504         .app_id                  = 1,
1505         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1506         .direction               = TF_DIR_RX,
1507         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1508         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1509         .count                   = 88
1510         },
1511         {
1512         .app_id                  = 1,
1513         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1514         .direction               = TF_DIR_RX,
1515         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1516         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1517         .count                   = 13168
1518         },
1519         {
1520         .app_id                  = 1,
1521         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1522         .direction               = TF_DIR_RX,
1523         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1524         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
1525         .count                   = 1
1526         },
1527         {
1528         .app_id                  = 1,
1529         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1530         .direction               = TF_DIR_TX,
1531         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1532         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1533         .count                   = 292
1534         },
1535         {
1536         .app_id                  = 1,
1537         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1538         .direction               = TF_DIR_TX,
1539         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1540         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1541         .count                   = 148
1542         },
1543         {
1544         .app_id                  = 1,
1545         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1546         .direction               = TF_DIR_TX,
1547         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1548         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1549         .count                   = 192
1550         },
1551         {
1552         .app_id                  = 1,
1553         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1554         .direction               = TF_DIR_TX,
1555         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1556         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1557         .count                   = 64
1558         },
1559         {
1560         .app_id                  = 1,
1561         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1562         .direction               = TF_DIR_TX,
1563         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1564         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1565         .count                   = 192
1566         },
1567         {
1568         .app_id                  = 1,
1569         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1570         .direction               = TF_DIR_TX,
1571         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1572         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1573         .count                   = 8192
1574         },
1575         {
1576         .app_id                  = 1,
1577         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1578         .direction               = TF_DIR_TX,
1579         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1580         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1581         .count                   = 8192
1582         },
1583         {
1584         .app_id                  = 1,
1585         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1586         .direction               = TF_DIR_TX,
1587         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1588         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
1589         .count                   = 1023
1590         },
1591         {
1592         .app_id                  = 1,
1593         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1594         .direction               = TF_DIR_TX,
1595         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1596         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1597         .count                   = 511
1598         },
1599         {
1600         .app_id                  = 1,
1601         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1602         .direction               = TF_DIR_TX,
1603         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1604         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
1605         .count                   = 223
1606         },
1607         {
1608         .app_id                  = 1,
1609         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1610         .direction               = TF_DIR_TX,
1611         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1612         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
1613         .count                   = 255
1614         },
1615         {
1616         .app_id                  = 1,
1617         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1618         .direction               = TF_DIR_TX,
1619         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1620         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1621         .count                   = 488
1622         },
1623         {
1624         .app_id                  = 1,
1625         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1626         .direction               = TF_DIR_TX,
1627         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1628         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
1629         .count                   = 511
1630         },
1631         {
1632         .app_id                  = 1,
1633         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1634         .direction               = TF_DIR_TX,
1635         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1636         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1637         .count                   = 1
1638         },
1639         {
1640         .app_id                  = 1,
1641         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1642         .direction               = TF_DIR_TX,
1643         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1644         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1645         .count                   = 292
1646         },
1647         {
1648         .app_id                  = 1,
1649         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1650         .direction               = TF_DIR_TX,
1651         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1652         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1653         .count                   = 144
1654         },
1655         {
1656         .app_id                  = 1,
1657         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1658         .direction               = TF_DIR_TX,
1659         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1660         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1661         .count                   = 960
1662         },
1663         {
1664         .app_id                  = 1,
1665         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1666         .direction               = TF_DIR_TX,
1667         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1668         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1669         .count                   = 928
1670         },
1671         {
1672         .app_id                  = 1,
1673         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1674         .direction               = TF_DIR_TX,
1675         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1676         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1677         .count                   = 15232
1678         },
1679         {
1680         .app_id                  = 1,
1681         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1682         .direction               = TF_DIR_TX,
1683         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1684         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
1685         .count                   = 1
1686         },
1687         {
1688         .app_id                  = 1,
1689         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1690         .direction               = TF_DIR_RX,
1691         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1692         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1693         .count                   = 26
1694         },
1695         {
1696         .app_id                  = 1,
1697         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1698         .direction               = TF_DIR_RX,
1699         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1700         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1701         .count                   = 6
1702         },
1703         {
1704         .app_id                  = 1,
1705         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1706         .direction               = TF_DIR_RX,
1707         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1708         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1709         .count                   = 32
1710         },
1711         {
1712         .app_id                  = 1,
1713         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1714         .direction               = TF_DIR_RX,
1715         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1716         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1717         .count                   = 32
1718         },
1719         {
1720         .app_id                  = 1,
1721         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1722         .direction               = TF_DIR_RX,
1723         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1724         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1725         .count                   = 32
1726         },
1727         {
1728         .app_id                  = 1,
1729         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1730         .direction               = TF_DIR_RX,
1731         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1732         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1733         .count                   = 1024
1734         },
1735         {
1736         .app_id                  = 1,
1737         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1738         .direction               = TF_DIR_RX,
1739         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1740         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1741         .count                   = 512
1742         },
1743         {
1744         .app_id                  = 1,
1745         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1746         .direction               = TF_DIR_RX,
1747         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1748         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1749         .count                   = 14
1750         },
1751         {
1752         .app_id                  = 1,
1753         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1754         .direction               = TF_DIR_RX,
1755         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1756         .resource_type           = TF_TBL_TYPE_EM_FKB,
1757         .count                   = 32
1758         },
1759         {
1760         .app_id                  = 1,
1761         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1762         .direction               = TF_DIR_RX,
1763         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1764         .resource_type           = TF_TBL_TYPE_WC_FKB,
1765         .count                   = 32
1766         },
1767         {
1768         .app_id                  = 1,
1769         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1770         .direction               = TF_DIR_RX,
1771         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1772         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1773         .count                   = 64
1774         },
1775         {
1776         .app_id                  = 1,
1777         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1778         .direction               = TF_DIR_RX,
1779         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1780         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1781         .count                   = 64
1782         },
1783         {
1784         .app_id                  = 1,
1785         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1786         .direction               = TF_DIR_RX,
1787         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1788         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1789         .count                   = 300
1790         },
1791         {
1792         .app_id                  = 1,
1793         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1794         .direction               = TF_DIR_RX,
1795         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1796         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1797         .count                   = 6
1798         },
1799         {
1800         .app_id                  = 1,
1801         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1802         .direction               = TF_DIR_RX,
1803         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1804         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1805         .count                   = 128
1806         },
1807         {
1808         .app_id                  = 1,
1809         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1810         .direction               = TF_DIR_RX,
1811         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1812         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1813         .count                   = 112
1814         },
1815         {
1816         .app_id                  = 1,
1817         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1818         .direction               = TF_DIR_RX,
1819         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1820         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1821         .count                   = 13200
1822         },
1823         {
1824         .app_id                  = 1,
1825         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1826         .direction               = TF_DIR_TX,
1827         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1828         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1829         .count                   = 26
1830         },
1831         {
1832         .app_id                  = 1,
1833         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1834         .direction               = TF_DIR_TX,
1835         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1836         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1837         .count                   = 26
1838         },
1839         {
1840         .app_id                  = 1,
1841         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1842         .direction               = TF_DIR_TX,
1843         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1844         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1845         .count                   = 32
1846         },
1847         {
1848         .app_id                  = 1,
1849         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1850         .direction               = TF_DIR_TX,
1851         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1852         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1853         .count                   = 63
1854         },
1855         {
1856         .app_id                  = 1,
1857         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1858         .direction               = TF_DIR_TX,
1859         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1860         .resource_type           = TF_IDENT_TYPE_EM_PROF,
1861         .count                   = 32
1862         },
1863         {
1864         .app_id                  = 1,
1865         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1866         .direction               = TF_DIR_TX,
1867         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1868         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
1869         .count                   = 1024
1870         },
1871         {
1872         .app_id                  = 1,
1873         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1874         .direction               = TF_DIR_TX,
1875         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1876         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
1877         .count                   = 512
1878         },
1879         {
1880         .app_id                  = 1,
1881         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1882         .direction               = TF_DIR_TX,
1883         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1884         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1885         .count                   = 14
1886         },
1887         {
1888         .app_id                  = 1,
1889         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1890         .direction               = TF_DIR_TX,
1891         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1892         .resource_type           = TF_TBL_TYPE_EM_FKB,
1893         .count                   = 32
1894         },
1895         {
1896         .app_id                  = 1,
1897         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1898         .direction               = TF_DIR_TX,
1899         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1900         .resource_type           = TF_TBL_TYPE_WC_FKB,
1901         .count                   = 32
1902         },
1903         {
1904         .app_id                  = 1,
1905         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1906         .direction               = TF_DIR_TX,
1907         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1908         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
1909         .count                   = 64
1910         },
1911         {
1912         .app_id                  = 1,
1913         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1914         .direction               = TF_DIR_TX,
1915         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1916         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
1917         .count                   = 100
1918         },
1919         {
1920         .app_id                  = 1,
1921         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1922         .direction               = TF_DIR_TX,
1923         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1924         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
1925         .count                   = 1
1926         },
1927         {
1928         .app_id                  = 1,
1929         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1930         .direction               = TF_DIR_TX,
1931         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1932         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
1933         .count                   = 200
1934         },
1935         {
1936         .app_id                  = 1,
1937         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1938         .direction               = TF_DIR_TX,
1939         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1940         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
1941         .count                   = 110
1942         },
1943         {
1944         .app_id                  = 1,
1945         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1946         .direction               = TF_DIR_TX,
1947         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1948         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
1949         .count                   = 128
1950         },
1951         {
1952         .app_id                  = 1,
1953         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1954         .direction               = TF_DIR_TX,
1955         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
1956         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
1957         .count                   = 128
1958         },
1959         {
1960         .app_id                  = 1,
1961         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
1962         .direction               = TF_DIR_TX,
1963         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
1964         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
1965         .count                   = 15232
1966         },
1967         {
1968         .app_id                  = 2,
1969         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1970         .direction               = TF_DIR_RX,
1971         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1972         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
1973         .count                   = 422
1974         },
1975         {
1976         .app_id                  = 2,
1977         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1978         .direction               = TF_DIR_RX,
1979         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1980         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
1981         .count                   = 6
1982         },
1983         {
1984         .app_id                  = 2,
1985         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1986         .direction               = TF_DIR_RX,
1987         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1988         .resource_type           = TF_IDENT_TYPE_WC_PROF,
1989         .count                   = 192
1990         },
1991         {
1992         .app_id                  = 2,
1993         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
1994         .direction               = TF_DIR_RX,
1995         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1996         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
1997         .count                   = 64
1998         },
1999         {
2000         .app_id                  = 2,
2001         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2002         .direction               = TF_DIR_RX,
2003         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2004         .resource_type           = TF_IDENT_TYPE_EM_PROF,
2005         .count                   = 192
2006         },
2007         {
2008         .app_id                  = 2,
2009         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2010         .direction               = TF_DIR_RX,
2011         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2012         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
2013         .count                   = 8192
2014         },
2015         {
2016         .app_id                  = 2,
2017         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2018         .direction               = TF_DIR_RX,
2019         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2020         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
2021         .count                   = 8192
2022         },
2023         {
2024         .app_id                  = 2,
2025         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2026         .direction               = TF_DIR_RX,
2027         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2028         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
2029         .count                   = 1023
2030         },
2031         {
2032         .app_id                  = 2,
2033         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2034         .direction               = TF_DIR_RX,
2035         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2036         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
2037         .count                   = 511
2038         },
2039         {
2040         .app_id                  = 2,
2041         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2042         .direction               = TF_DIR_RX,
2043         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2044         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
2045         .count                   = 63
2046         },
2047         {
2048         .app_id                  = 2,
2049         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2050         .direction               = TF_DIR_RX,
2051         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2052         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC,
2053         .count                   = 255
2054         },
2055         {
2056         .app_id                  = 2,
2057         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2058         .direction               = TF_DIR_RX,
2059         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2060         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
2061         .count                   = 1
2062         },
2063         {
2064         .app_id                  = 2,
2065         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2066         .direction               = TF_DIR_RX,
2067         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2068         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
2069         .count                   = 422
2070         },
2071         {
2072         .app_id                  = 2,
2073         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2074         .direction               = TF_DIR_RX,
2075         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2076         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
2077         .count                   = 6
2078         },
2079         {
2080         .app_id                  = 2,
2081         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2082         .direction               = TF_DIR_RX,
2083         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2084         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
2085         .count                   = 960
2086         },
2087         {
2088         .app_id                  = 2,
2089         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2090         .direction               = TF_DIR_RX,
2091         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2092         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
2093         .count                   = 88
2094         },
2095         {
2096         .app_id                  = 2,
2097         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2098         .direction               = TF_DIR_RX,
2099         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2100         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
2101         .count                   = 13168
2102         },
2103         {
2104         .app_id                  = 2,
2105         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2106         .direction               = TF_DIR_RX,
2107         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2108         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
2109         .count                   = 1
2110         },
2111         {
2112         .app_id                  = 2,
2113         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2114         .direction               = TF_DIR_TX,
2115         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2116         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
2117         .count                   = 292
2118         },
2119         {
2120         .app_id                  = 2,
2121         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2122         .direction               = TF_DIR_TX,
2123         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2124         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
2125         .count                   = 148
2126         },
2127         {
2128         .app_id                  = 2,
2129         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2130         .direction               = TF_DIR_TX,
2131         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2132         .resource_type           = TF_IDENT_TYPE_WC_PROF,
2133         .count                   = 192
2134         },
2135         {
2136         .app_id                  = 2,
2137         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2138         .direction               = TF_DIR_TX,
2139         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2140         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
2141         .count                   = 64
2142         },
2143         {
2144         .app_id                  = 2,
2145         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2146         .direction               = TF_DIR_TX,
2147         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2148         .resource_type           = TF_IDENT_TYPE_EM_PROF,
2149         .count                   = 192
2150         },
2151         {
2152         .app_id                  = 2,
2153         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2154         .direction               = TF_DIR_TX,
2155         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2156         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
2157         .count                   = 8192
2158         },
2159         {
2160         .app_id                  = 2,
2161         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2162         .direction               = TF_DIR_TX,
2163         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2164         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
2165         .count                   = 8192
2166         },
2167         {
2168         .app_id                  = 2,
2169         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2170         .direction               = TF_DIR_TX,
2171         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2172         .resource_type           = TF_TBL_TYPE_ACT_MODIFY_IPV4,
2173         .count                   = 1023
2174         },
2175         {
2176         .app_id                  = 2,
2177         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2178         .direction               = TF_DIR_TX,
2179         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2180         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
2181         .count                   = 511
2182         },
2183         {
2184         .app_id                  = 2,
2185         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2186         .direction               = TF_DIR_TX,
2187         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2188         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_16B,
2189         .count                   = 223
2190         },
2191         {
2192         .app_id                  = 2,
2193         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2194         .direction               = TF_DIR_TX,
2195         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2196         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_8B,
2197         .count                   = 255
2198         },
2199         {
2200         .app_id                  = 2,
2201         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2202         .direction               = TF_DIR_TX,
2203         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2204         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
2205         .count                   = 488
2206         },
2207         {
2208         .app_id                  = 2,
2209         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2210         .direction               = TF_DIR_TX,
2211         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2212         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
2213         .count                   = 511
2214         },
2215         {
2216         .app_id                  = 2,
2217         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2218         .direction               = TF_DIR_TX,
2219         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2220         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
2221         .count                   = 1
2222         },
2223         {
2224         .app_id                  = 2,
2225         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2226         .direction               = TF_DIR_TX,
2227         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2228         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
2229         .count                   = 292
2230         },
2231         {
2232         .app_id                  = 2,
2233         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2234         .direction               = TF_DIR_TX,
2235         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2236         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
2237         .count                   = 144
2238         },
2239         {
2240         .app_id                  = 2,
2241         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2242         .direction               = TF_DIR_TX,
2243         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2244         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
2245         .count                   = 960
2246         },
2247         {
2248         .app_id                  = 2,
2249         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2250         .direction               = TF_DIR_TX,
2251         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2252         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
2253         .count                   = 928
2254         },
2255         {
2256         .app_id                  = 2,
2257         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2258         .direction               = TF_DIR_TX,
2259         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2260         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
2261         .count                   = 15232
2262         },
2263         {
2264         .app_id                  = 2,
2265         .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
2266         .direction               = TF_DIR_TX,
2267         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2268         .resource_type           = TF_EM_TBL_TYPE_TBL_SCOPE,
2269         .count                   = 1
2270         },
2271         {
2272         .app_id                  = 2,
2273         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2274         .direction               = TF_DIR_RX,
2275         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2276         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
2277         .count                   = 26
2278         },
2279         {
2280         .app_id                  = 2,
2281         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2282         .direction               = TF_DIR_RX,
2283         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2284         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
2285         .count                   = 6
2286         },
2287         {
2288         .app_id                  = 2,
2289         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2290         .direction               = TF_DIR_RX,
2291         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2292         .resource_type           = TF_IDENT_TYPE_WC_PROF,
2293         .count                   = 32
2294         },
2295         {
2296         .app_id                  = 2,
2297         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2298         .direction               = TF_DIR_RX,
2299         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2300         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
2301         .count                   = 32
2302         },
2303         {
2304         .app_id                  = 2,
2305         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2306         .direction               = TF_DIR_RX,
2307         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2308         .resource_type           = TF_IDENT_TYPE_EM_PROF,
2309         .count                   = 32
2310         },
2311         {
2312         .app_id                  = 2,
2313         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2314         .direction               = TF_DIR_RX,
2315         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2316         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
2317         .count                   = 1024
2318         },
2319         {
2320         .app_id                  = 2,
2321         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2322         .direction               = TF_DIR_RX,
2323         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2324         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
2325         .count                   = 512
2326         },
2327         {
2328         .app_id                  = 2,
2329         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2330         .direction               = TF_DIR_RX,
2331         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2332         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
2333         .count                   = 14
2334         },
2335         {
2336         .app_id                  = 2,
2337         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2338         .direction               = TF_DIR_RX,
2339         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2340         .resource_type           = TF_TBL_TYPE_EM_FKB,
2341         .count                   = 32
2342         },
2343         {
2344         .app_id                  = 2,
2345         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2346         .direction               = TF_DIR_RX,
2347         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2348         .resource_type           = TF_TBL_TYPE_WC_FKB,
2349         .count                   = 32
2350         },
2351         {
2352         .app_id                  = 2,
2353         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2354         .direction               = TF_DIR_RX,
2355         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2356         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
2357         .count                   = 64
2358         },
2359         {
2360         .app_id                  = 2,
2361         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2362         .direction               = TF_DIR_RX,
2363         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2364         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
2365         .count                   = 64
2366         },
2367         {
2368         .app_id                  = 2,
2369         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2370         .direction               = TF_DIR_RX,
2371         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2372         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
2373         .count                   = 300
2374         },
2375         {
2376         .app_id                  = 2,
2377         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2378         .direction               = TF_DIR_RX,
2379         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2380         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
2381         .count                   = 6
2382         },
2383         {
2384         .app_id                  = 2,
2385         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2386         .direction               = TF_DIR_RX,
2387         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2388         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
2389         .count                   = 128
2390         },
2391         {
2392         .app_id                  = 2,
2393         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2394         .direction               = TF_DIR_RX,
2395         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2396         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
2397         .count                   = 112
2398         },
2399         {
2400         .app_id                  = 2,
2401         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2402         .direction               = TF_DIR_RX,
2403         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2404         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
2405         .count                   = 13200
2406         },
2407         {
2408         .app_id                  = 2,
2409         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2410         .direction               = TF_DIR_TX,
2411         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2412         .resource_type           = TF_IDENT_TYPE_L2_CTXT_HIGH,
2413         .count                   = 26
2414         },
2415         {
2416         .app_id                  = 2,
2417         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2418         .direction               = TF_DIR_TX,
2419         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2420         .resource_type           = TF_IDENT_TYPE_L2_CTXT_LOW,
2421         .count                   = 26
2422         },
2423         {
2424         .app_id                  = 2,
2425         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2426         .direction               = TF_DIR_TX,
2427         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2428         .resource_type           = TF_IDENT_TYPE_WC_PROF,
2429         .count                   = 32
2430         },
2431         {
2432         .app_id                  = 2,
2433         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2434         .direction               = TF_DIR_TX,
2435         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2436         .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
2437         .count                   = 63
2438         },
2439         {
2440         .app_id                  = 2,
2441         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2442         .direction               = TF_DIR_TX,
2443         .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2444         .resource_type           = TF_IDENT_TYPE_EM_PROF,
2445         .count                   = 32
2446         },
2447         {
2448         .app_id                  = 2,
2449         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2450         .direction               = TF_DIR_TX,
2451         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2452         .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
2453         .count                   = 1024
2454         },
2455         {
2456         .app_id                  = 2,
2457         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2458         .direction               = TF_DIR_TX,
2459         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2460         .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
2461         .count                   = 512
2462         },
2463         {
2464         .app_id                  = 2,
2465         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2466         .direction               = TF_DIR_TX,
2467         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2468         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
2469         .count                   = 14
2470         },
2471         {
2472         .app_id                  = 2,
2473         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2474         .direction               = TF_DIR_TX,
2475         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2476         .resource_type           = TF_TBL_TYPE_EM_FKB,
2477         .count                   = 32
2478         },
2479         {
2480         .app_id                  = 2,
2481         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2482         .direction               = TF_DIR_TX,
2483         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2484         .resource_type           = TF_TBL_TYPE_WC_FKB,
2485         .count                   = 32
2486         },
2487         {
2488         .app_id                  = 2,
2489         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2490         .direction               = TF_DIR_TX,
2491         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2492         .resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
2493         .count                   = 64
2494         },
2495         {
2496         .app_id                  = 2,
2497         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2498         .direction               = TF_DIR_TX,
2499         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2500         .resource_type           = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
2501         .count                   = 100
2502         },
2503         {
2504         .app_id                  = 2,
2505         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2506         .direction               = TF_DIR_TX,
2507         .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
2508         .resource_type           = TF_TBL_TYPE_MIRROR_CONFIG,
2509         .count                   = 1
2510         },
2511         {
2512         .app_id                  = 2,
2513         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2514         .direction               = TF_DIR_TX,
2515         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2516         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
2517         .count                   = 200
2518         },
2519         {
2520         .app_id                  = 2,
2521         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2522         .direction               = TF_DIR_TX,
2523         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2524         .resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
2525         .count                   = 110
2526         },
2527         {
2528         .app_id                  = 2,
2529         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2530         .direction               = TF_DIR_TX,
2531         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2532         .resource_type           = TF_TCAM_TBL_TYPE_PROF_TCAM,
2533         .count                   = 128
2534         },
2535         {
2536         .app_id                  = 2,
2537         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2538         .direction               = TF_DIR_TX,
2539         .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
2540         .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
2541         .count                   = 128
2542         },
2543         {
2544         .app_id                  = 2,
2545         .device_id               = BNXT_ULP_DEVICE_ID_THOR,
2546         .direction               = TF_DIR_TX,
2547         .resource_func           = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
2548         .resource_type           = TF_EM_TBL_TYPE_EM_RECORD,
2549         .count                   = 15232
2550         }
2551 };
2552
2553 uint32_t ulp_act_prop_map_table[] = {
2554         [BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ] =
2555                 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ,
2556         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ] =
2557                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ,
2558         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ] =
2559                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ,
2560         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE] =
2561                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE,
2562         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM] =
2563                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM,
2564         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE] =
2565                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE,
2566         [BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM] =
2567                 BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM,
2568         [BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM] =
2569                 BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM,
2570         [BNXT_ULP_ACT_PROP_IDX_PORT_ID] =
2571                 BNXT_ULP_ACT_PROP_SZ_PORT_ID,
2572         [BNXT_ULP_ACT_PROP_IDX_VNIC] =
2573                 BNXT_ULP_ACT_PROP_SZ_VNIC,
2574         [BNXT_ULP_ACT_PROP_IDX_VPORT] =
2575                 BNXT_ULP_ACT_PROP_SZ_VPORT,
2576         [BNXT_ULP_ACT_PROP_IDX_MARK] =
2577                 BNXT_ULP_ACT_PROP_SZ_MARK,
2578         [BNXT_ULP_ACT_PROP_IDX_COUNT] =
2579                 BNXT_ULP_ACT_PROP_SZ_COUNT,
2580         [BNXT_ULP_ACT_PROP_IDX_METER] =
2581                 BNXT_ULP_ACT_PROP_SZ_METER,
2582         [BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC] =
2583                 BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC,
2584         [BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST] =
2585                 BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST,
2586         [BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN] =
2587                 BNXT_ULP_ACT_PROP_SZ_PUSH_VLAN,
2588         [BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP] =
2589                 BNXT_ULP_ACT_PROP_SZ_SET_VLAN_PCP,
2590         [BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID] =
2591                 BNXT_ULP_ACT_PROP_SZ_SET_VLAN_VID,
2592         [BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC] =
2593                 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC,
2594         [BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST] =
2595                 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST,
2596         [BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC] =
2597                 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC,
2598         [BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST] =
2599                 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST,
2600         [BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC] =
2601                 BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC,
2602         [BNXT_ULP_ACT_PROP_IDX_SET_TP_DST] =
2603                 BNXT_ULP_ACT_PROP_SZ_SET_TP_DST,
2604         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0] =
2605                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0,
2606         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1] =
2607                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1,
2608         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2] =
2609                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2,
2610         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3] =
2611                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3,
2612         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4] =
2613                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4,
2614         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5] =
2615                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5,
2616         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6] =
2617                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6,
2618         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7] =
2619                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7,
2620         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC] =
2621                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC,
2622         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC] =
2623                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC,
2624         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG] =
2625                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG,
2626         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP] =
2627                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP,
2628         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC] =
2629                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC,
2630         [BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP] =
2631                 BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP,
2632         [BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN] =
2633                 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN,
2634         [BNXT_ULP_ACT_PROP_IDX_JUMP] =
2635                 BNXT_ULP_ACT_PROP_SZ_JUMP,
2636         [BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE] =
2637                 BNXT_ULP_ACT_PROP_SZ_SHARED_HANDLE,
2638         [BNXT_ULP_ACT_PROP_IDX_LAST] =
2639                 BNXT_ULP_ACT_PROP_SZ_LAST
2640 };
2641
2642 uint8_t ulp_glb_field_tbl[] = {
2643         [2048] = 0,
2644         [2049] = 1,
2645         [2050] = 2,
2646         [2052] = 3,
2647         [2054] = 4,
2648         [2088] = 5,
2649         [2090] = 6,
2650         [2092] = 7,
2651         [2094] = 8,
2652         [2096] = 9,
2653         [2098] = 10,
2654         [2100] = 11,
2655         [2102] = 12,
2656         [2176] = 0,
2657         [2177] = 1,
2658         [2178] = 2,
2659         [2180] = 3,
2660         [2182] = 4,
2661         [2196] = 5,
2662         [2198] = 6,
2663         [2200] = 7,
2664         [2202] = 8,
2665         [2204] = 9,
2666         [2206] = 10,
2667         [2208] = 11,
2668         [2210] = 12,
2669         [2212] = 13,
2670         [2214] = 14,
2671         [2304] = 0,
2672         [2305] = 1,
2673         [2306] = 2,
2674         [2308] = 3,
2675         [2310] = 4,
2676         [2344] = 8,
2677         [2346] = 9,
2678         [2348] = 10,
2679         [2350] = 11,
2680         [2352] = 12,
2681         [2354] = 13,
2682         [2356] = 14,
2683         [2358] = 15,
2684         [2386] = 5,
2685         [2390] = 6,
2686         [2394] = 7,
2687         [2432] = 0,
2688         [2433] = 1,
2689         [2434] = 2,
2690         [2436] = 3,
2691         [2438] = 4,
2692         [2452] = 8,
2693         [2454] = 9,
2694         [2456] = 10,
2695         [2458] = 11,
2696         [2460] = 12,
2697         [2462] = 13,
2698         [2464] = 14,
2699         [2466] = 15,
2700         [2468] = 16,
2701         [2470] = 17,
2702         [2514] = 5,
2703         [2518] = 6,
2704         [2522] = 7,
2705         [2560] = 0,
2706         [2561] = 1,
2707         [2562] = 2,
2708         [2564] = 3,
2709         [2566] = 4,
2710         [2600] = 5,
2711         [2602] = 6,
2712         [2604] = 7,
2713         [2606] = 8,
2714         [2608] = 9,
2715         [2610] = 10,
2716         [2612] = 11,
2717         [2614] = 12,
2718         [2616] = 13,
2719         [2618] = 14,
2720         [2620] = 15,
2721         [2622] = 16,
2722         [2624] = 17,
2723         [2626] = 18,
2724         [2628] = 19,
2725         [2630] = 20,
2726         [2632] = 21,
2727         [2688] = 0,
2728         [2689] = 1,
2729         [2690] = 2,
2730         [2692] = 3,
2731         [2694] = 4,
2732         [2708] = 5,
2733         [2710] = 6,
2734         [2712] = 7,
2735         [2714] = 8,
2736         [2716] = 9,
2737         [2718] = 10,
2738         [2720] = 11,
2739         [2722] = 12,
2740         [2724] = 13,
2741         [2726] = 14,
2742         [2744] = 15,
2743         [2746] = 16,
2744         [2748] = 17,
2745         [2750] = 18,
2746         [2752] = 19,
2747         [2754] = 20,
2748         [2756] = 21,
2749         [2758] = 22,
2750         [2760] = 23,
2751         [2816] = 0,
2752         [2817] = 1,
2753         [2818] = 2,
2754         [2820] = 3,
2755         [2822] = 4,
2756         [2856] = 5,
2757         [2858] = 6,
2758         [2860] = 7,
2759         [2862] = 8,
2760         [2864] = 9,
2761         [2866] = 10,
2762         [2868] = 11,
2763         [2870] = 12,
2764         [2890] = 13,
2765         [2892] = 14,
2766         [2894] = 15,
2767         [2896] = 16,
2768         [2944] = 0,
2769         [2945] = 1,
2770         [2946] = 2,
2771         [2948] = 3,
2772         [2950] = 4,
2773         [2964] = 5,
2774         [2966] = 6,
2775         [2968] = 7,
2776         [2970] = 8,
2777         [2972] = 9,
2778         [2974] = 10,
2779         [2976] = 11,
2780         [2978] = 12,
2781         [2980] = 13,
2782         [2982] = 14,
2783         [3018] = 15,
2784         [3020] = 16,
2785         [3022] = 17,
2786         [3024] = 18,
2787         [3072] = 0,
2788         [3073] = 1,
2789         [3074] = 2,
2790         [3076] = 3,
2791         [3078] = 4,
2792         [3112] = 8,
2793         [3114] = 9,
2794         [3116] = 10,
2795         [3118] = 11,
2796         [3120] = 12,
2797         [3122] = 13,
2798         [3124] = 14,
2799         [3126] = 15,
2800         [3128] = 16,
2801         [3130] = 17,
2802         [3132] = 18,
2803         [3134] = 19,
2804         [3136] = 20,
2805         [3138] = 21,
2806         [3140] = 22,
2807         [3142] = 23,
2808         [3144] = 24,
2809         [3154] = 5,
2810         [3158] = 6,
2811         [3162] = 7,
2812         [3200] = 0,
2813         [3201] = 1,
2814         [3202] = 2,
2815         [3204] = 3,
2816         [3206] = 4,
2817         [3220] = 8,
2818         [3222] = 9,
2819         [3224] = 10,
2820         [3226] = 11,
2821         [3228] = 12,
2822         [3230] = 13,
2823         [3232] = 14,
2824         [3234] = 15,
2825         [3236] = 16,
2826         [3238] = 17,
2827         [3256] = 18,
2828         [3258] = 19,
2829         [3260] = 20,
2830         [3262] = 21,
2831         [3264] = 22,
2832         [3266] = 23,
2833         [3268] = 24,
2834         [3270] = 25,
2835         [3272] = 26,
2836         [3282] = 5,
2837         [3286] = 6,
2838         [3290] = 7,
2839         [3328] = 0,
2840         [3329] = 1,
2841         [3330] = 2,
2842         [3332] = 3,
2843         [3334] = 4,
2844         [3368] = 8,
2845         [3370] = 9,
2846         [3372] = 10,
2847         [3374] = 11,
2848         [3376] = 12,
2849         [3378] = 13,
2850         [3380] = 14,
2851         [3382] = 15,
2852         [3402] = 16,
2853         [3404] = 17,
2854         [3406] = 18,
2855         [3408] = 19,
2856         [3410] = 5,
2857         [3414] = 6,
2858         [3418] = 7,
2859         [3456] = 0,
2860         [3457] = 1,
2861         [3458] = 2,
2862         [3460] = 3,
2863         [3462] = 4,
2864         [3476] = 8,
2865         [3478] = 9,
2866         [3480] = 10,
2867         [3482] = 11,
2868         [3484] = 12,
2869         [3486] = 13,
2870         [3488] = 14,
2871         [3490] = 15,
2872         [3492] = 16,
2873         [3494] = 17,
2874         [3530] = 18,
2875         [3532] = 19,
2876         [3534] = 20,
2877         [3536] = 21,
2878         [3538] = 5,
2879         [3542] = 6,
2880         [3546] = 7,
2881         [3584] = 0,
2882         [3585] = 1,
2883         [3586] = 2,
2884         [3588] = 3,
2885         [3590] = 4,
2886         [3604] = 5,
2887         [3606] = 6,
2888         [3608] = 7,
2889         [3610] = 8,
2890         [3612] = 9,
2891         [3614] = 10,
2892         [3616] = 11,
2893         [3618] = 12,
2894         [3620] = 13,
2895         [3622] = 14,
2896         [3658] = 15,
2897         [3660] = 16,
2898         [3662] = 17,
2899         [3664] = 18,
2900         [3678] = 19,
2901         [3679] = 20,
2902         [3680] = 21,
2903         [3681] = 22,
2904         [4096] = 0,
2905         [4097] = 1,
2906         [4098] = 2,
2907         [4100] = 3,
2908         [4102] = 4,
2909         [4136] = 5,
2910         [4138] = 6,
2911         [4140] = 7,
2912         [4142] = 8,
2913         [4144] = 9,
2914         [4146] = 10,
2915         [4148] = 11,
2916         [4150] = 12,
2917         [4224] = 0,
2918         [4225] = 1,
2919         [4226] = 2,
2920         [4228] = 3,
2921         [4230] = 4,
2922         [4244] = 5,
2923         [4246] = 6,
2924         [4248] = 7,
2925         [4250] = 8,
2926         [4252] = 9,
2927         [4254] = 10,
2928         [4256] = 11,
2929         [4258] = 12,
2930         [4260] = 13,
2931         [4262] = 14,
2932         [4352] = 0,
2933         [4353] = 1,
2934         [4354] = 2,
2935         [4356] = 3,
2936         [4358] = 4,
2937         [4392] = 8,
2938         [4394] = 9,
2939         [4396] = 10,
2940         [4398] = 11,
2941         [4400] = 12,
2942         [4402] = 13,
2943         [4404] = 14,
2944         [4406] = 15,
2945         [4434] = 5,
2946         [4438] = 6,
2947         [4442] = 7,
2948         [4480] = 0,
2949         [4481] = 1,
2950         [4482] = 2,
2951         [4484] = 3,
2952         [4486] = 4,
2953         [4500] = 8,
2954         [4502] = 9,
2955         [4504] = 10,
2956         [4506] = 11,
2957         [4508] = 12,
2958         [4510] = 13,
2959         [4512] = 14,
2960         [4514] = 15,
2961         [4516] = 16,
2962         [4518] = 17,
2963         [4562] = 5,
2964         [4566] = 6,
2965         [4570] = 7,
2966         [4608] = 0,
2967         [4609] = 1,
2968         [4610] = 2,
2969         [4612] = 3,
2970         [4614] = 4,
2971         [4648] = 5,
2972         [4650] = 6,
2973         [4652] = 7,
2974         [4654] = 8,
2975         [4656] = 9,
2976         [4658] = 10,
2977         [4660] = 11,
2978         [4662] = 12,
2979         [4664] = 13,
2980         [4666] = 14,
2981         [4668] = 15,
2982         [4670] = 16,
2983         [4672] = 17,
2984         [4674] = 18,
2985         [4676] = 19,
2986         [4678] = 20,
2987         [4680] = 21,
2988         [4736] = 0,
2989         [4737] = 1,
2990         [4738] = 2,
2991         [4740] = 3,
2992         [4742] = 4,
2993         [4756] = 5,
2994         [4758] = 6,
2995         [4760] = 7,
2996         [4762] = 8,
2997         [4764] = 9,
2998         [4766] = 10,
2999         [4768] = 11,
3000         [4770] = 12,
3001         [4772] = 13,
3002         [4774] = 14,
3003         [4792] = 15,
3004         [4794] = 16,
3005         [4796] = 17,
3006         [4798] = 18,
3007         [4800] = 19,
3008         [4802] = 20,
3009         [4804] = 21,
3010         [4806] = 22,
3011         [4808] = 23,
3012         [4864] = 0,
3013         [4865] = 1,
3014         [4866] = 2,
3015         [4868] = 3,
3016         [4870] = 4,
3017         [4904] = 5,
3018         [4906] = 6,
3019         [4908] = 7,
3020         [4910] = 8,
3021         [4912] = 9,
3022         [4914] = 10,
3023         [4916] = 11,
3024         [4918] = 12,
3025         [4938] = 13,
3026         [4940] = 14,
3027         [4942] = 15,
3028         [4944] = 16,
3029         [4992] = 0,
3030         [4993] = 1,
3031         [4994] = 2,
3032         [4996] = 3,
3033         [4998] = 4,
3034         [5012] = 5,
3035         [5014] = 6,
3036         [5016] = 7,
3037         [5018] = 8,
3038         [5020] = 9,
3039         [5022] = 10,
3040         [5024] = 11,
3041         [5026] = 12,
3042         [5028] = 13,
3043         [5030] = 14,
3044         [5066] = 15,
3045         [5068] = 16,
3046         [5070] = 17,
3047         [5072] = 18,
3048         [5120] = 0,
3049         [5121] = 1,
3050         [5122] = 2,
3051         [5124] = 3,
3052         [5126] = 4,
3053         [5160] = 8,
3054         [5162] = 9,
3055         [5164] = 10,
3056         [5166] = 11,
3057         [5168] = 12,
3058         [5170] = 13,
3059         [5172] = 14,
3060         [5174] = 15,
3061         [5176] = 16,
3062         [5178] = 17,
3063         [5180] = 18,
3064         [5182] = 19,
3065         [5184] = 20,
3066         [5186] = 21,
3067         [5188] = 22,
3068         [5190] = 23,
3069         [5192] = 24,
3070         [5202] = 5,
3071         [5206] = 6,
3072         [5210] = 7,
3073         [5248] = 0,
3074         [5249] = 1,
3075         [5250] = 2,
3076         [5252] = 3,
3077         [5254] = 4,
3078         [5268] = 8,
3079         [5270] = 9,
3080         [5272] = 10,
3081         [5274] = 11,
3082         [5276] = 12,
3083         [5278] = 13,
3084         [5280] = 14,
3085         [5282] = 15,
3086         [5284] = 16,
3087         [5286] = 17,
3088         [5304] = 18,
3089         [5306] = 19,
3090         [5308] = 20,
3091         [5310] = 21,
3092         [5312] = 22,
3093         [5314] = 23,
3094         [5316] = 24,
3095         [5318] = 25,
3096         [5320] = 26,
3097         [5330] = 5,
3098         [5334] = 6,
3099         [5338] = 7,
3100         [5376] = 0,
3101         [5377] = 1,
3102         [5378] = 2,
3103         [5380] = 3,
3104         [5382] = 4,
3105         [5416] = 8,
3106         [5418] = 9,
3107         [5420] = 10,
3108         [5422] = 11,
3109         [5424] = 12,
3110         [5426] = 13,
3111         [5428] = 14,
3112         [5430] = 15,
3113         [5450] = 16,
3114         [5452] = 17,
3115         [5454] = 18,
3116         [5456] = 19,
3117         [5458] = 5,
3118         [5462] = 6,
3119         [5466] = 7,
3120         [5504] = 0,
3121         [5505] = 1,
3122         [5506] = 2,
3123         [5508] = 3,
3124         [5510] = 4,
3125         [5524] = 8,
3126         [5526] = 9,
3127         [5528] = 10,
3128         [5530] = 11,
3129         [5532] = 12,
3130         [5534] = 13,
3131         [5536] = 14,
3132         [5538] = 15,
3133         [5540] = 16,
3134         [5542] = 17,
3135         [5578] = 18,
3136         [5580] = 19,
3137         [5582] = 20,
3138         [5584] = 21,
3139         [5586] = 5,
3140         [5590] = 6,
3141         [5594] = 7
3142 };
3143