net/bnxt: identify duplicate flows
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_enum.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5
6 /* date: Mon Nov 23 17:33:02 2020 */
7
8 #ifndef ULP_TEMPLATE_DB_H_
9 #define ULP_TEMPLATE_DB_H_
10
11 #define BNXT_ULP_REGFILE_MAX_SZ 31
12 #define BNXT_ULP_MAX_NUM_DEVICES 4
13 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2
14 #define BNXT_ULP_GEN_TBL_MAX_SZ 6
15 #define BNXT_ULP_CLASS_SIG_TBL_MAX_SZ 256
16 #define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 41
17 #define BNXT_ULP_CLASS_HID_LOW_PRIME 3793
18 #define BNXT_ULP_CLASS_HID_HIGH_PRIME 7919
19 #define BNXT_ULP_CLASS_HID_SHFTR 24
20 #define BNXT_ULP_CLASS_HID_SHFTL 23
21 #define BNXT_ULP_CLASS_HID_MASK 255
22 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 2048
23 #define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 15
24 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
25 #define BNXT_ULP_ACT_HID_HIGH_PRIME 7919
26 #define BNXT_ULP_ACT_HID_SHFTR 24
27 #define BNXT_ULP_ACT_HID_SHFTL 23
28 #define BNXT_ULP_ACT_HID_MASK 2047
29 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 8
30 #define BNXT_ULP_GLB_TEMPLATE_TBL_MAX_SZ 1
31 #define BNXT_ULP_GLB_FIELD_TBL_SHIFT 7
32 #define BNXT_ULP_HDR_SIG_ID_SHIFT 4
33 #define BNXT_ULP_GLB_FIELD_TBL_SIZE 4441
34 #define ULP_WH_PLUS_CLASS_TMPL_LIST_SIZE 8
35 #define ULP_WH_PLUS_CLASS_TBL_LIST_SIZE 41
36 #define ULP_WH_PLUS_CLASS_KEY_INFO_LIST_SIZE 273
37 #define ULP_WH_PLUS_CLASS_IDENT_LIST_SIZE 14
38 #define ULP_WH_PLUS_CLASS_RESULT_FIELD_LIST_SIZE 385
39 #define ULP_WH_PLUS_CLASS_COND_LIST_SIZE 10
40 #define ULP_STINGRAY_CLASS_TMPL_LIST_SIZE 8
41 #define ULP_STINGRAY_CLASS_TBL_LIST_SIZE 41
42 #define ULP_STINGRAY_CLASS_KEY_INFO_LIST_SIZE 273
43 #define ULP_STINGRAY_CLASS_IDENT_LIST_SIZE 14
44 #define ULP_STINGRAY_CLASS_RESULT_FIELD_LIST_SIZE 385
45 #define ULP_STINGRAY_CLASS_COND_LIST_SIZE 10
46 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 2
47 #define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 4
48 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 0
49 #define ULP_WH_PLUS_ACT_IDENT_LIST_SIZE 0
50 #define ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE 65
51 #define ULP_WH_PLUS_ACT_COND_LIST_SIZE 2
52 #define ULP_STINGRAY_ACT_TMPL_LIST_SIZE 2
53 #define ULP_STINGRAY_ACT_TBL_LIST_SIZE 4
54 #define ULP_STINGRAY_ACT_KEY_INFO_LIST_SIZE 0
55 #define ULP_STINGRAY_ACT_IDENT_LIST_SIZE 0
56 #define ULP_STINGRAY_ACT_RESULT_FIELD_LIST_SIZE 65
57 #define ULP_STINGRAY_ACT_COND_LIST_SIZE 2
58
59 enum bnxt_ulp_action_bit {
60         BNXT_ULP_ACTION_BIT_MARK             = 0x0000000000000001,
61         BNXT_ULP_ACTION_BIT_DROP             = 0x0000000000000002,
62         BNXT_ULP_ACTION_BIT_COUNT            = 0x0000000000000004,
63         BNXT_ULP_ACTION_BIT_RSS              = 0x0000000000000008,
64         BNXT_ULP_ACTION_BIT_METER            = 0x0000000000000010,
65         BNXT_ULP_ACTION_BIT_VXLAN_DECAP      = 0x0000000000000020,
66         BNXT_ULP_ACTION_BIT_POP_MPLS         = 0x0000000000000040,
67         BNXT_ULP_ACTION_BIT_PUSH_MPLS        = 0x0000000000000080,
68         BNXT_ULP_ACTION_BIT_MAC_SWAP         = 0x0000000000000100,
69         BNXT_ULP_ACTION_BIT_SET_MAC_SRC      = 0x0000000000000200,
70         BNXT_ULP_ACTION_BIT_SET_MAC_DST      = 0x0000000000000400,
71         BNXT_ULP_ACTION_BIT_POP_VLAN         = 0x0000000000000800,
72         BNXT_ULP_ACTION_BIT_PUSH_VLAN        = 0x0000000000001000,
73         BNXT_ULP_ACTION_BIT_SET_VLAN_PCP     = 0x0000000000002000,
74         BNXT_ULP_ACTION_BIT_SET_VLAN_VID     = 0x0000000000004000,
75         BNXT_ULP_ACTION_BIT_SET_IPV4_SRC     = 0x0000000000008000,
76         BNXT_ULP_ACTION_BIT_SET_IPV4_DST     = 0x0000000000010000,
77         BNXT_ULP_ACTION_BIT_SET_IPV6_SRC     = 0x0000000000020000,
78         BNXT_ULP_ACTION_BIT_SET_IPV6_DST     = 0x0000000000040000,
79         BNXT_ULP_ACTION_BIT_DEC_TTL          = 0x0000000000080000,
80         BNXT_ULP_ACTION_BIT_SET_TP_SRC       = 0x0000000000100000,
81         BNXT_ULP_ACTION_BIT_SET_TP_DST       = 0x0000000000200000,
82         BNXT_ULP_ACTION_BIT_VXLAN_ENCAP      = 0x0000000000400000,
83         BNXT_ULP_ACTION_BIT_JUMP             = 0x0000000000800000,
84         BNXT_ULP_ACTION_BIT_SHARED           = 0x0000000001000000,
85         BNXT_ULP_ACTION_BIT_SAMPLE           = 0x0000000002000000,
86         BNXT_ULP_ACTION_BIT_SHARED_SAMPLE    = 0x0000000004000000,
87         BNXT_ULP_ACTION_BIT_LAST             = 0x0000000008000000
88 };
89
90 enum bnxt_ulp_hdr_bit {
91         BNXT_ULP_HDR_BIT_O_ETH               = 0x0000000000000001,
92         BNXT_ULP_HDR_BIT_OO_VLAN             = 0x0000000000000002,
93         BNXT_ULP_HDR_BIT_OI_VLAN             = 0x0000000000000004,
94         BNXT_ULP_HDR_BIT_O_IPV4              = 0x0000000000000008,
95         BNXT_ULP_HDR_BIT_O_IPV6              = 0x0000000000000010,
96         BNXT_ULP_HDR_BIT_O_TCP               = 0x0000000000000020,
97         BNXT_ULP_HDR_BIT_O_UDP               = 0x0000000000000040,
98         BNXT_ULP_HDR_BIT_T_VXLAN             = 0x0000000000000080,
99         BNXT_ULP_HDR_BIT_T_GRE               = 0x0000000000000100,
100         BNXT_ULP_HDR_BIT_I_ETH               = 0x0000000000000200,
101         BNXT_ULP_HDR_BIT_IO_VLAN             = 0x0000000000000400,
102         BNXT_ULP_HDR_BIT_II_VLAN             = 0x0000000000000800,
103         BNXT_ULP_HDR_BIT_I_IPV4              = 0x0000000000001000,
104         BNXT_ULP_HDR_BIT_I_IPV6              = 0x0000000000002000,
105         BNXT_ULP_HDR_BIT_I_TCP               = 0x0000000000004000,
106         BNXT_ULP_HDR_BIT_I_UDP               = 0x0000000000008000,
107         BNXT_ULP_HDR_BIT_F1                  = 0x0000000000010000,
108         BNXT_ULP_HDR_BIT_LAST                = 0x0000000000020000
109 };
110
111 enum bnxt_ulp_accept_opc {
112         BNXT_ULP_ACCEPT_OPC_ALWAYS = 0,
113         BNXT_ULP_ACCEPT_OPC_FLOW_SIG_ID_MATCH = 1,
114         BNXT_ULP_ACCEPT_OPC_LAST = 2
115 };
116
117 enum bnxt_ulp_act_type {
118         BNXT_ULP_ACT_TYPE_NOT_SUPPORTED = 0,
119         BNXT_ULP_ACT_TYPE_SUPPORTED = 1,
120         BNXT_ULP_ACT_TYPE_END = 2,
121         BNXT_ULP_ACT_TYPE_LAST = 3
122 };
123
124 enum bnxt_ulp_byte_order {
125         BNXT_ULP_BYTE_ORDER_BE = 0,
126         BNXT_ULP_BYTE_ORDER_LE = 1,
127         BNXT_ULP_BYTE_ORDER_LAST = 2
128 };
129
130 enum bnxt_ulp_cf_idx {
131         BNXT_ULP_CF_IDX_NOT_USED = 0,
132         BNXT_ULP_CF_IDX_MPLS_TAG_NUM = 1,
133         BNXT_ULP_CF_IDX_O_VTAG_NUM = 2,
134         BNXT_ULP_CF_IDX_O_NO_VTAG = 3,
135         BNXT_ULP_CF_IDX_O_ONE_VTAG = 4,
136         BNXT_ULP_CF_IDX_O_TWO_VTAGS = 5,
137         BNXT_ULP_CF_IDX_I_VTAG_NUM = 6,
138         BNXT_ULP_CF_IDX_I_NO_VTAG = 7,
139         BNXT_ULP_CF_IDX_I_ONE_VTAG = 8,
140         BNXT_ULP_CF_IDX_I_TWO_VTAGS = 9,
141         BNXT_ULP_CF_IDX_INCOMING_IF = 10,
142         BNXT_ULP_CF_IDX_DIRECTION = 11,
143         BNXT_ULP_CF_IDX_SVIF_FLAG = 12,
144         BNXT_ULP_CF_IDX_O_L3 = 13,
145         BNXT_ULP_CF_IDX_I_L3 = 14,
146         BNXT_ULP_CF_IDX_O_L4 = 15,
147         BNXT_ULP_CF_IDX_I_L4 = 16,
148         BNXT_ULP_CF_IDX_DEV_PORT_ID = 17,
149         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF = 18,
150         BNXT_ULP_CF_IDX_DRV_FUNC_SPIF = 19,
151         BNXT_ULP_CF_IDX_DRV_FUNC_PARIF = 20,
152         BNXT_ULP_CF_IDX_DRV_FUNC_VNIC = 21,
153         BNXT_ULP_CF_IDX_DRV_FUNC_PHY_PORT = 22,
154         BNXT_ULP_CF_IDX_VF_FUNC_SVIF = 23,
155         BNXT_ULP_CF_IDX_VF_FUNC_SPIF = 24,
156         BNXT_ULP_CF_IDX_VF_FUNC_PARIF = 25,
157         BNXT_ULP_CF_IDX_VF_FUNC_VNIC = 26,
158         BNXT_ULP_CF_IDX_PHY_PORT_SVIF = 27,
159         BNXT_ULP_CF_IDX_PHY_PORT_SPIF = 28,
160         BNXT_ULP_CF_IDX_PHY_PORT_PARIF = 29,
161         BNXT_ULP_CF_IDX_PHY_PORT_VPORT = 30,
162         BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG = 31,
163         BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG = 32,
164         BNXT_ULP_CF_IDX_ACT_DEC_TTL = 33,
165         BNXT_ULP_CF_IDX_ACT_T_DEC_TTL = 34,
166         BNXT_ULP_CF_IDX_ACT_PORT_IS_SET = 35,
167         BNXT_ULP_CF_IDX_ACT_PORT_TYPE = 36,
168         BNXT_ULP_CF_IDX_MATCH_PORT_TYPE = 37,
169         BNXT_ULP_CF_IDX_MATCH_PORT_IS_VFREP = 38,
170         BNXT_ULP_CF_IDX_VF_TO_VF = 39,
171         BNXT_ULP_CF_IDX_L3_HDR_CNT = 40,
172         BNXT_ULP_CF_IDX_L4_HDR_CNT = 41,
173         BNXT_ULP_CF_IDX_VFR_MODE = 42,
174         BNXT_ULP_CF_IDX_L3_TUN = 43,
175         BNXT_ULP_CF_IDX_L3_TUN_DECAP = 44,
176         BNXT_ULP_CF_IDX_FID = 45,
177         BNXT_ULP_CF_IDX_HDR_SIG_ID = 46,
178         BNXT_ULP_CF_IDX_FLOW_SIG_ID = 47,
179         BNXT_ULP_CF_IDX_LAST = 48
180 };
181
182 enum bnxt_ulp_cond_list_opc {
183         BNXT_ULP_COND_LIST_OPC_TRUE = 0,
184         BNXT_ULP_COND_LIST_OPC_FALSE = 1,
185         BNXT_ULP_COND_LIST_OPC_OR = 2,
186         BNXT_ULP_COND_LIST_OPC_AND = 3,
187         BNXT_ULP_COND_LIST_OPC_LAST = 4
188 };
189
190 enum bnxt_ulp_cond_opc {
191         BNXT_ULP_COND_OPC_COMP_FIELD_IS_SET = 0,
192         BNXT_ULP_COND_OPC_COMP_FIELD_NOT_SET = 1,
193         BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET = 2,
194         BNXT_ULP_COND_OPC_ACTION_BIT_NOT_SET = 3,
195         BNXT_ULP_COND_OPC_HDR_BIT_IS_SET = 4,
196         BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET = 5,
197         BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET = 6,
198         BNXT_ULP_COND_OPC_FIELD_BIT_NOT_SET = 7,
199         BNXT_ULP_COND_OPC_REGFILE_IS_SET = 8,
200         BNXT_ULP_COND_OPC_REGFILE_NOT_SET = 9,
201         BNXT_ULP_COND_OPC_LAST = 10
202 };
203
204 enum bnxt_ulp_critical_resource {
205         BNXT_ULP_CRITICAL_RESOURCE_NO = 0,
206         BNXT_ULP_CRITICAL_RESOURCE_YES = 1,
207         BNXT_ULP_CRITICAL_RESOURCE_LAST = 2
208 };
209
210 enum bnxt_ulp_device_id {
211         BNXT_ULP_DEVICE_ID_WH_PLUS = 0,
212         BNXT_ULP_DEVICE_ID_THOR = 1,
213         BNXT_ULP_DEVICE_ID_STINGRAY = 2,
214         BNXT_ULP_DEVICE_ID_STINGRAY2 = 3,
215         BNXT_ULP_DEVICE_ID_LAST = 4
216 };
217
218 enum bnxt_ulp_df_param_type {
219         BNXT_ULP_DF_PARAM_TYPE_DEV_PORT_ID = 0,
220         BNXT_ULP_DF_PARAM_TYPE_LAST = 1
221 };
222
223 enum bnxt_ulp_direction {
224         BNXT_ULP_DIRECTION_INGRESS = 0,
225         BNXT_ULP_DIRECTION_EGRESS = 1,
226         BNXT_ULP_DIRECTION_LAST = 2
227 };
228
229 enum bnxt_ulp_fdb_opc {
230         BNXT_ULP_FDB_OPC_PUSH = 0,
231         BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE = 1,
232         BNXT_ULP_FDB_OPC_PUSH_REGFILE = 2,
233         BNXT_ULP_FDB_OPC_NOP = 3,
234         BNXT_ULP_FDB_OPC_LAST = 4
235 };
236
237 enum bnxt_ulp_fdb_type {
238         BNXT_ULP_FDB_TYPE_REGULAR = 0,
239         BNXT_ULP_FDB_TYPE_DEFAULT = 1,
240         BNXT_ULP_FDB_TYPE_RID = 2,
241         BNXT_ULP_FDB_TYPE_LAST = 3
242 };
243
244 enum bnxt_ulp_field_opc {
245         BNXT_ULP_FIELD_OPC_SET_TO_CONSTANT = 0,
246         BNXT_ULP_FIELD_OPC_SET_TO_HDR_FIELD = 1,
247         BNXT_ULP_FIELD_OPC_SET_TO_COMP_FIELD = 2,
248         BNXT_ULP_FIELD_OPC_SET_TO_REGFILE = 3,
249         BNXT_ULP_FIELD_OPC_SET_TO_GLB_REGFILE = 4,
250         BNXT_ULP_FIELD_OPC_SET_TO_ZERO = 5,
251         BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT = 6,
252         BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP = 7,
253         BNXT_ULP_FIELD_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 8,
254         BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST = 9,
255         BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST = 10,
256         BNXT_ULP_FIELD_OPC_IF_COMP_FIELD_THEN_CF_ELSE_CF = 11,
257         BNXT_ULP_FIELD_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST = 12,
258         BNXT_ULP_FIELD_OPC_IF_COMP_FIELD_THEN_ACT_PROP_ELSE_CONST = 13,
259         BNXT_ULP_FIELD_OPC_IF_NOT_COMP_FIELD_THEN_ACT_PROP_ELSE_CONST = 14,
260         BNXT_ULP_FIELD_OPC_IF_COMP_FIELD_THEN_CONST_ELSE_CF = 15,
261         BNXT_ULP_FIELD_OPC_IF_NOT_COMP_FIELD_THEN_CONST_ELSE_CF = 16,
262         BNXT_ULP_FIELD_OPC_IF_FIELD_BIT_THEN_ONES_ELSE_ZERO = 17,
263         BNXT_ULP_FIELD_OPC_LAST = 18
264 };
265
266 enum bnxt_ulp_generic_tbl_opc {
267         BNXT_ULP_GENERIC_TBL_OPC_NOT_USED = 0,
268         BNXT_ULP_GENERIC_TBL_OPC_READ = 1,
269         BNXT_ULP_GENERIC_TBL_OPC_WRITE = 2,
270         BNXT_ULP_GENERIC_TBL_OPC_LAST = 3
271 };
272
273 enum bnxt_ulp_glb_rf_idx {
274         BNXT_ULP_GLB_RF_IDX_NOT_USED = 0,
275         BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID = 1,
276         BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR = 2,
277         BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID = 3,
278         BNXT_ULP_GLB_RF_IDX_VXLAN_PROF_FUNC_ID = 4,
279         BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR = 5,
280         BNXT_ULP_GLB_RF_IDX_LAST = 6
281 };
282
283 enum bnxt_ulp_hdr_type {
284         BNXT_ULP_HDR_TYPE_NOT_SUPPORTED = 0,
285         BNXT_ULP_HDR_TYPE_SUPPORTED = 1,
286         BNXT_ULP_HDR_TYPE_END = 2,
287         BNXT_ULP_HDR_TYPE_LAST = 3
288 };
289
290 enum bnxt_ulp_if_tbl_opc {
291         BNXT_ULP_IF_TBL_OPC_NOT_USED = 0,
292         BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD = 1,
293         BNXT_ULP_IF_TBL_OPC_WR_REGFILE = 2,
294         BNXT_ULP_IF_TBL_OPC_WR_CONST = 3,
295         BNXT_ULP_IF_TBL_OPC_RD_COMP_FIELD = 4,
296         BNXT_ULP_IF_TBL_OPC_LAST = 5
297 };
298
299 enum bnxt_ulp_index_tbl_opc {
300         BNXT_ULP_INDEX_TBL_OPC_NOT_USED = 0,
301         BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE = 1,
302         BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE = 2,
303         BNXT_ULP_INDEX_TBL_OPC_SRCH_ALLOC_WR_REGFILE = 3,
304         BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE = 4,
305         BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE = 5,
306         BNXT_ULP_INDEX_TBL_OPC_RD_REGFILE = 6,
307         BNXT_ULP_INDEX_TBL_OPC_LAST = 7
308 };
309
310 enum bnxt_ulp_mark_db_opc {
311         BNXT_ULP_MARK_DB_OPC_NOP = 0,
312         BNXT_ULP_MARK_DB_OPC_PUSH_IF_MARK_ACTION = 1,
313         BNXT_ULP_MARK_DB_OPC_PUSH_AND_SET_VFR_FLAG = 2,
314         BNXT_ULP_MARK_DB_OPC_LAST = 3
315 };
316
317 enum bnxt_ulp_match_type {
318         BNXT_ULP_MATCH_TYPE_EM = 0,
319         BNXT_ULP_MATCH_TYPE_WM = 1,
320         BNXT_ULP_MATCH_TYPE_LAST = 2
321 };
322
323 enum bnxt_ulp_mem_type_opc {
324         BNXT_ULP_MEM_TYPE_OPC_NOP = 0,
325         BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT = 1,
326         BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT = 2,
327         BNXT_ULP_MEM_TYPE_OPC_LAST = 3
328 };
329
330 enum bnxt_ulp_pri_opc {
331         BNXT_ULP_PRI_OPC_NOT_USED = 0,
332         BNXT_ULP_PRI_OPC_CONST = 1,
333         BNXT_ULP_PRI_OPC_APP_PRI = 2,
334         BNXT_ULP_PRI_OPC_LAST = 3
335 };
336
337 enum bnxt_ulp_rf_idx {
338         BNXT_ULP_RF_IDX_NOT_USED = 0,
339         BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 = 1,
340         BNXT_ULP_RF_IDX_L2_CNTXT_ID_1 = 2,
341         BNXT_ULP_RF_IDX_PROF_FUNC_ID_0 = 3,
342         BNXT_ULP_RF_IDX_PROF_FUNC_ID_1 = 4,
343         BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 = 5,
344         BNXT_ULP_RF_IDX_EM_PROFILE_ID_1 = 6,
345         BNXT_ULP_RF_IDX_WC_PROFILE_ID_0 = 7,
346         BNXT_ULP_RF_IDX_WC_PROFILE_ID_1 = 8,
347         BNXT_ULP_RF_IDX_MAIN_ACTION_PTR = 9,
348         BNXT_ULP_RF_IDX_ACTION_PTR_0 = 10,
349         BNXT_ULP_RF_IDX_ENCAP_PTR_0 = 11,
350         BNXT_ULP_RF_IDX_ENCAP_PTR_1 = 12,
351         BNXT_ULP_RF_IDX_CRITICAL_RESOURCE = 13,
352         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 = 14,
353         BNXT_ULP_RF_IDX_MAIN_SP_PTR = 15,
354         BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 = 16,
355         BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 = 17,
356         BNXT_ULP_RF_IDX_ACTION_REC_SIZE = 18,
357         BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 = 19,
358         BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_1 = 20,
359         BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0 = 21,
360         BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_1 = 22,
361         BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0 = 23,
362         BNXT_ULP_RF_IDX_WC_TCAM_INDEX_1 = 24,
363         BNXT_ULP_RF_IDX_SRC_PROPERTY_PTR = 25,
364         BNXT_ULP_RF_IDX_GENERIC_TBL_HIT = 26,
365         BNXT_ULP_RF_IDX_MIRROR_PTR_0 = 27,
366         BNXT_ULP_RF_IDX_HDR_SIG_ID = 28,
367         BNXT_ULP_RF_IDX_FLOW_SIG_ID = 29,
368         BNXT_ULP_RF_IDX_RID = 30,
369         BNXT_ULP_RF_IDX_LAST = 31
370 };
371
372 enum bnxt_ulp_tcam_tbl_opc {
373         BNXT_ULP_TCAM_TBL_OPC_NOT_USED = 0,
374         BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE = 1,
375         BNXT_ULP_TCAM_TBL_OPC_SRCH_ALLOC_WR_REGFILE = 2,
376         BNXT_ULP_TCAM_TBL_OPC_LAST = 3
377 };
378
379 enum bnxt_ulp_template_type {
380         BNXT_ULP_TEMPLATE_TYPE_CLASS = 0,
381         BNXT_ULP_TEMPLATE_TYPE_ACTION = 1,
382         BNXT_ULP_TEMPLATE_TYPE_LAST = 2
383 };
384
385 enum bnxt_ulp_fdb_resource_flags {
386         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_INGR = 0x00,
387         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_EGR = 0x01
388 };
389
390 enum bnxt_ulp_flow_dir_bitmask {
391         BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x0000000000000000,
392         BNXT_ULP_FLOW_DIR_BITMASK_EGR = 0x8000000000000000
393 };
394
395 enum bnxt_ulp_match_type_bitmask {
396         BNXT_ULP_MATCH_TYPE_BITMASK_EM = 0x0000000000000000,
397         BNXT_ULP_MATCH_TYPE_BITMASK_WM = 0x8000000000000000
398 };
399
400 enum bnxt_ulp_resource_func {
401         BNXT_ULP_RESOURCE_FUNC_INVALID = 0x00,
402         BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE = 0x20,
403         BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE = 0x40,
404         BNXT_ULP_RESOURCE_FUNC_RSVD2 = 0x60,
405         BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0x80,
406         BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 0x81,
407         BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE = 0x82,
408         BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 0x83,
409         BNXT_ULP_RESOURCE_FUNC_IF_TABLE = 0x84,
410         BNXT_ULP_RESOURCE_FUNC_HW_FID = 0x85,
411         BNXT_ULP_RESOURCE_FUNC_PARENT_FLOW = 0x86,
412         BNXT_ULP_RESOURCE_FUNC_CHILD_FLOW = 0x87
413 };
414
415 enum bnxt_ulp_resource_sub_type {
416         BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED = 0,
417         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL = 0,
418         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION = 1,
419         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT = 2,
420         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT_ACC = 3,
421         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_EXT_COUNT = 4,
422         BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM = 0,
423         BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM = 1,
424         BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MIRROR_TBL = 2
425 };
426
427 enum bnxt_ulp_act_prop_sz {
428         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ = 4,
429         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ = 4,
430         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ = 4,
431         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE = 4,
432         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM = 4,
433         BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE = 4,
434         BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM = 4,
435         BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM = 4,
436         BNXT_ULP_ACT_PROP_SZ_PORT_ID = 4,
437         BNXT_ULP_ACT_PROP_SZ_VNIC = 4,
438         BNXT_ULP_ACT_PROP_SZ_VPORT = 4,
439         BNXT_ULP_ACT_PROP_SZ_MARK = 4,
440         BNXT_ULP_ACT_PROP_SZ_COUNT = 4,
441         BNXT_ULP_ACT_PROP_SZ_METER = 4,
442         BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC = 8,
443         BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST = 8,
444         BNXT_ULP_ACT_PROP_SZ_PUSH_VLAN = 2,
445         BNXT_ULP_ACT_PROP_SZ_SET_VLAN_PCP = 1,
446         BNXT_ULP_ACT_PROP_SZ_SET_VLAN_VID = 2,
447         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC = 4,
448         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST = 4,
449         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC = 16,
450         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST = 16,
451         BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC = 2,
452         BNXT_ULP_ACT_PROP_SZ_SET_TP_DST = 2,
453         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0 = 4,
454         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1 = 4,
455         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2 = 4,
456         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3 = 4,
457         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4 = 4,
458         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5 = 4,
459         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6 = 4,
460         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7 = 4,
461         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC = 6,
462         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC = 6,
463         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG = 8,
464         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP = 32,
465         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
466         BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
467         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
468         BNXT_ULP_ACT_PROP_SZ_JUMP = 4,
469         BNXT_ULP_ACT_PROP_SZ_SHARED_HANDLE = 8,
470         BNXT_ULP_ACT_PROP_SZ_LAST = 4
471 };
472
473 enum bnxt_ulp_act_prop_idx {
474         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ = 0,
475         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ = 4,
476         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ = 8,
477         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE = 12,
478         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM = 16,
479         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE = 20,
480         BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM = 24,
481         BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM = 28,
482         BNXT_ULP_ACT_PROP_IDX_PORT_ID = 32,
483         BNXT_ULP_ACT_PROP_IDX_VNIC = 36,
484         BNXT_ULP_ACT_PROP_IDX_VPORT = 40,
485         BNXT_ULP_ACT_PROP_IDX_MARK = 44,
486         BNXT_ULP_ACT_PROP_IDX_COUNT = 48,
487         BNXT_ULP_ACT_PROP_IDX_METER = 52,
488         BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC = 56,
489         BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST = 64,
490         BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN = 72,
491         BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP = 74,
492         BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID = 75,
493         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC = 77,
494         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST = 81,
495         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC = 85,
496         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST = 101,
497         BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC = 117,
498         BNXT_ULP_ACT_PROP_IDX_SET_TP_DST = 119,
499         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0 = 121,
500         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1 = 125,
501         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2 = 129,
502         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3 = 133,
503         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4 = 137,
504         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5 = 141,
505         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6 = 145,
506         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7 = 149,
507         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC = 153,
508         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC = 159,
509         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG = 165,
510         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP = 173,
511         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 205,
512         BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 221,
513         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 225,
514         BNXT_ULP_ACT_PROP_IDX_JUMP = 257,
515         BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE = 261,
516         BNXT_ULP_ACT_PROP_IDX_LAST = 269
517 };
518
519 enum bnxt_ulp_wh_plus_sym {
520         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_IGNORE = 0,
521         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_L2 = 0,
522         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_0_IGNORE = 0,
523         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_0_L2 = 0,
524         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_1_IGNORE = 0,
525         BNXT_ULP_WH_PLUS_SYM_PKT_TYPE_1_L2 = 0,
526         BNXT_ULP_WH_PLUS_SYM_RECYCLE_CNT_IGNORE = 0,
527         BNXT_ULP_WH_PLUS_SYM_RECYCLE_CNT_ZERO = 0,
528         BNXT_ULP_WH_PLUS_SYM_RECYCLE_CNT_ONE = 1,
529         BNXT_ULP_WH_PLUS_SYM_RECYCLE_CNT_TWO = 2,
530         BNXT_ULP_WH_PLUS_SYM_RECYCLE_CNT_THREE = 3,
531         BNXT_ULP_WH_PLUS_SYM_AGG_ERROR_IGNORE = 0,
532         BNXT_ULP_WH_PLUS_SYM_AGG_ERROR_NO = 0,
533         BNXT_ULP_WH_PLUS_SYM_AGG_ERROR_YES = 1,
534         BNXT_ULP_WH_PLUS_SYM_RESERVED_IGNORE = 0,
535         BNXT_ULP_WH_PLUS_SYM_HREC_NEXT_IGNORE = 0,
536         BNXT_ULP_WH_PLUS_SYM_HREC_NEXT_NO = 0,
537         BNXT_ULP_WH_PLUS_SYM_HREC_NEXT_YES = 1,
538         BNXT_ULP_WH_PLUS_SYM_TL2_HDR_VALID_IGNORE = 0,
539         BNXT_ULP_WH_PLUS_SYM_TL2_HDR_VALID_NO = 0,
540         BNXT_ULP_WH_PLUS_SYM_TL2_HDR_VALID_YES = 1,
541         BNXT_ULP_WH_PLUS_SYM_TL2_HDR_TYPE_IGNORE = 0,
542         BNXT_ULP_WH_PLUS_SYM_TL2_HDR_TYPE_DIX = 0,
543         BNXT_ULP_WH_PLUS_SYM_TL2_UC_MC_BC_IGNORE = 0,
544         BNXT_ULP_WH_PLUS_SYM_TL2_UC_MC_BC_UC = 0,
545         BNXT_ULP_WH_PLUS_SYM_TL2_UC_MC_BC_MC = 2,
546         BNXT_ULP_WH_PLUS_SYM_TL2_UC_MC_BC_BC = 3,
547         BNXT_ULP_WH_PLUS_SYM_TL2_VTAG_PRESENT_IGNORE = 0,
548         BNXT_ULP_WH_PLUS_SYM_TL2_VTAG_PRESENT_NO = 0,
549         BNXT_ULP_WH_PLUS_SYM_TL2_VTAG_PRESENT_YES = 1,
550         BNXT_ULP_WH_PLUS_SYM_TL2_TWO_VTAGS_IGNORE = 0,
551         BNXT_ULP_WH_PLUS_SYM_TL2_TWO_VTAGS_NO = 0,
552         BNXT_ULP_WH_PLUS_SYM_TL2_TWO_VTAGS_YES = 1,
553         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_VALID_IGNORE = 0,
554         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_VALID_NO = 0,
555         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_VALID_YES = 1,
556         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ERROR_IGNORE = 0,
557         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ERROR_NO = 0,
558         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ERROR_YES = 1,
559         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_TYPE_IGNORE = 0,
560         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_TYPE_IPV4 = 0,
561         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_TYPE_IPV6 = 1,
562         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ISIP_IGNORE = 0,
563         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ISIP_NO = 0,
564         BNXT_ULP_WH_PLUS_SYM_TL3_HDR_ISIP_YES = 1,
565         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_SRC_IGNORE = 0,
566         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_SRC_NO = 0,
567         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_SRC_YES = 1,
568         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_DST_IGNORE = 0,
569         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_DST_NO = 0,
570         BNXT_ULP_WH_PLUS_SYM_TL3_IPV6_CMP_DST_YES = 1,
571         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_VALID_IGNORE = 0,
572         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_VALID_NO = 0,
573         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_VALID_YES = 1,
574         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_ERROR_IGNORE = 0,
575         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_ERROR_NO = 0,
576         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_ERROR_YES = 1,
577         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_IS_UDP_TCP_IGNORE = 0,
578         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_IS_UDP_TCP_NO = 0,
579         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_IS_UDP_TCP_YES = 1,
580         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_TYPE_IGNORE = 0,
581         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_TYPE_TCP = 0,
582         BNXT_ULP_WH_PLUS_SYM_TL4_HDR_TYPE_UDP = 1,
583         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_VALID_IGNORE = 0,
584         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_VALID_NO = 0,
585         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_VALID_YES = 1,
586         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_ERROR_IGNORE = 0,
587         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_ERROR_NO = 0,
588         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_ERROR_YES = 1,
589         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_IGNORE = 0,
590         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_VXLAN = 0,
591         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_GENEVE = 1,
592         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_NVGRE = 2,
593         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_GRE = 3,
594         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_IPV4 = 4,
595         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_IPV6 = 5,
596         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_PPPOE = 6,
597         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_MPLS = 7,
598         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_UPAR1 = 8,
599         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_UPAR2 = 9,
600         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_TYPE_NONE = 15,
601         BNXT_ULP_WH_PLUS_SYM_TUN_HDR_FLAGS_IGNORE = 0,
602         BNXT_ULP_WH_PLUS_SYM_L2_HDR_VALID_IGNORE = 0,
603         BNXT_ULP_WH_PLUS_SYM_L2_HDR_VALID_NO = 0,
604         BNXT_ULP_WH_PLUS_SYM_L2_HDR_VALID_YES = 1,
605         BNXT_ULP_WH_PLUS_SYM_L2_HDR_ERROR_IGNORE = 0,
606         BNXT_ULP_WH_PLUS_SYM_L2_HDR_ERROR_NO = 0,
607         BNXT_ULP_WH_PLUS_SYM_L2_HDR_ERROR_YES = 1,
608         BNXT_ULP_WH_PLUS_SYM_L2_HDR_TYPE_IGNORE = 0,
609         BNXT_ULP_WH_PLUS_SYM_L2_HDR_TYPE_DIX = 0,
610         BNXT_ULP_WH_PLUS_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
611         BNXT_ULP_WH_PLUS_SYM_L2_HDR_TYPE_LLC = 2,
612         BNXT_ULP_WH_PLUS_SYM_L2_UC_MC_BC_IGNORE = 0,
613         BNXT_ULP_WH_PLUS_SYM_L2_UC_MC_BC_UC = 0,
614         BNXT_ULP_WH_PLUS_SYM_L2_UC_MC_BC_MC = 2,
615         BNXT_ULP_WH_PLUS_SYM_L2_UC_MC_BC_BC = 3,
616         BNXT_ULP_WH_PLUS_SYM_L2_VTAG_PRESENT_IGNORE = 0,
617         BNXT_ULP_WH_PLUS_SYM_L2_VTAG_PRESENT_NO = 0,
618         BNXT_ULP_WH_PLUS_SYM_L2_VTAG_PRESENT_YES = 1,
619         BNXT_ULP_WH_PLUS_SYM_L2_TWO_VTAGS_IGNORE = 0,
620         BNXT_ULP_WH_PLUS_SYM_L2_TWO_VTAGS_NO = 0,
621         BNXT_ULP_WH_PLUS_SYM_L2_TWO_VTAGS_YES = 1,
622         BNXT_ULP_WH_PLUS_SYM_L3_HDR_VALID_IGNORE = 0,
623         BNXT_ULP_WH_PLUS_SYM_L3_HDR_VALID_NO = 0,
624         BNXT_ULP_WH_PLUS_SYM_L3_HDR_VALID_YES = 1,
625         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ERROR_IGNORE = 0,
626         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ERROR_NO = 0,
627         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ERROR_YES = 1,
628         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_IGNORE = 0,
629         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_IPV4 = 0,
630         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_IPV6 = 1,
631         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_ARP = 2,
632         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_PTP = 3,
633         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_EAPOL = 4,
634         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_ROCE = 5,
635         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_FCOE = 6,
636         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_UPAR1 = 7,
637         BNXT_ULP_WH_PLUS_SYM_L3_HDR_TYPE_UPAR2 = 8,
638         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ISIP_IGNORE = 0,
639         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ISIP_NO = 0,
640         BNXT_ULP_WH_PLUS_SYM_L3_HDR_ISIP_YES = 1,
641         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_SRC_IGNORE = 0,
642         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_SRC_NO = 0,
643         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_SRC_YES = 1,
644         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_DST_IGNORE = 0,
645         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_DST_NO = 0,
646         BNXT_ULP_WH_PLUS_SYM_L3_IPV6_CMP_DST_YES = 1,
647         BNXT_ULP_WH_PLUS_SYM_L4_HDR_VALID_IGNORE = 0,
648         BNXT_ULP_WH_PLUS_SYM_L4_HDR_VALID_NO = 0,
649         BNXT_ULP_WH_PLUS_SYM_L4_HDR_VALID_YES = 1,
650         BNXT_ULP_WH_PLUS_SYM_L4_HDR_ERROR_IGNORE = 0,
651         BNXT_ULP_WH_PLUS_SYM_L4_HDR_ERROR_NO = 0,
652         BNXT_ULP_WH_PLUS_SYM_L4_HDR_ERROR_YES = 1,
653         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_IGNORE = 0,
654         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_TCP = 0,
655         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_UDP = 1,
656         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_ICMP = 2,
657         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_UPAR1 = 3,
658         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_UPAR2 = 4,
659         BNXT_ULP_WH_PLUS_SYM_L4_HDR_TYPE_BTH_V1 = 5,
660         BNXT_ULP_WH_PLUS_SYM_L4_HDR_IS_UDP_TCP_IGNORE = 0,
661         BNXT_ULP_WH_PLUS_SYM_L4_HDR_IS_UDP_TCP_NO = 0,
662         BNXT_ULP_WH_PLUS_SYM_L4_HDR_IS_UDP_TCP_YES = 1,
663         BNXT_ULP_WH_PLUS_SYM_POP_VLAN_NO = 0,
664         BNXT_ULP_WH_PLUS_SYM_POP_VLAN_YES = 1,
665         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_NONE = 0,
666         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_TL2 = 3,
667         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_TL3 = 8,
668         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_TL4 = 9,
669         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_TUN = 10,
670         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_L2 = 11,
671         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_L3 = 12,
672         BNXT_ULP_WH_PLUS_SYM_DECAP_FUNC_THRU_L4 = 13,
673         BNXT_ULP_WH_PLUS_SYM_ECV_VALID_NO = 0,
674         BNXT_ULP_WH_PLUS_SYM_ECV_VALID_YES = 1,
675         BNXT_ULP_WH_PLUS_SYM_ECV_CUSTOM_EN_NO = 0,
676         BNXT_ULP_WH_PLUS_SYM_ECV_CUSTOM_EN_YES = 1,
677         BNXT_ULP_WH_PLUS_SYM_ECV_L2_EN_NO = 0,
678         BNXT_ULP_WH_PLUS_SYM_ECV_L2_EN_YES = 1,
679         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_NOP = 0,
680         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI = 1,
681         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_1_IVLAN_PRI = 2,
682         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_1_REMAP_DIFFSERV = 3,
683         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_2_ENCAP_PRI = 4,
684         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_2_REMAP_DIFFSERV = 5,
685         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_ENCAP_PRI = 6,
686         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_REMAP_DIFFSERV = 7,
687         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_0 = 8,
688         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_1 = 8,
689         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_2 = 8,
690         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_3 = 8,
691         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_4 = 8,
692         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_5 = 8,
693         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_6 = 8,
694         BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_0_PRI_7 = 8,
695         BNXT_ULP_WH_PLUS_SYM_ECV_L3_TYPE_NONE = 0,
696         BNXT_ULP_WH_PLUS_SYM_ECV_L3_TYPE_IPV4 = 4,
697         BNXT_ULP_WH_PLUS_SYM_ECV_L3_TYPE_IPV6 = 5,
698         BNXT_ULP_WH_PLUS_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
699         BNXT_ULP_WH_PLUS_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
700         BNXT_ULP_WH_PLUS_SYM_ECV_L4_TYPE_NONE = 0,
701         BNXT_ULP_WH_PLUS_SYM_ECV_L4_TYPE_UDP = 4,
702         BNXT_ULP_WH_PLUS_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
703         BNXT_ULP_WH_PLUS_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
704         BNXT_ULP_WH_PLUS_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
705         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_NONE = 0,
706         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_GENERIC = 1,
707         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_VXLAN = 2,
708         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_NGE = 3,
709         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_NVGRE = 4,
710         BNXT_ULP_WH_PLUS_SYM_ECV_TUN_TYPE_GRE = 5,
711         BNXT_ULP_WH_PLUS_SYM_EEM_ACT_REC_INT = 1,
712         BNXT_ULP_WH_PLUS_SYM_EEM_EXT_FLOW_CNTR = 0,
713         BNXT_ULP_WH_PLUS_SYM_UC_ACT_REC = 0,
714         BNXT_ULP_WH_PLUS_SYM_MC_ACT_REC = 1,
715         BNXT_ULP_WH_PLUS_SYM_ACT_REC_DROP_YES = 1,
716         BNXT_ULP_WH_PLUS_SYM_ACT_REC_DROP_NO = 0,
717         BNXT_ULP_WH_PLUS_SYM_ACT_REC_POP_VLAN_YES = 1,
718         BNXT_ULP_WH_PLUS_SYM_ACT_REC_POP_VLAN_NO = 0,
719         BNXT_ULP_WH_PLUS_SYM_ACT_REC_METER_EN_YES = 1,
720         BNXT_ULP_WH_PLUS_SYM_ACT_REC_METER_EN_NO = 0,
721         BNXT_ULP_WH_PLUS_SYM_LOOPBACK_PORT = 4,
722         BNXT_ULP_WH_PLUS_SYM_LOOPBACK_PARIF = 15,
723         BNXT_ULP_WH_PLUS_SYM_EXT_EM_MAX_KEY_SIZE = 448,
724         BNXT_ULP_WH_PLUS_SYM_MATCH_TYPE_EM = 0,
725         BNXT_ULP_WH_PLUS_SYM_MATCH_TYPE_WM = 1,
726         BNXT_ULP_WH_PLUS_SYM_IP_PROTO_ICMP = 1,
727         BNXT_ULP_WH_PLUS_SYM_IP_PROTO_IGMP = 2,
728         BNXT_ULP_WH_PLUS_SYM_IP_PROTO_IP_IN_IP = 4,
729         BNXT_ULP_WH_PLUS_SYM_IP_PROTO_TCP = 6,
730         BNXT_ULP_WH_PLUS_SYM_IP_PROTO_UDP = 17,
731         BNXT_ULP_WH_PLUS_SYM_VF_FUNC_PARIF = 15,
732         BNXT_ULP_WH_PLUS_SYM_NO = 0,
733         BNXT_ULP_WH_PLUS_SYM_YES = 1,
734         BNXT_ULP_WH_PLUS_SYM_RECYCLE_DST = 0x800
735 };
736
737 enum bnxt_ulp_stingray_sym {
738         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_IGNORE = 0,
739         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_L2 = 0,
740         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_0_IGNORE = 0,
741         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_0_L2 = 0,
742         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_1_IGNORE = 0,
743         BNXT_ULP_STINGRAY_SYM_PKT_TYPE_1_L2 = 0,
744         BNXT_ULP_STINGRAY_SYM_RECYCLE_CNT_IGNORE = 0,
745         BNXT_ULP_STINGRAY_SYM_RECYCLE_CNT_ZERO = 0,
746         BNXT_ULP_STINGRAY_SYM_RECYCLE_CNT_ONE = 1,
747         BNXT_ULP_STINGRAY_SYM_RECYCLE_CNT_TWO = 2,
748         BNXT_ULP_STINGRAY_SYM_RECYCLE_CNT_THREE = 3,
749         BNXT_ULP_STINGRAY_SYM_AGG_ERROR_IGNORE = 0,
750         BNXT_ULP_STINGRAY_SYM_AGG_ERROR_NO = 0,
751         BNXT_ULP_STINGRAY_SYM_AGG_ERROR_YES = 1,
752         BNXT_ULP_STINGRAY_SYM_RESERVED_IGNORE = 0,
753         BNXT_ULP_STINGRAY_SYM_HREC_NEXT_IGNORE = 0,
754         BNXT_ULP_STINGRAY_SYM_HREC_NEXT_NO = 0,
755         BNXT_ULP_STINGRAY_SYM_HREC_NEXT_YES = 1,
756         BNXT_ULP_STINGRAY_SYM_TL2_HDR_VALID_IGNORE = 0,
757         BNXT_ULP_STINGRAY_SYM_TL2_HDR_VALID_NO = 0,
758         BNXT_ULP_STINGRAY_SYM_TL2_HDR_VALID_YES = 1,
759         BNXT_ULP_STINGRAY_SYM_TL2_HDR_TYPE_IGNORE = 0,
760         BNXT_ULP_STINGRAY_SYM_TL2_HDR_TYPE_DIX = 0,
761         BNXT_ULP_STINGRAY_SYM_TL2_UC_MC_BC_IGNORE = 0,
762         BNXT_ULP_STINGRAY_SYM_TL2_UC_MC_BC_UC = 0,
763         BNXT_ULP_STINGRAY_SYM_TL2_UC_MC_BC_MC = 2,
764         BNXT_ULP_STINGRAY_SYM_TL2_UC_MC_BC_BC = 3,
765         BNXT_ULP_STINGRAY_SYM_TL2_VTAG_PRESENT_IGNORE = 0,
766         BNXT_ULP_STINGRAY_SYM_TL2_VTAG_PRESENT_NO = 0,
767         BNXT_ULP_STINGRAY_SYM_TL2_VTAG_PRESENT_YES = 1,
768         BNXT_ULP_STINGRAY_SYM_TL2_TWO_VTAGS_IGNORE = 0,
769         BNXT_ULP_STINGRAY_SYM_TL2_TWO_VTAGS_NO = 0,
770         BNXT_ULP_STINGRAY_SYM_TL2_TWO_VTAGS_YES = 1,
771         BNXT_ULP_STINGRAY_SYM_TL3_HDR_VALID_IGNORE = 0,
772         BNXT_ULP_STINGRAY_SYM_TL3_HDR_VALID_NO = 0,
773         BNXT_ULP_STINGRAY_SYM_TL3_HDR_VALID_YES = 1,
774         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ERROR_IGNORE = 0,
775         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ERROR_NO = 0,
776         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ERROR_YES = 1,
777         BNXT_ULP_STINGRAY_SYM_TL3_HDR_TYPE_IGNORE = 0,
778         BNXT_ULP_STINGRAY_SYM_TL3_HDR_TYPE_IPV4 = 0,
779         BNXT_ULP_STINGRAY_SYM_TL3_HDR_TYPE_IPV6 = 1,
780         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ISIP_IGNORE = 0,
781         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ISIP_NO = 0,
782         BNXT_ULP_STINGRAY_SYM_TL3_HDR_ISIP_YES = 1,
783         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_SRC_IGNORE = 0,
784         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_SRC_NO = 0,
785         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_SRC_YES = 1,
786         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_DST_IGNORE = 0,
787         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_DST_NO = 0,
788         BNXT_ULP_STINGRAY_SYM_TL3_IPV6_CMP_DST_YES = 1,
789         BNXT_ULP_STINGRAY_SYM_TL4_HDR_VALID_IGNORE = 0,
790         BNXT_ULP_STINGRAY_SYM_TL4_HDR_VALID_NO = 0,
791         BNXT_ULP_STINGRAY_SYM_TL4_HDR_VALID_YES = 1,
792         BNXT_ULP_STINGRAY_SYM_TL4_HDR_ERROR_IGNORE = 0,
793         BNXT_ULP_STINGRAY_SYM_TL4_HDR_ERROR_NO = 0,
794         BNXT_ULP_STINGRAY_SYM_TL4_HDR_ERROR_YES = 1,
795         BNXT_ULP_STINGRAY_SYM_TL4_HDR_IS_UDP_TCP_IGNORE = 0,
796         BNXT_ULP_STINGRAY_SYM_TL4_HDR_IS_UDP_TCP_NO = 0,
797         BNXT_ULP_STINGRAY_SYM_TL4_HDR_IS_UDP_TCP_YES = 1,
798         BNXT_ULP_STINGRAY_SYM_TL4_HDR_TYPE_IGNORE = 0,
799         BNXT_ULP_STINGRAY_SYM_TL4_HDR_TYPE_TCP = 0,
800         BNXT_ULP_STINGRAY_SYM_TL4_HDR_TYPE_UDP = 1,
801         BNXT_ULP_STINGRAY_SYM_TUN_HDR_VALID_IGNORE = 0,
802         BNXT_ULP_STINGRAY_SYM_TUN_HDR_VALID_NO = 0,
803         BNXT_ULP_STINGRAY_SYM_TUN_HDR_VALID_YES = 1,
804         BNXT_ULP_STINGRAY_SYM_TUN_HDR_ERROR_IGNORE = 0,
805         BNXT_ULP_STINGRAY_SYM_TUN_HDR_ERROR_NO = 0,
806         BNXT_ULP_STINGRAY_SYM_TUN_HDR_ERROR_YES = 1,
807         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_IGNORE = 0,
808         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_VXLAN = 0,
809         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_GENEVE = 1,
810         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_NVGRE = 2,
811         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_GRE = 3,
812         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_IPV4 = 4,
813         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_IPV6 = 5,
814         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_PPPOE = 6,
815         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_MPLS = 7,
816         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_UPAR1 = 8,
817         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_UPAR2 = 9,
818         BNXT_ULP_STINGRAY_SYM_TUN_HDR_TYPE_NONE = 15,
819         BNXT_ULP_STINGRAY_SYM_TUN_HDR_FLAGS_IGNORE = 0,
820         BNXT_ULP_STINGRAY_SYM_L2_HDR_VALID_IGNORE = 0,
821         BNXT_ULP_STINGRAY_SYM_L2_HDR_VALID_NO = 0,
822         BNXT_ULP_STINGRAY_SYM_L2_HDR_VALID_YES = 1,
823         BNXT_ULP_STINGRAY_SYM_L2_HDR_ERROR_IGNORE = 0,
824         BNXT_ULP_STINGRAY_SYM_L2_HDR_ERROR_NO = 0,
825         BNXT_ULP_STINGRAY_SYM_L2_HDR_ERROR_YES = 1,
826         BNXT_ULP_STINGRAY_SYM_L2_HDR_TYPE_IGNORE = 0,
827         BNXT_ULP_STINGRAY_SYM_L2_HDR_TYPE_DIX = 0,
828         BNXT_ULP_STINGRAY_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
829         BNXT_ULP_STINGRAY_SYM_L2_HDR_TYPE_LLC = 2,
830         BNXT_ULP_STINGRAY_SYM_L2_UC_MC_BC_IGNORE = 0,
831         BNXT_ULP_STINGRAY_SYM_L2_UC_MC_BC_UC = 0,
832         BNXT_ULP_STINGRAY_SYM_L2_UC_MC_BC_MC = 2,
833         BNXT_ULP_STINGRAY_SYM_L2_UC_MC_BC_BC = 3,
834         BNXT_ULP_STINGRAY_SYM_L2_VTAG_PRESENT_IGNORE = 0,
835         BNXT_ULP_STINGRAY_SYM_L2_VTAG_PRESENT_NO = 0,
836         BNXT_ULP_STINGRAY_SYM_L2_VTAG_PRESENT_YES = 1,
837         BNXT_ULP_STINGRAY_SYM_L2_TWO_VTAGS_IGNORE = 0,
838         BNXT_ULP_STINGRAY_SYM_L2_TWO_VTAGS_NO = 0,
839         BNXT_ULP_STINGRAY_SYM_L2_TWO_VTAGS_YES = 1,
840         BNXT_ULP_STINGRAY_SYM_L3_HDR_VALID_IGNORE = 0,
841         BNXT_ULP_STINGRAY_SYM_L3_HDR_VALID_NO = 0,
842         BNXT_ULP_STINGRAY_SYM_L3_HDR_VALID_YES = 1,
843         BNXT_ULP_STINGRAY_SYM_L3_HDR_ERROR_IGNORE = 0,
844         BNXT_ULP_STINGRAY_SYM_L3_HDR_ERROR_NO = 0,
845         BNXT_ULP_STINGRAY_SYM_L3_HDR_ERROR_YES = 1,
846         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_IGNORE = 0,
847         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_IPV4 = 0,
848         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_IPV6 = 1,
849         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_ARP = 2,
850         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_PTP = 3,
851         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_EAPOL = 4,
852         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_ROCE = 5,
853         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_FCOE = 6,
854         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_UPAR1 = 7,
855         BNXT_ULP_STINGRAY_SYM_L3_HDR_TYPE_UPAR2 = 8,
856         BNXT_ULP_STINGRAY_SYM_L3_HDR_ISIP_IGNORE = 0,
857         BNXT_ULP_STINGRAY_SYM_L3_HDR_ISIP_NO = 0,
858         BNXT_ULP_STINGRAY_SYM_L3_HDR_ISIP_YES = 1,
859         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_SRC_IGNORE = 0,
860         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_SRC_NO = 0,
861         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_SRC_YES = 1,
862         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_DST_IGNORE = 0,
863         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_DST_NO = 0,
864         BNXT_ULP_STINGRAY_SYM_L3_IPV6_CMP_DST_YES = 1,
865         BNXT_ULP_STINGRAY_SYM_L4_HDR_VALID_IGNORE = 0,
866         BNXT_ULP_STINGRAY_SYM_L4_HDR_VALID_NO = 0,
867         BNXT_ULP_STINGRAY_SYM_L4_HDR_VALID_YES = 1,
868         BNXT_ULP_STINGRAY_SYM_L4_HDR_ERROR_IGNORE = 0,
869         BNXT_ULP_STINGRAY_SYM_L4_HDR_ERROR_NO = 0,
870         BNXT_ULP_STINGRAY_SYM_L4_HDR_ERROR_YES = 1,
871         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_IGNORE = 0,
872         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_TCP = 0,
873         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_UDP = 1,
874         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_ICMP = 2,
875         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_UPAR1 = 3,
876         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_UPAR2 = 4,
877         BNXT_ULP_STINGRAY_SYM_L4_HDR_TYPE_BTH_V1 = 5,
878         BNXT_ULP_STINGRAY_SYM_L4_HDR_IS_UDP_TCP_IGNORE = 0,
879         BNXT_ULP_STINGRAY_SYM_L4_HDR_IS_UDP_TCP_NO = 0,
880         BNXT_ULP_STINGRAY_SYM_L4_HDR_IS_UDP_TCP_YES = 1,
881         BNXT_ULP_STINGRAY_SYM_POP_VLAN_NO = 0,
882         BNXT_ULP_STINGRAY_SYM_POP_VLAN_YES = 1,
883         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_NONE = 0,
884         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_TL2 = 3,
885         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_TL3 = 8,
886         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_TL4 = 9,
887         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_TUN = 10,
888         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_L2 = 11,
889         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_L3 = 12,
890         BNXT_ULP_STINGRAY_SYM_DECAP_FUNC_THRU_L4 = 13,
891         BNXT_ULP_STINGRAY_SYM_ECV_VALID_NO = 0,
892         BNXT_ULP_STINGRAY_SYM_ECV_VALID_YES = 1,
893         BNXT_ULP_STINGRAY_SYM_ECV_CUSTOM_EN_NO = 0,
894         BNXT_ULP_STINGRAY_SYM_ECV_CUSTOM_EN_YES = 1,
895         BNXT_ULP_STINGRAY_SYM_ECV_L2_EN_NO = 0,
896         BNXT_ULP_STINGRAY_SYM_ECV_L2_EN_YES = 1,
897         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_NOP = 0,
898         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI = 1,
899         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_1_IVLAN_PRI = 2,
900         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_1_REMAP_DIFFSERV = 3,
901         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_2_ENCAP_PRI = 4,
902         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_2_REMAP_DIFFSERV = 5,
903         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_ENCAP_PRI = 6,
904         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_REMAP_DIFFSERV = 7,
905         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_0 = 8,
906         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_1 = 8,
907         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_2 = 8,
908         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_3 = 8,
909         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_4 = 8,
910         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_5 = 8,
911         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_6 = 8,
912         BNXT_ULP_STINGRAY_SYM_ECV_VTAG_TYPE_ADD_0_PRI_7 = 8,
913         BNXT_ULP_STINGRAY_SYM_ECV_L3_TYPE_NONE = 0,
914         BNXT_ULP_STINGRAY_SYM_ECV_L3_TYPE_IPV4 = 4,
915         BNXT_ULP_STINGRAY_SYM_ECV_L3_TYPE_IPV6 = 5,
916         BNXT_ULP_STINGRAY_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
917         BNXT_ULP_STINGRAY_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
918         BNXT_ULP_STINGRAY_SYM_ECV_L4_TYPE_NONE = 0,
919         BNXT_ULP_STINGRAY_SYM_ECV_L4_TYPE_UDP = 4,
920         BNXT_ULP_STINGRAY_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
921         BNXT_ULP_STINGRAY_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
922         BNXT_ULP_STINGRAY_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
923         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_NONE = 0,
924         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_GENERIC = 1,
925         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_VXLAN = 2,
926         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_NGE = 3,
927         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_NVGRE = 4,
928         BNXT_ULP_STINGRAY_SYM_ECV_TUN_TYPE_GRE = 5,
929         BNXT_ULP_STINGRAY_SYM_EEM_ACT_REC_INT = 0,
930         BNXT_ULP_STINGRAY_SYM_EEM_EXT_FLOW_CNTR = 1,
931         BNXT_ULP_STINGRAY_SYM_UC_ACT_REC = 0,
932         BNXT_ULP_STINGRAY_SYM_MC_ACT_REC = 1,
933         BNXT_ULP_STINGRAY_SYM_ACT_REC_DROP_YES = 1,
934         BNXT_ULP_STINGRAY_SYM_ACT_REC_DROP_NO = 0,
935         BNXT_ULP_STINGRAY_SYM_ACT_REC_POP_VLAN_YES = 1,
936         BNXT_ULP_STINGRAY_SYM_ACT_REC_POP_VLAN_NO = 0,
937         BNXT_ULP_STINGRAY_SYM_ACT_REC_METER_EN_YES = 1,
938         BNXT_ULP_STINGRAY_SYM_ACT_REC_METER_EN_NO = 0,
939         BNXT_ULP_STINGRAY_SYM_LOOPBACK_PORT = 16,
940         BNXT_ULP_STINGRAY_SYM_LOOPBACK_PARIF = 15,
941         BNXT_ULP_STINGRAY_SYM_EXT_EM_MAX_KEY_SIZE = 448,
942         BNXT_ULP_STINGRAY_SYM_MATCH_TYPE_EM = 0,
943         BNXT_ULP_STINGRAY_SYM_MATCH_TYPE_WM = 1,
944         BNXT_ULP_STINGRAY_SYM_IP_PROTO_ICMP = 1,
945         BNXT_ULP_STINGRAY_SYM_IP_PROTO_IGMP = 2,
946         BNXT_ULP_STINGRAY_SYM_IP_PROTO_IP_IN_IP = 4,
947         BNXT_ULP_STINGRAY_SYM_IP_PROTO_TCP = 6,
948         BNXT_ULP_STINGRAY_SYM_IP_PROTO_UDP = 17,
949         BNXT_ULP_STINGRAY_SYM_VF_FUNC_PARIF = 15,
950         BNXT_ULP_STINGRAY_SYM_NO = 0,
951         BNXT_ULP_STINGRAY_SYM_YES = 1,
952         BNXT_ULP_STINGRAY_SYM_RECYCLE_DST = 0x800
953 };
954
955 enum bnxt_ulp_class_hid {
956         BNXT_ULP_CLASS_HID_00fc = 0x00fc,
957         BNXT_ULP_CLASS_HID_0046 = 0x0046,
958         BNXT_ULP_CLASS_HID_0056 = 0x0056,
959         BNXT_ULP_CLASS_HID_00b8 = 0x00b8,
960         BNXT_ULP_CLASS_HID_0041 = 0x0041,
961         BNXT_ULP_CLASS_HID_00ab = 0x00ab,
962         BNXT_ULP_CLASS_HID_0053 = 0x0053,
963         BNXT_ULP_CLASS_HID_00a5 = 0x00a5,
964         BNXT_ULP_CLASS_HID_0069 = 0x0069,
965         BNXT_ULP_CLASS_HID_009d = 0x009d,
966         BNXT_ULP_CLASS_HID_0005 = 0x0005,
967         BNXT_ULP_CLASS_HID_006f = 0x006f,
968         BNXT_ULP_CLASS_HID_00af = 0x00af,
969         BNXT_ULP_CLASS_HID_00d3 = 0x00d3,
970         BNXT_ULP_CLASS_HID_005b = 0x005b,
971         BNXT_ULP_CLASS_HID_00ad = 0x00ad,
972         BNXT_ULP_CLASS_HID_0091 = 0x0091,
973         BNXT_ULP_CLASS_HID_00fb = 0x00fb,
974         BNXT_ULP_CLASS_HID_0063 = 0x0063,
975         BNXT_ULP_CLASS_HID_0097 = 0x0097,
976         BNXT_ULP_CLASS_HID_00cc = 0x00cc,
977         BNXT_ULP_CLASS_HID_00f0 = 0x00f0,
978         BNXT_ULP_CLASS_HID_00c0 = 0x00c0,
979         BNXT_ULP_CLASS_HID_002a = 0x002a,
980         BNXT_ULP_CLASS_HID_00c7 = 0x00c7,
981         BNXT_ULP_CLASS_HID_0029 = 0x0029,
982         BNXT_ULP_CLASS_HID_00d1 = 0x00d1,
983         BNXT_ULP_CLASS_HID_003b = 0x003b,
984         BNXT_ULP_CLASS_HID_00ef = 0x00ef,
985         BNXT_ULP_CLASS_HID_0013 = 0x0013,
986         BNXT_ULP_CLASS_HID_009b = 0x009b,
987         BNXT_ULP_CLASS_HID_00ed = 0x00ed,
988         BNXT_ULP_CLASS_HID_002d = 0x002d,
989         BNXT_ULP_CLASS_HID_0051 = 0x0051,
990         BNXT_ULP_CLASS_HID_00d9 = 0x00d9,
991         BNXT_ULP_CLASS_HID_0023 = 0x0023,
992         BNXT_ULP_CLASS_HID_0017 = 0x0017,
993         BNXT_ULP_CLASS_HID_0079 = 0x0079,
994         BNXT_ULP_CLASS_HID_00e1 = 0x00e1,
995         BNXT_ULP_CLASS_HID_0015 = 0x0015
996 };
997
998 enum bnxt_ulp_act_hid {
999         BNXT_ULP_ACT_HID_0000 = 0x0000,
1000         BNXT_ULP_ACT_HID_0001 = 0x0001,
1001         BNXT_ULP_ACT_HID_0400 = 0x0400,
1002         BNXT_ULP_ACT_HID_0331 = 0x0331,
1003         BNXT_ULP_ACT_HID_0010 = 0x0010,
1004         BNXT_ULP_ACT_HID_0731 = 0x0731,
1005         BNXT_ULP_ACT_HID_0341 = 0x0341,
1006         BNXT_ULP_ACT_HID_0002 = 0x0002,
1007         BNXT_ULP_ACT_HID_0003 = 0x0003,
1008         BNXT_ULP_ACT_HID_0402 = 0x0402,
1009         BNXT_ULP_ACT_HID_0333 = 0x0333,
1010         BNXT_ULP_ACT_HID_0012 = 0x0012,
1011         BNXT_ULP_ACT_HID_0733 = 0x0733,
1012         BNXT_ULP_ACT_HID_0343 = 0x0343
1013 };
1014
1015 enum bnxt_ulp_df_tpl {
1016         BNXT_ULP_DF_TPL_PORT_TO_VS = 3,
1017         BNXT_ULP_DF_TPL_VS_TO_PORT = 4,
1018         BNXT_ULP_DF_TPL_VFREP_TO_VF = 5,
1019         BNXT_ULP_DF_TPL_VF_TO_VFREP = 6,
1020         BNXT_ULP_DF_TPL_LOOPBACK_ACTION_REC = 7
1021 };
1022
1023 #endif