1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2020 Broadcom
6 #ifndef ULP_TEMPLATE_DB_H_
7 #define ULP_TEMPLATE_DB_H_
9 #define BNXT_ULP_REGFILE_MAX_SZ 16
10 #define BNXT_ULP_MAX_NUM_DEVICES 4
11 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2
12 #define BNXT_ULP_CACHE_TBL_MAX_SZ 4
13 #define BNXT_ULP_CLASS_SIG_TBL_MAX_SZ 256
14 #define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 4
15 #define BNXT_ULP_CLASS_HID_LOW_PRIME 7919
16 #define BNXT_ULP_CLASS_HID_HIGH_PRIME 7907
17 #define BNXT_ULP_CLASS_HID_SHFTR 16
18 #define BNXT_ULP_CLASS_HID_SHFTL 23
19 #define BNXT_ULP_CLASS_HID_MASK 255
20 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 256
21 #define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 4
22 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
23 #define BNXT_ULP_ACT_HID_HIGH_PRIME 7919
24 #define BNXT_ULP_ACT_HID_SHFTR 0
25 #define BNXT_ULP_ACT_HID_SHFTL 23
26 #define BNXT_ULP_ACT_HID_MASK 255
27 #define BNXT_ULP_CACHE_TBL_IDENT_MAX_NUM 2
28 #define BNXT_ULP_GLB_RESOURCE_INFO_TBL_MAX_SZ 3
29 #define BNXT_ULP_GLB_TEMPLATE_TBL_MAX_SZ 0
31 enum bnxt_ulp_action_bit {
32 BNXT_ULP_ACTION_BIT_MARK = 0x0000000000000001,
33 BNXT_ULP_ACTION_BIT_DROP = 0x0000000000000002,
34 BNXT_ULP_ACTION_BIT_COUNT = 0x0000000000000004,
35 BNXT_ULP_ACTION_BIT_RSS = 0x0000000000000008,
36 BNXT_ULP_ACTION_BIT_METER = 0x0000000000000010,
37 BNXT_ULP_ACTION_BIT_VNIC = 0x0000000000000020,
38 BNXT_ULP_ACTION_BIT_VPORT = 0x0000000000000040,
39 BNXT_ULP_ACTION_BIT_VXLAN_DECAP = 0x0000000000000080,
40 BNXT_ULP_ACTION_BIT_NVGRE_DECAP = 0x0000000000000100,
41 BNXT_ULP_ACTION_BIT_POP_MPLS = 0x0000000000000200,
42 BNXT_ULP_ACTION_BIT_PUSH_MPLS = 0x0000000000000400,
43 BNXT_ULP_ACTION_BIT_MAC_SWAP = 0x0000000000000800,
44 BNXT_ULP_ACTION_BIT_SET_MAC_SRC = 0x0000000000001000,
45 BNXT_ULP_ACTION_BIT_SET_MAC_DST = 0x0000000000002000,
46 BNXT_ULP_ACTION_BIT_POP_VLAN = 0x0000000000004000,
47 BNXT_ULP_ACTION_BIT_PUSH_VLAN = 0x0000000000008000,
48 BNXT_ULP_ACTION_BIT_SET_VLAN_PCP = 0x0000000000010000,
49 BNXT_ULP_ACTION_BIT_SET_VLAN_VID = 0x0000000000020000,
50 BNXT_ULP_ACTION_BIT_SET_IPV4_SRC = 0x0000000000040000,
51 BNXT_ULP_ACTION_BIT_SET_IPV4_DST = 0x0000000000080000,
52 BNXT_ULP_ACTION_BIT_SET_IPV6_SRC = 0x0000000000100000,
53 BNXT_ULP_ACTION_BIT_SET_IPV6_DST = 0x0000000000200000,
54 BNXT_ULP_ACTION_BIT_DEC_TTL = 0x0000000000400000,
55 BNXT_ULP_ACTION_BIT_SET_TP_SRC = 0x0000000000800000,
56 BNXT_ULP_ACTION_BIT_SET_TP_DST = 0x0000000001000000,
57 BNXT_ULP_ACTION_BIT_VXLAN_ENCAP = 0x0000000002000000,
58 BNXT_ULP_ACTION_BIT_NVGRE_ENCAP = 0x0000000004000000,
59 BNXT_ULP_ACTION_BIT_LAST = 0x0000000008000000
62 enum bnxt_ulp_hdr_bit {
63 BNXT_ULP_HDR_BIT_O_ETH = 0x0000000000000001,
64 BNXT_ULP_HDR_BIT_O_IPV4 = 0x0000000000000002,
65 BNXT_ULP_HDR_BIT_O_IPV6 = 0x0000000000000004,
66 BNXT_ULP_HDR_BIT_O_TCP = 0x0000000000000008,
67 BNXT_ULP_HDR_BIT_O_UDP = 0x0000000000000010,
68 BNXT_ULP_HDR_BIT_T_VXLAN = 0x0000000000000020,
69 BNXT_ULP_HDR_BIT_T_GRE = 0x0000000000000040,
70 BNXT_ULP_HDR_BIT_I_ETH = 0x0000000000000080,
71 BNXT_ULP_HDR_BIT_I_IPV4 = 0x0000000000000100,
72 BNXT_ULP_HDR_BIT_I_IPV6 = 0x0000000000000200,
73 BNXT_ULP_HDR_BIT_I_TCP = 0x0000000000000400,
74 BNXT_ULP_HDR_BIT_I_UDP = 0x0000000000000800,
75 BNXT_ULP_HDR_BIT_LAST = 0x0000000000001000
78 enum bnxt_ulp_act_type {
79 BNXT_ULP_ACT_TYPE_NOT_SUPPORTED = 0,
80 BNXT_ULP_ACT_TYPE_SUPPORTED = 1,
81 BNXT_ULP_ACT_TYPE_END = 2,
82 BNXT_ULP_ACT_TYPE_LAST = 3
85 enum bnxt_ulp_byte_order {
86 BNXT_ULP_BYTE_ORDER_BE = 0,
87 BNXT_ULP_BYTE_ORDER_LE = 1,
88 BNXT_ULP_BYTE_ORDER_LAST = 2
91 enum bnxt_ulp_cf_idx {
92 BNXT_ULP_CF_IDX_NOT_USED = 0,
93 BNXT_ULP_CF_IDX_MPLS_TAG_NUM = 1,
94 BNXT_ULP_CF_IDX_O_VTAG_NUM = 2,
95 BNXT_ULP_CF_IDX_O_VTAG_PRESENT = 3,
96 BNXT_ULP_CF_IDX_O_TWO_VTAGS = 4,
97 BNXT_ULP_CF_IDX_I_VTAG_NUM = 5,
98 BNXT_ULP_CF_IDX_I_VTAG_PRESENT = 6,
99 BNXT_ULP_CF_IDX_I_TWO_VTAGS = 7,
100 BNXT_ULP_CF_IDX_INCOMING_IF = 8,
101 BNXT_ULP_CF_IDX_DIRECTION = 9,
102 BNXT_ULP_CF_IDX_SVIF_FLAG = 10,
103 BNXT_ULP_CF_IDX_O_L3 = 11,
104 BNXT_ULP_CF_IDX_I_L3 = 12,
105 BNXT_ULP_CF_IDX_O_L4 = 13,
106 BNXT_ULP_CF_IDX_I_L4 = 14,
107 BNXT_ULP_CF_IDX_DEV_PORT_ID = 15,
108 BNXT_ULP_CF_IDX_DRV_FUNC_SVIF = 16,
109 BNXT_ULP_CF_IDX_DRV_FUNC_SPIF = 17,
110 BNXT_ULP_CF_IDX_DRV_FUNC_PARIF = 18,
111 BNXT_ULP_CF_IDX_DRV_FUNC_VNIC = 19,
112 BNXT_ULP_CF_IDX_DRV_FUNC_PHY_PORT = 20,
113 BNXT_ULP_CF_IDX_VF_FUNC_SVIF = 21,
114 BNXT_ULP_CF_IDX_VF_FUNC_SPIF = 22,
115 BNXT_ULP_CF_IDX_VF_FUNC_PARIF = 23,
116 BNXT_ULP_CF_IDX_VF_FUNC_VNIC = 24,
117 BNXT_ULP_CF_IDX_PHY_PORT_SVIF = 25,
118 BNXT_ULP_CF_IDX_PHY_PORT_SPIF = 26,
119 BNXT_ULP_CF_IDX_PHY_PORT_PARIF = 27,
120 BNXT_ULP_CF_IDX_PHY_PORT_VPORT = 28,
121 BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG = 29,
122 BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG = 30,
123 BNXT_ULP_CF_IDX_LAST = 31
126 enum bnxt_ulp_cond_opcode {
127 BNXT_ULP_COND_OPCODE_NOP = 0,
128 BNXT_ULP_COND_OPCODE_COMP_FIELD = 1,
129 BNXT_ULP_COND_OPCODE_ACTION_BIT = 2,
130 BNXT_ULP_COND_OPCODE_HDR_BIT = 3,
131 BNXT_ULP_COND_OPCODE_LAST = 4
134 enum bnxt_ulp_critical_resource {
135 BNXT_ULP_CRITICAL_RESOURCE_NO = 0,
136 BNXT_ULP_CRITICAL_RESOURCE_YES = 1,
137 BNXT_ULP_CRITICAL_RESOURCE_LAST = 2
140 enum bnxt_ulp_device_id {
141 BNXT_ULP_DEVICE_ID_WH_PLUS = 0,
142 BNXT_ULP_DEVICE_ID_THOR = 1,
143 BNXT_ULP_DEVICE_ID_STINGRAY = 2,
144 BNXT_ULP_DEVICE_ID_STINGRAY2 = 3,
145 BNXT_ULP_DEVICE_ID_LAST = 4
148 enum bnxt_ulp_df_param_type {
149 BNXT_ULP_DF_PARAM_TYPE_DEV_PORT_ID = 0,
150 BNXT_ULP_DF_PARAM_TYPE_LAST = 1
153 enum bnxt_ulp_direction {
154 BNXT_ULP_DIRECTION_INGRESS = 0,
155 BNXT_ULP_DIRECTION_EGRESS = 1,
156 BNXT_ULP_DIRECTION_LAST = 2
159 enum bnxt_ulp_flow_mem_type {
160 BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
161 BNXT_ULP_FLOW_MEM_TYPE_EXT = 1,
162 BNXT_ULP_FLOW_MEM_TYPE_BOTH = 2,
163 BNXT_ULP_FLOW_MEM_TYPE_LAST = 3
166 enum bnxt_ulp_glb_regfile_index {
167 BNXT_ULP_GLB_REGFILE_INDEX_NOT_USED = 0,
168 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID = 1,
169 BNXT_ULP_GLB_REGFILE_INDEX_GLB_L2_CNTXT_ID = 2,
170 BNXT_ULP_GLB_REGFILE_INDEX_GLB_LB_AREC_PTR = 3,
171 BNXT_ULP_GLB_REGFILE_INDEX_LAST = 4
174 enum bnxt_ulp_hdr_type {
175 BNXT_ULP_HDR_TYPE_NOT_SUPPORTED = 0,
176 BNXT_ULP_HDR_TYPE_SUPPORTED = 1,
177 BNXT_ULP_HDR_TYPE_END = 2,
178 BNXT_ULP_HDR_TYPE_LAST = 3
181 enum bnxt_ulp_index_opcode {
182 BNXT_ULP_INDEX_OPCODE_NOT_USED = 0,
183 BNXT_ULP_INDEX_OPCODE_ALLOCATE = 1,
184 BNXT_ULP_INDEX_OPCODE_GLOBAL = 2,
185 BNXT_ULP_INDEX_OPCODE_COMP_FIELD = 3,
186 BNXT_ULP_INDEX_OPCODE_LAST = 4
189 enum bnxt_ulp_mapper_opc {
190 BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT = 0,
191 BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD = 1,
192 BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD = 2,
193 BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE = 3,
194 BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE = 4,
195 BNXT_ULP_MAPPER_OPC_SET_TO_ZERO = 5,
196 BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT = 6,
197 BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP = 7,
198 BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 8,
199 BNXT_ULP_MAPPER_OPC_LAST = 9
202 enum bnxt_ulp_mark_db_opcode {
203 BNXT_ULP_MARK_DB_OPCODE_NOP = 0,
204 BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION = 1,
205 BNXT_ULP_MARK_DB_OPCODE_SET_VFR_FLAG = 2,
206 BNXT_ULP_MARK_DB_OPCODE_LAST = 3
209 enum bnxt_ulp_match_type {
210 BNXT_ULP_MATCH_TYPE_EM = 0,
211 BNXT_ULP_MATCH_TYPE_WM = 1,
212 BNXT_ULP_MATCH_TYPE_LAST = 2
215 enum bnxt_ulp_priority {
216 BNXT_ULP_PRIORITY_LEVEL_0 = 0,
217 BNXT_ULP_PRIORITY_LEVEL_1 = 1,
218 BNXT_ULP_PRIORITY_LEVEL_2 = 2,
219 BNXT_ULP_PRIORITY_LEVEL_3 = 3,
220 BNXT_ULP_PRIORITY_LEVEL_4 = 4,
221 BNXT_ULP_PRIORITY_LEVEL_5 = 5,
222 BNXT_ULP_PRIORITY_LEVEL_6 = 6,
223 BNXT_ULP_PRIORITY_LEVEL_7 = 7,
224 BNXT_ULP_PRIORITY_NOT_USED = 8,
225 BNXT_ULP_PRIORITY_LAST = 9
228 enum bnxt_ulp_regfile_index {
229 BNXT_ULP_REGFILE_INDEX_NOT_USED = 0,
230 BNXT_ULP_REGFILE_INDEX_CLASS_TID = 1,
231 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 2,
232 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 3,
233 BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 4,
234 BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 5,
235 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 6,
236 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 7,
237 BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 8,
238 BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 9,
239 BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR = 10,
240 BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 11,
241 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 12,
242 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 13,
243 BNXT_ULP_REGFILE_INDEX_CRITICAL_RESOURCE = 14,
244 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 = 15,
245 BNXT_ULP_REGFILE_INDEX_LAST = 16
248 enum bnxt_ulp_search_before_alloc {
249 BNXT_ULP_SEARCH_BEFORE_ALLOC_NO = 0,
250 BNXT_ULP_SEARCH_BEFORE_ALLOC_YES = 1,
251 BNXT_ULP_SEARCH_BEFORE_ALLOC_LAST = 2
254 enum bnxt_ulp_fdb_resource_flags {
255 BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_EGR = 0x01,
256 BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_INGR = 0x00
259 enum bnxt_ulp_fdb_type {
260 BNXT_ULP_FDB_TYPE_DEFAULT = 1,
261 BNXT_ULP_FDB_TYPE_REGULAR = 0
264 enum bnxt_ulp_flow_dir_bitmask {
265 BNXT_ULP_FLOW_DIR_BITMASK_EGR = 0x8000000000000000,
266 BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x0000000000000000
269 enum bnxt_ulp_match_type_bitmask {
270 BNXT_ULP_MATCH_TYPE_BITMASK_EM = 0x0000000000000000,
271 BNXT_ULP_MATCH_TYPE_BITMASK_WM = 0x0000000000000001
274 enum bnxt_ulp_resource_func {
275 BNXT_ULP_RESOURCE_FUNC_INVALID = 0x00,
276 BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE = 0x20,
277 BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE = 0x40,
278 BNXT_ULP_RESOURCE_FUNC_RSVD2 = 0x60,
279 BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0x80,
280 BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 0x81,
281 BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE = 0x82,
282 BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 0x83,
283 BNXT_ULP_RESOURCE_FUNC_IF_TABLE = 0x84,
284 BNXT_ULP_RESOURCE_FUNC_HW_FID = 0x85
287 enum bnxt_ulp_resource_sub_type {
288 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM = 0,
289 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM = 1,
290 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_EXT_COUNT = 3,
291 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT = 2,
292 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL = 0,
293 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_VFR_CFA_ACTION = 1,
294 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED = 0
298 BNXT_ULP_SYM_ACT_REC_DROP_NO = 0,
299 BNXT_ULP_SYM_ACT_REC_DROP_YES = 1,
300 BNXT_ULP_SYM_ACT_REC_METER_EN_NO = 0,
301 BNXT_ULP_SYM_ACT_REC_METER_EN_YES = 1,
302 BNXT_ULP_SYM_ACT_REC_POP_VLAN_NO = 0,
303 BNXT_ULP_SYM_ACT_REC_POP_VLAN_YES = 1,
304 BNXT_ULP_SYM_AGG_ERROR_IGNORE = 0,
305 BNXT_ULP_SYM_AGG_ERROR_NO = 0,
306 BNXT_ULP_SYM_AGG_ERROR_YES = 1,
307 BNXT_ULP_SYM_DECAP_FUNC_NONE = 0,
308 BNXT_ULP_SYM_DECAP_FUNC_THRU_L2 = 11,
309 BNXT_ULP_SYM_DECAP_FUNC_THRU_L3 = 12,
310 BNXT_ULP_SYM_DECAP_FUNC_THRU_L4 = 13,
311 BNXT_ULP_SYM_DECAP_FUNC_THRU_TL2 = 3,
312 BNXT_ULP_SYM_DECAP_FUNC_THRU_TL3 = 8,
313 BNXT_ULP_SYM_DECAP_FUNC_THRU_TL4 = 9,
314 BNXT_ULP_SYM_DECAP_FUNC_THRU_TUN = 10,
315 BNXT_ULP_SYM_ECV_CUSTOM_EN_NO = 0,
316 BNXT_ULP_SYM_ECV_CUSTOM_EN_YES = 1,
317 BNXT_ULP_SYM_ECV_L2_EN_NO = 0,
318 BNXT_ULP_SYM_ECV_L2_EN_YES = 1,
319 BNXT_ULP_SYM_ECV_L3_TYPE_IPV4 = 4,
320 BNXT_ULP_SYM_ECV_L3_TYPE_IPV6 = 5,
321 BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
322 BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
323 BNXT_ULP_SYM_ECV_L3_TYPE_NONE = 0,
324 BNXT_ULP_SYM_ECV_L4_TYPE_NONE = 0,
325 BNXT_ULP_SYM_ECV_L4_TYPE_UDP = 4,
326 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
327 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
328 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
329 BNXT_ULP_SYM_ECV_TUN_TYPE_GENERIC = 1,
330 BNXT_ULP_SYM_ECV_TUN_TYPE_GRE = 5,
331 BNXT_ULP_SYM_ECV_TUN_TYPE_NGE = 3,
332 BNXT_ULP_SYM_ECV_TUN_TYPE_NONE = 0,
333 BNXT_ULP_SYM_ECV_TUN_TYPE_NVGRE = 4,
334 BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN = 2,
335 BNXT_ULP_SYM_ECV_VALID_NO = 0,
336 BNXT_ULP_SYM_ECV_VALID_YES = 1,
337 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_ENCAP_PRI = 6,
338 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_0 = 8,
339 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_1 = 8,
340 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_2 = 8,
341 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_3 = 8,
342 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_4 = 8,
343 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_5 = 8,
344 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_6 = 8,
345 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_7 = 8,
346 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_REMAP_DIFFSERV = 7,
347 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI = 1,
348 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_IVLAN_PRI = 2,
349 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_REMAP_DIFFSERV = 3,
350 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_2_ENCAP_PRI = 4,
351 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_2_REMAP_DIFFSERV = 5,
352 BNXT_ULP_SYM_ECV_VTAG_TYPE_NOP = 0,
353 BNXT_ULP_SYM_HREC_NEXT_IGNORE = 0,
354 BNXT_ULP_SYM_HREC_NEXT_NO = 0,
355 BNXT_ULP_SYM_HREC_NEXT_YES = 1,
356 BNXT_ULP_SYM_IP_PROTO_ICMP = 1,
357 BNXT_ULP_SYM_IP_PROTO_IGMP = 2,
358 BNXT_ULP_SYM_IP_PROTO_IP_IN_IP = 4,
359 BNXT_ULP_SYM_IP_PROTO_TCP = 6,
360 BNXT_ULP_SYM_IP_PROTO_UDP = 17,
361 BNXT_ULP_SYM_L2_HDR_ERROR_IGNORE = 0,
362 BNXT_ULP_SYM_L2_HDR_ERROR_NO = 0,
363 BNXT_ULP_SYM_L2_HDR_ERROR_YES = 1,
364 BNXT_ULP_SYM_L2_HDR_TYPE_DIX = 0,
365 BNXT_ULP_SYM_L2_HDR_TYPE_IGNORE = 0,
366 BNXT_ULP_SYM_L2_HDR_TYPE_LLC = 2,
367 BNXT_ULP_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
368 BNXT_ULP_SYM_L2_HDR_VALID_IGNORE = 0,
369 BNXT_ULP_SYM_L2_HDR_VALID_NO = 0,
370 BNXT_ULP_SYM_L2_HDR_VALID_YES = 1,
371 BNXT_ULP_SYM_L2_TWO_VTAGS_IGNORE = 0,
372 BNXT_ULP_SYM_L2_TWO_VTAGS_NO = 0,
373 BNXT_ULP_SYM_L2_TWO_VTAGS_YES = 1,
374 BNXT_ULP_SYM_L2_UC_MC_BC_BC = 3,
375 BNXT_ULP_SYM_L2_UC_MC_BC_IGNORE = 0,
376 BNXT_ULP_SYM_L2_UC_MC_BC_MC = 2,
377 BNXT_ULP_SYM_L2_UC_MC_BC_UC = 0,
378 BNXT_ULP_SYM_L2_VTAG_PRESENT_IGNORE = 0,
379 BNXT_ULP_SYM_L2_VTAG_PRESENT_NO = 0,
380 BNXT_ULP_SYM_L2_VTAG_PRESENT_YES = 1,
381 BNXT_ULP_SYM_L3_HDR_ERROR_IGNORE = 0,
382 BNXT_ULP_SYM_L3_HDR_ERROR_NO = 0,
383 BNXT_ULP_SYM_L3_HDR_ERROR_YES = 1,
384 BNXT_ULP_SYM_L3_HDR_ISIP_IGNORE = 0,
385 BNXT_ULP_SYM_L3_HDR_ISIP_NO = 0,
386 BNXT_ULP_SYM_L3_HDR_ISIP_YES = 1,
387 BNXT_ULP_SYM_L3_HDR_TYPE_ARP = 2,
388 BNXT_ULP_SYM_L3_HDR_TYPE_EAPOL = 4,
389 BNXT_ULP_SYM_L3_HDR_TYPE_FCOE = 6,
390 BNXT_ULP_SYM_L3_HDR_TYPE_IGNORE = 0,
391 BNXT_ULP_SYM_L3_HDR_TYPE_IPV4 = 0,
392 BNXT_ULP_SYM_L3_HDR_TYPE_IPV6 = 1,
393 BNXT_ULP_SYM_L3_HDR_TYPE_PTP = 3,
394 BNXT_ULP_SYM_L3_HDR_TYPE_ROCE = 5,
395 BNXT_ULP_SYM_L3_HDR_TYPE_UPAR1 = 7,
396 BNXT_ULP_SYM_L3_HDR_TYPE_UPAR2 = 8,
397 BNXT_ULP_SYM_L3_HDR_VALID_IGNORE = 0,
398 BNXT_ULP_SYM_L3_HDR_VALID_NO = 0,
399 BNXT_ULP_SYM_L3_HDR_VALID_YES = 1,
400 BNXT_ULP_SYM_L3_IPV6_CMP_DST_IGNORE = 0,
401 BNXT_ULP_SYM_L3_IPV6_CMP_DST_NO = 0,
402 BNXT_ULP_SYM_L3_IPV6_CMP_DST_YES = 1,
403 BNXT_ULP_SYM_L3_IPV6_CMP_SRC_IGNORE = 0,
404 BNXT_ULP_SYM_L3_IPV6_CMP_SRC_NO = 0,
405 BNXT_ULP_SYM_L3_IPV6_CMP_SRC_YES = 1,
406 BNXT_ULP_SYM_L4_HDR_ERROR_IGNORE = 0,
407 BNXT_ULP_SYM_L4_HDR_ERROR_NO = 0,
408 BNXT_ULP_SYM_L4_HDR_ERROR_YES = 1,
409 BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_IGNORE = 0,
410 BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_NO = 0,
411 BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_YES = 1,
412 BNXT_ULP_SYM_L4_HDR_TYPE_BTH_V1 = 5,
413 BNXT_ULP_SYM_L4_HDR_TYPE_ICMP = 2,
414 BNXT_ULP_SYM_L4_HDR_TYPE_IGNORE = 0,
415 BNXT_ULP_SYM_L4_HDR_TYPE_TCP = 0,
416 BNXT_ULP_SYM_L4_HDR_TYPE_UDP = 1,
417 BNXT_ULP_SYM_L4_HDR_TYPE_UPAR1 = 3,
418 BNXT_ULP_SYM_L4_HDR_TYPE_UPAR2 = 4,
419 BNXT_ULP_SYM_L4_HDR_VALID_IGNORE = 0,
420 BNXT_ULP_SYM_L4_HDR_VALID_NO = 0,
421 BNXT_ULP_SYM_L4_HDR_VALID_YES = 1,
422 BNXT_ULP_SYM_MATCH_TYPE_EM = 0,
423 BNXT_ULP_SYM_MATCH_TYPE_WM = 1,
425 BNXT_ULP_SYM_PKT_TYPE_IGNORE = 0,
426 BNXT_ULP_SYM_PKT_TYPE_L2 = 0,
427 BNXT_ULP_SYM_POP_VLAN_NO = 0,
428 BNXT_ULP_SYM_POP_VLAN_YES = 1,
429 BNXT_ULP_SYM_RECYCLE_CNT_IGNORE = 0,
430 BNXT_ULP_SYM_RECYCLE_CNT_ONE = 1,
431 BNXT_ULP_SYM_RECYCLE_CNT_THREE = 3,
432 BNXT_ULP_SYM_RECYCLE_CNT_TWO = 2,
433 BNXT_ULP_SYM_RECYCLE_CNT_ZERO = 0,
434 BNXT_ULP_SYM_RESERVED_IGNORE = 0,
435 BNXT_ULP_SYM_STINGRAY_EXT_EM_MAX_KEY_SIZE = 448,
436 BNXT_ULP_SYM_STINGRAY_LOOPBACK_PORT = 16,
437 BNXT_ULP_SYM_STINGRAY2_LOOPBACK_PORT = 3,
438 BNXT_ULP_SYM_THOR_LOOPBACK_PORT = 3,
439 BNXT_ULP_SYM_TL2_HDR_TYPE_DIX = 0,
440 BNXT_ULP_SYM_TL2_HDR_TYPE_IGNORE = 0,
441 BNXT_ULP_SYM_TL2_HDR_VALID_IGNORE = 0,
442 BNXT_ULP_SYM_TL2_HDR_VALID_NO = 0,
443 BNXT_ULP_SYM_TL2_HDR_VALID_YES = 1,
444 BNXT_ULP_SYM_TL2_TWO_VTAGS_IGNORE = 0,
445 BNXT_ULP_SYM_TL2_TWO_VTAGS_NO = 0,
446 BNXT_ULP_SYM_TL2_TWO_VTAGS_YES = 1,
447 BNXT_ULP_SYM_TL2_UC_MC_BC_BC = 3,
448 BNXT_ULP_SYM_TL2_UC_MC_BC_IGNORE = 0,
449 BNXT_ULP_SYM_TL2_UC_MC_BC_MC = 2,
450 BNXT_ULP_SYM_TL2_UC_MC_BC_UC = 0,
451 BNXT_ULP_SYM_TL2_VTAG_PRESENT_IGNORE = 0,
452 BNXT_ULP_SYM_TL2_VTAG_PRESENT_NO = 0,
453 BNXT_ULP_SYM_TL2_VTAG_PRESENT_YES = 1,
454 BNXT_ULP_SYM_TL3_HDR_ERROR_IGNORE = 0,
455 BNXT_ULP_SYM_TL3_HDR_ERROR_NO = 0,
456 BNXT_ULP_SYM_TL3_HDR_ERROR_YES = 1,
457 BNXT_ULP_SYM_TL3_HDR_ISIP_IGNORE = 0,
458 BNXT_ULP_SYM_TL3_HDR_ISIP_NO = 0,
459 BNXT_ULP_SYM_TL3_HDR_ISIP_YES = 1,
460 BNXT_ULP_SYM_TL3_HDR_TYPE_IGNORE = 0,
461 BNXT_ULP_SYM_TL3_HDR_TYPE_IPV4 = 0,
462 BNXT_ULP_SYM_TL3_HDR_TYPE_IPV6 = 1,
463 BNXT_ULP_SYM_TL3_HDR_VALID_IGNORE = 0,
464 BNXT_ULP_SYM_TL3_HDR_VALID_NO = 0,
465 BNXT_ULP_SYM_TL3_HDR_VALID_YES = 1,
466 BNXT_ULP_SYM_TL3_IPV6_CMP_DST_IGNORE = 0,
467 BNXT_ULP_SYM_TL3_IPV6_CMP_DST_NO = 0,
468 BNXT_ULP_SYM_TL3_IPV6_CMP_DST_YES = 1,
469 BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_IGNORE = 0,
470 BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_NO = 0,
471 BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_YES = 1,
472 BNXT_ULP_SYM_TL4_HDR_ERROR_IGNORE = 0,
473 BNXT_ULP_SYM_TL4_HDR_ERROR_NO = 0,
474 BNXT_ULP_SYM_TL4_HDR_ERROR_YES = 1,
475 BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_IGNORE = 0,
476 BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_NO = 0,
477 BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_YES = 1,
478 BNXT_ULP_SYM_TL4_HDR_TYPE_IGNORE = 0,
479 BNXT_ULP_SYM_TL4_HDR_TYPE_TCP = 0,
480 BNXT_ULP_SYM_TL4_HDR_TYPE_UDP = 1,
481 BNXT_ULP_SYM_TL4_HDR_VALID_IGNORE = 0,
482 BNXT_ULP_SYM_TL4_HDR_VALID_NO = 0,
483 BNXT_ULP_SYM_TL4_HDR_VALID_YES = 1,
484 BNXT_ULP_SYM_TUN_HDR_ERROR_IGNORE = 0,
485 BNXT_ULP_SYM_TUN_HDR_ERROR_NO = 0,
486 BNXT_ULP_SYM_TUN_HDR_ERROR_YES = 1,
487 BNXT_ULP_SYM_TUN_HDR_FLAGS_IGNORE = 0,
488 BNXT_ULP_SYM_TUN_HDR_TYPE_GENEVE = 1,
489 BNXT_ULP_SYM_TUN_HDR_TYPE_GRE = 3,
490 BNXT_ULP_SYM_TUN_HDR_TYPE_IGNORE = 0,
491 BNXT_ULP_SYM_TUN_HDR_TYPE_IPV4 = 4,
492 BNXT_ULP_SYM_TUN_HDR_TYPE_IPV6 = 5,
493 BNXT_ULP_SYM_TUN_HDR_TYPE_MPLS = 7,
494 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE = 15,
495 BNXT_ULP_SYM_TUN_HDR_TYPE_NVGRE = 2,
496 BNXT_ULP_SYM_TUN_HDR_TYPE_PPPOE = 6,
497 BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR1 = 8,
498 BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR2 = 9,
499 BNXT_ULP_SYM_TUN_HDR_TYPE_VXLAN = 0,
500 BNXT_ULP_SYM_TUN_HDR_VALID_IGNORE = 0,
501 BNXT_ULP_SYM_TUN_HDR_VALID_NO = 0,
502 BNXT_ULP_SYM_TUN_HDR_VALID_YES = 1,
503 BNXT_ULP_SYM_WH_PLUS_EXT_ACT_REC = 0,
504 BNXT_ULP_SYM_WH_PLUS_EXT_EM_MAX_KEY_SIZE = 448,
505 BNXT_ULP_SYM_WH_PLUS_INT_ACT_REC = 1,
506 BNXT_ULP_SYM_WH_PLUS_LOOPBACK_PORT = 4,
507 BNXT_ULP_SYM_WH_PLUS_MC_ACT_REC = 1,
508 BNXT_ULP_SYM_WH_PLUS_UC_ACT_REC = 0,
512 enum bnxt_ulp_wh_plus {
513 BNXT_ULP_WH_PLUS_EXT_EM_MAX_KEY_SIZE = 448,
514 BNXT_ULP_WH_PLUS_LOOPBACK_PORT = 4
517 enum bnxt_ulp_act_prop_sz {
518 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ = 4,
519 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ = 4,
520 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ = 4,
521 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE = 4,
522 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM = 4,
523 BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE = 4,
524 BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM = 4,
525 BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM = 4,
526 BNXT_ULP_ACT_PROP_SZ_PORT_ID = 4,
527 BNXT_ULP_ACT_PROP_SZ_VNIC = 4,
528 BNXT_ULP_ACT_PROP_SZ_VPORT = 4,
529 BNXT_ULP_ACT_PROP_SZ_MARK = 4,
530 BNXT_ULP_ACT_PROP_SZ_COUNT = 4,
531 BNXT_ULP_ACT_PROP_SZ_METER = 4,
532 BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC = 8,
533 BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST = 8,
534 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_VLAN = 4,
535 BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_PCP = 4,
536 BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_VID = 4,
537 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC = 4,
538 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST = 4,
539 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC = 16,
540 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST = 16,
541 BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC = 4,
542 BNXT_ULP_ACT_PROP_SZ_SET_TP_DST = 4,
543 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0 = 4,
544 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1 = 4,
545 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2 = 4,
546 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3 = 4,
547 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4 = 4,
548 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5 = 4,
549 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6 = 4,
550 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7 = 4,
551 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC = 6,
552 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC = 6,
553 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG = 8,
554 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP = 32,
555 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
556 BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
557 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
558 BNXT_ULP_ACT_PROP_SZ_LAST = 4
561 enum bnxt_ulp_act_prop_idx {
562 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ = 0,
563 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ = 4,
564 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ = 8,
565 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE = 12,
566 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM = 16,
567 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE = 20,
568 BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM = 24,
569 BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM = 28,
570 BNXT_ULP_ACT_PROP_IDX_PORT_ID = 32,
571 BNXT_ULP_ACT_PROP_IDX_VNIC = 36,
572 BNXT_ULP_ACT_PROP_IDX_VPORT = 40,
573 BNXT_ULP_ACT_PROP_IDX_MARK = 44,
574 BNXT_ULP_ACT_PROP_IDX_COUNT = 48,
575 BNXT_ULP_ACT_PROP_IDX_METER = 52,
576 BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC = 56,
577 BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST = 64,
578 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_VLAN = 72,
579 BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_PCP = 76,
580 BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_VID = 80,
581 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC = 84,
582 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST = 88,
583 BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC = 92,
584 BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST = 108,
585 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC = 124,
586 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST = 128,
587 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0 = 132,
588 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1 = 136,
589 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2 = 140,
590 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3 = 144,
591 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4 = 148,
592 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5 = 152,
593 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6 = 156,
594 BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7 = 160,
595 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC = 164,
596 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC = 170,
597 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG = 176,
598 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP = 184,
599 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 216,
600 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 232,
601 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 236,
602 BNXT_ULP_ACT_PROP_IDX_LAST = 268
605 enum bnxt_ulp_class_hid {
606 BNXT_ULP_CLASS_HID_0080 = 0x0080,
607 BNXT_ULP_CLASS_HID_0000 = 0x0000,
608 BNXT_ULP_CLASS_HID_0087 = 0x0087
611 enum bnxt_ulp_act_hid {
612 BNXT_ULP_ACT_HID_00a1 = 0x00a1,
613 BNXT_ULP_ACT_HID_0029 = 0x0029,
614 BNXT_ULP_ACT_HID_0040 = 0x0040
617 enum bnxt_ulp_df_tpl {
618 BNXT_ULP_DF_TPL_PORT_TO_VS = 1,
619 BNXT_ULP_DF_TPL_VS_TO_PORT = 2