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