net/bnxt: support global resource templates
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_enum.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2020 Broadcom
3  * All rights reserved.
4  */
5
6 #ifndef ULP_TEMPLATE_DB_H_
7 #define ULP_TEMPLATE_DB_H_
8
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
30
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
60 };
61
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
76 };
77
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
83 };
84
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
89 };
90
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_LAST = 29
122 };
123
124 enum bnxt_ulp_critical_resource {
125         BNXT_ULP_CRITICAL_RESOURCE_NO = 0,
126         BNXT_ULP_CRITICAL_RESOURCE_YES = 1,
127         BNXT_ULP_CRITICAL_RESOURCE_LAST = 2
128 };
129
130 enum bnxt_ulp_device_id {
131         BNXT_ULP_DEVICE_ID_WH_PLUS = 0,
132         BNXT_ULP_DEVICE_ID_THOR = 1,
133         BNXT_ULP_DEVICE_ID_STINGRAY = 2,
134         BNXT_ULP_DEVICE_ID_STINGRAY2 = 3,
135         BNXT_ULP_DEVICE_ID_LAST = 4
136 };
137
138 enum bnxt_ulp_direction {
139         BNXT_ULP_DIRECTION_INGRESS = 0,
140         BNXT_ULP_DIRECTION_EGRESS = 1,
141         BNXT_ULP_DIRECTION_LAST = 2
142 };
143
144 enum bnxt_ulp_flow_mem_type {
145         BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
146         BNXT_ULP_FLOW_MEM_TYPE_EXT = 1,
147         BNXT_ULP_FLOW_MEM_TYPE_BOTH = 2,
148         BNXT_ULP_FLOW_MEM_TYPE_LAST = 3
149 };
150
151 enum bnxt_ulp_glb_regfile_index {
152         BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID = 0,
153         BNXT_ULP_GLB_REGFILE_INDEX_GLB_L2_CNTXT_ID = 1,
154         BNXT_ULP_GLB_REGFILE_INDEX_GLB_LOOPBACK_AREC_INDEX = 2,
155         BNXT_ULP_GLB_REGFILE_INDEX_LAST = 3
156 };
157
158 enum bnxt_ulp_hdr_type {
159         BNXT_ULP_HDR_TYPE_NOT_SUPPORTED = 0,
160         BNXT_ULP_HDR_TYPE_SUPPORTED = 1,
161         BNXT_ULP_HDR_TYPE_END = 2,
162         BNXT_ULP_HDR_TYPE_LAST = 3
163 };
164
165 enum bnxt_ulp_index_opcode {
166         BNXT_ULP_INDEX_OPCODE_NOT_USED = 0,
167         BNXT_ULP_INDEX_OPCODE_ALLOCATE = 1,
168         BNXT_ULP_INDEX_OPCODE_GLOBAL = 2,
169         BNXT_ULP_INDEX_OPCODE_COMP_FIELD = 3,
170         BNXT_ULP_INDEX_OPCODE_LAST = 4
171 };
172
173 enum bnxt_ulp_mapper_opc {
174         BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT = 0,
175         BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD = 1,
176         BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD = 2,
177         BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE = 3,
178         BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE = 4,
179         BNXT_ULP_MAPPER_OPC_SET_TO_ZERO = 5,
180         BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT = 6,
181         BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP = 7,
182         BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 8,
183         BNXT_ULP_MAPPER_OPC_LAST = 9
184 };
185
186 enum bnxt_ulp_mark_db_opcode {
187         BNXT_ULP_MARK_DB_OPCODE_NOP = 0,
188         BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION = 1,
189         BNXT_ULP_MARK_DB_OPCODE_SET_VFR_FLAG = 2,
190         BNXT_ULP_MARK_DB_OPCODE_LAST = 3
191 };
192
193 enum bnxt_ulp_match_type {
194         BNXT_ULP_MATCH_TYPE_EM = 0,
195         BNXT_ULP_MATCH_TYPE_WM = 1,
196         BNXT_ULP_MATCH_TYPE_LAST = 2
197 };
198
199 enum bnxt_ulp_priority {
200         BNXT_ULP_PRIORITY_LEVEL_0 = 0,
201         BNXT_ULP_PRIORITY_LEVEL_1 = 1,
202         BNXT_ULP_PRIORITY_LEVEL_2 = 2,
203         BNXT_ULP_PRIORITY_LEVEL_3 = 3,
204         BNXT_ULP_PRIORITY_LEVEL_4 = 4,
205         BNXT_ULP_PRIORITY_LEVEL_5 = 5,
206         BNXT_ULP_PRIORITY_LEVEL_6 = 6,
207         BNXT_ULP_PRIORITY_LEVEL_7 = 7,
208         BNXT_ULP_PRIORITY_NOT_USED = 8,
209         BNXT_ULP_PRIORITY_LAST = 9
210 };
211
212 enum bnxt_ulp_regfile_index {
213         BNXT_ULP_REGFILE_INDEX_NOT_USED = 0,
214         BNXT_ULP_REGFILE_INDEX_CLASS_TID = 1,
215         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 2,
216         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 3,
217         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 4,
218         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 5,
219         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 6,
220         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 7,
221         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 8,
222         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 9,
223         BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR = 10,
224         BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 11,
225         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 12,
226         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 13,
227         BNXT_ULP_REGFILE_INDEX_CRITICAL_RESOURCE = 14,
228         BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 = 15,
229         BNXT_ULP_REGFILE_INDEX_LAST = 16
230 };
231
232 enum bnxt_ulp_search_before_alloc {
233         BNXT_ULP_SEARCH_BEFORE_ALLOC_NO = 0,
234         BNXT_ULP_SEARCH_BEFORE_ALLOC_YES = 1,
235         BNXT_ULP_SEARCH_BEFORE_ALLOC_LAST = 2
236 };
237
238 enum bnxt_ulp_fdb_resource_flags {
239         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_EGR = 0x01,
240         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_INGR = 0x00
241 };
242
243 enum bnxt_ulp_fdb_type {
244         BNXT_ULP_FDB_TYPE_DEFAULT = 1,
245         BNXT_ULP_FDB_TYPE_REGULAR = 0
246 };
247
248 enum bnxt_ulp_flow_dir_bitmask {
249         BNXT_ULP_FLOW_DIR_BITMASK_EGR = 0x8000000000000000,
250         BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x0000000000000000
251 };
252
253 enum bnxt_ulp_match_type_bitmask {
254         BNXT_ULP_MATCH_TYPE_BITMASK_EM = 0x0000000000000000,
255         BNXT_ULP_MATCH_TYPE_BITMASK_WM = 0x0000000000000001
256 };
257
258 enum bnxt_ulp_resource_func {
259         BNXT_ULP_RESOURCE_FUNC_INVALID = 0x00,
260         BNXT_ULP_RESOURCE_FUNC_EM_TABLE = 0x20,
261         BNXT_ULP_RESOURCE_FUNC_RSVD1 = 0x40,
262         BNXT_ULP_RESOURCE_FUNC_RSVD2 = 0x60,
263         BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0x80,
264         BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 0x81,
265         BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE = 0x82,
266         BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 0x83,
267         BNXT_ULP_RESOURCE_FUNC_IF_TABLE = 0x84,
268         BNXT_ULP_RESOURCE_FUNC_HW_FID = 0x85
269 };
270
271 enum bnxt_ulp_resource_sub_type {
272         BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM = 0,
273         BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM = 1,
274         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_EXT_COUNT = 3,
275         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT = 2,
276         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL = 0,
277         BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_VFR_CFA_ACTION = 1,
278         BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED = 0
279 };
280
281 enum bnxt_ulp_sym {
282         BNXT_ULP_SYM_ACT_REC_DROP_NO = 0,
283         BNXT_ULP_SYM_ACT_REC_DROP_YES = 1,
284         BNXT_ULP_SYM_ACT_REC_METER_EN_NO = 0,
285         BNXT_ULP_SYM_ACT_REC_METER_EN_YES = 1,
286         BNXT_ULP_SYM_ACT_REC_POP_VLAN_NO = 0,
287         BNXT_ULP_SYM_ACT_REC_POP_VLAN_YES = 1,
288         BNXT_ULP_SYM_AGG_ERROR_IGNORE = 0,
289         BNXT_ULP_SYM_AGG_ERROR_NO = 0,
290         BNXT_ULP_SYM_AGG_ERROR_YES = 1,
291         BNXT_ULP_SYM_DECAP_FUNC_NONE = 0,
292         BNXT_ULP_SYM_DECAP_FUNC_THRU_L2 = 11,
293         BNXT_ULP_SYM_DECAP_FUNC_THRU_L3 = 12,
294         BNXT_ULP_SYM_DECAP_FUNC_THRU_L4 = 13,
295         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL2 = 3,
296         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL3 = 8,
297         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL4 = 9,
298         BNXT_ULP_SYM_DECAP_FUNC_THRU_TUN = 10,
299         BNXT_ULP_SYM_ECV_CUSTOM_EN_NO = 0,
300         BNXT_ULP_SYM_ECV_CUSTOM_EN_YES = 1,
301         BNXT_ULP_SYM_ECV_L2_EN_NO = 0,
302         BNXT_ULP_SYM_ECV_L2_EN_YES = 1,
303         BNXT_ULP_SYM_ECV_L3_TYPE_IPV4 = 4,
304         BNXT_ULP_SYM_ECV_L3_TYPE_IPV6 = 5,
305         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
306         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
307         BNXT_ULP_SYM_ECV_L3_TYPE_NONE = 0,
308         BNXT_ULP_SYM_ECV_L4_TYPE_NONE = 0,
309         BNXT_ULP_SYM_ECV_L4_TYPE_UDP = 4,
310         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
311         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
312         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
313         BNXT_ULP_SYM_ECV_TUN_TYPE_GENERIC = 1,
314         BNXT_ULP_SYM_ECV_TUN_TYPE_GRE = 5,
315         BNXT_ULP_SYM_ECV_TUN_TYPE_NGE = 3,
316         BNXT_ULP_SYM_ECV_TUN_TYPE_NONE = 0,
317         BNXT_ULP_SYM_ECV_TUN_TYPE_NVGRE = 4,
318         BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN = 2,
319         BNXT_ULP_SYM_ECV_VALID_NO = 0,
320         BNXT_ULP_SYM_ECV_VALID_YES = 1,
321         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_ENCAP_PRI = 6,
322         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_0 = 8,
323         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_1 = 8,
324         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_2 = 8,
325         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_3 = 8,
326         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_4 = 8,
327         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_5 = 8,
328         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_6 = 8,
329         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_PRI_7 = 8,
330         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_0_REMAP_DIFFSERV = 7,
331         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI = 1,
332         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_IVLAN_PRI = 2,
333         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_REMAP_DIFFSERV = 3,
334         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_2_ENCAP_PRI = 4,
335         BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_2_REMAP_DIFFSERV = 5,
336         BNXT_ULP_SYM_ECV_VTAG_TYPE_NOP = 0,
337         BNXT_ULP_SYM_HREC_NEXT_IGNORE = 0,
338         BNXT_ULP_SYM_HREC_NEXT_NO = 0,
339         BNXT_ULP_SYM_HREC_NEXT_YES = 1,
340         BNXT_ULP_SYM_IP_PROTO_ICMP = 1,
341         BNXT_ULP_SYM_IP_PROTO_IGMP = 2,
342         BNXT_ULP_SYM_IP_PROTO_IP_IN_IP = 4,
343         BNXT_ULP_SYM_IP_PROTO_TCP = 6,
344         BNXT_ULP_SYM_IP_PROTO_UDP = 17,
345         BNXT_ULP_SYM_L2_HDR_ERROR_IGNORE = 0,
346         BNXT_ULP_SYM_L2_HDR_ERROR_NO = 0,
347         BNXT_ULP_SYM_L2_HDR_ERROR_YES = 1,
348         BNXT_ULP_SYM_L2_HDR_TYPE_DIX = 0,
349         BNXT_ULP_SYM_L2_HDR_TYPE_IGNORE = 0,
350         BNXT_ULP_SYM_L2_HDR_TYPE_LLC = 2,
351         BNXT_ULP_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
352         BNXT_ULP_SYM_L2_HDR_VALID_IGNORE = 0,
353         BNXT_ULP_SYM_L2_HDR_VALID_NO = 0,
354         BNXT_ULP_SYM_L2_HDR_VALID_YES = 1,
355         BNXT_ULP_SYM_L2_TWO_VTAGS_IGNORE = 0,
356         BNXT_ULP_SYM_L2_TWO_VTAGS_NO = 0,
357         BNXT_ULP_SYM_L2_TWO_VTAGS_YES = 1,
358         BNXT_ULP_SYM_L2_UC_MC_BC_BC = 3,
359         BNXT_ULP_SYM_L2_UC_MC_BC_IGNORE = 0,
360         BNXT_ULP_SYM_L2_UC_MC_BC_MC = 2,
361         BNXT_ULP_SYM_L2_UC_MC_BC_UC = 0,
362         BNXT_ULP_SYM_L2_VTAG_PRESENT_IGNORE = 0,
363         BNXT_ULP_SYM_L2_VTAG_PRESENT_NO = 0,
364         BNXT_ULP_SYM_L2_VTAG_PRESENT_YES = 1,
365         BNXT_ULP_SYM_L3_HDR_ERROR_IGNORE = 0,
366         BNXT_ULP_SYM_L3_HDR_ERROR_NO = 0,
367         BNXT_ULP_SYM_L3_HDR_ERROR_YES = 1,
368         BNXT_ULP_SYM_L3_HDR_ISIP_IGNORE = 0,
369         BNXT_ULP_SYM_L3_HDR_ISIP_NO = 0,
370         BNXT_ULP_SYM_L3_HDR_ISIP_YES = 1,
371         BNXT_ULP_SYM_L3_HDR_TYPE_ARP = 2,
372         BNXT_ULP_SYM_L3_HDR_TYPE_EAPOL = 4,
373         BNXT_ULP_SYM_L3_HDR_TYPE_FCOE = 6,
374         BNXT_ULP_SYM_L3_HDR_TYPE_IGNORE = 0,
375         BNXT_ULP_SYM_L3_HDR_TYPE_IPV4 = 0,
376         BNXT_ULP_SYM_L3_HDR_TYPE_IPV6 = 1,
377         BNXT_ULP_SYM_L3_HDR_TYPE_PTP = 3,
378         BNXT_ULP_SYM_L3_HDR_TYPE_ROCE = 5,
379         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR1 = 7,
380         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR2 = 8,
381         BNXT_ULP_SYM_L3_HDR_VALID_IGNORE = 0,
382         BNXT_ULP_SYM_L3_HDR_VALID_NO = 0,
383         BNXT_ULP_SYM_L3_HDR_VALID_YES = 1,
384         BNXT_ULP_SYM_L3_IPV6_CMP_DST_IGNORE = 0,
385         BNXT_ULP_SYM_L3_IPV6_CMP_DST_NO = 0,
386         BNXT_ULP_SYM_L3_IPV6_CMP_DST_YES = 1,
387         BNXT_ULP_SYM_L3_IPV6_CMP_SRC_IGNORE = 0,
388         BNXT_ULP_SYM_L3_IPV6_CMP_SRC_NO = 0,
389         BNXT_ULP_SYM_L3_IPV6_CMP_SRC_YES = 1,
390         BNXT_ULP_SYM_L4_HDR_ERROR_IGNORE = 0,
391         BNXT_ULP_SYM_L4_HDR_ERROR_NO = 0,
392         BNXT_ULP_SYM_L4_HDR_ERROR_YES = 1,
393         BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_IGNORE = 0,
394         BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_NO = 0,
395         BNXT_ULP_SYM_L4_HDR_IS_UDP_TCP_YES = 1,
396         BNXT_ULP_SYM_L4_HDR_TYPE_BTH_V1 = 5,
397         BNXT_ULP_SYM_L4_HDR_TYPE_ICMP = 2,
398         BNXT_ULP_SYM_L4_HDR_TYPE_IGNORE = 0,
399         BNXT_ULP_SYM_L4_HDR_TYPE_TCP = 0,
400         BNXT_ULP_SYM_L4_HDR_TYPE_UDP = 1,
401         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR1 = 3,
402         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR2 = 4,
403         BNXT_ULP_SYM_L4_HDR_VALID_IGNORE = 0,
404         BNXT_ULP_SYM_L4_HDR_VALID_NO = 0,
405         BNXT_ULP_SYM_L4_HDR_VALID_YES = 1,
406         BNXT_ULP_SYM_MATCH_TYPE_EM = 0,
407         BNXT_ULP_SYM_MATCH_TYPE_WM = 1,
408         BNXT_ULP_SYM_NO = 0,
409         BNXT_ULP_SYM_PKT_TYPE_IGNORE = 0,
410         BNXT_ULP_SYM_PKT_TYPE_L2 = 0,
411         BNXT_ULP_SYM_POP_VLAN_NO = 0,
412         BNXT_ULP_SYM_POP_VLAN_YES = 1,
413         BNXT_ULP_SYM_RECYCLE_CNT_IGNORE = 0,
414         BNXT_ULP_SYM_RECYCLE_CNT_ONE = 1,
415         BNXT_ULP_SYM_RECYCLE_CNT_THREE = 3,
416         BNXT_ULP_SYM_RECYCLE_CNT_TWO = 2,
417         BNXT_ULP_SYM_RECYCLE_CNT_ZERO = 0,
418         BNXT_ULP_SYM_RESERVED_IGNORE = 0,
419         BNXT_ULP_SYM_STINGRAY_EXT_EM_MAX_KEY_SIZE = 448,
420         BNXT_ULP_SYM_STINGRAY_LOOPBACK_PORT = 16,
421         BNXT_ULP_SYM_STINGRAY2_LOOPBACK_PORT = 3,
422         BNXT_ULP_SYM_THOR_LOOPBACK_PORT = 3,
423         BNXT_ULP_SYM_TL2_HDR_TYPE_DIX = 0,
424         BNXT_ULP_SYM_TL2_HDR_TYPE_IGNORE = 0,
425         BNXT_ULP_SYM_TL2_HDR_VALID_IGNORE = 0,
426         BNXT_ULP_SYM_TL2_HDR_VALID_NO = 0,
427         BNXT_ULP_SYM_TL2_HDR_VALID_YES = 1,
428         BNXT_ULP_SYM_TL2_TWO_VTAGS_IGNORE = 0,
429         BNXT_ULP_SYM_TL2_TWO_VTAGS_NO = 0,
430         BNXT_ULP_SYM_TL2_TWO_VTAGS_YES = 1,
431         BNXT_ULP_SYM_TL2_UC_MC_BC_BC = 3,
432         BNXT_ULP_SYM_TL2_UC_MC_BC_IGNORE = 0,
433         BNXT_ULP_SYM_TL2_UC_MC_BC_MC = 2,
434         BNXT_ULP_SYM_TL2_UC_MC_BC_UC = 0,
435         BNXT_ULP_SYM_TL2_VTAG_PRESENT_IGNORE = 0,
436         BNXT_ULP_SYM_TL2_VTAG_PRESENT_NO = 0,
437         BNXT_ULP_SYM_TL2_VTAG_PRESENT_YES = 1,
438         BNXT_ULP_SYM_TL3_HDR_ERROR_IGNORE = 0,
439         BNXT_ULP_SYM_TL3_HDR_ERROR_NO = 0,
440         BNXT_ULP_SYM_TL3_HDR_ERROR_YES = 1,
441         BNXT_ULP_SYM_TL3_HDR_ISIP_IGNORE = 0,
442         BNXT_ULP_SYM_TL3_HDR_ISIP_NO = 0,
443         BNXT_ULP_SYM_TL3_HDR_ISIP_YES = 1,
444         BNXT_ULP_SYM_TL3_HDR_TYPE_IGNORE = 0,
445         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV4 = 0,
446         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV6 = 1,
447         BNXT_ULP_SYM_TL3_HDR_VALID_IGNORE = 0,
448         BNXT_ULP_SYM_TL3_HDR_VALID_NO = 0,
449         BNXT_ULP_SYM_TL3_HDR_VALID_YES = 1,
450         BNXT_ULP_SYM_TL3_IPV6_CMP_DST_IGNORE = 0,
451         BNXT_ULP_SYM_TL3_IPV6_CMP_DST_NO = 0,
452         BNXT_ULP_SYM_TL3_IPV6_CMP_DST_YES = 1,
453         BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_IGNORE = 0,
454         BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_NO = 0,
455         BNXT_ULP_SYM_TL3_IPV6_CMP_SRC_YES = 1,
456         BNXT_ULP_SYM_TL4_HDR_ERROR_IGNORE = 0,
457         BNXT_ULP_SYM_TL4_HDR_ERROR_NO = 0,
458         BNXT_ULP_SYM_TL4_HDR_ERROR_YES = 1,
459         BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_IGNORE = 0,
460         BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_NO = 0,
461         BNXT_ULP_SYM_TL4_HDR_IS_UDP_TCP_YES = 1,
462         BNXT_ULP_SYM_TL4_HDR_TYPE_IGNORE = 0,
463         BNXT_ULP_SYM_TL4_HDR_TYPE_TCP = 0,
464         BNXT_ULP_SYM_TL4_HDR_TYPE_UDP = 1,
465         BNXT_ULP_SYM_TL4_HDR_VALID_IGNORE = 0,
466         BNXT_ULP_SYM_TL4_HDR_VALID_NO = 0,
467         BNXT_ULP_SYM_TL4_HDR_VALID_YES = 1,
468         BNXT_ULP_SYM_TUN_HDR_ERROR_IGNORE = 0,
469         BNXT_ULP_SYM_TUN_HDR_ERROR_NO = 0,
470         BNXT_ULP_SYM_TUN_HDR_ERROR_YES = 1,
471         BNXT_ULP_SYM_TUN_HDR_FLAGS_IGNORE = 0,
472         BNXT_ULP_SYM_TUN_HDR_TYPE_GENEVE = 1,
473         BNXT_ULP_SYM_TUN_HDR_TYPE_GRE = 3,
474         BNXT_ULP_SYM_TUN_HDR_TYPE_IGNORE = 0,
475         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV4 = 4,
476         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV6 = 5,
477         BNXT_ULP_SYM_TUN_HDR_TYPE_MPLS = 7,
478         BNXT_ULP_SYM_TUN_HDR_TYPE_NONE = 15,
479         BNXT_ULP_SYM_TUN_HDR_TYPE_NVGRE = 2,
480         BNXT_ULP_SYM_TUN_HDR_TYPE_PPPOE = 6,
481         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR1 = 8,
482         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR2 = 9,
483         BNXT_ULP_SYM_TUN_HDR_TYPE_VXLAN = 0,
484         BNXT_ULP_SYM_TUN_HDR_VALID_IGNORE = 0,
485         BNXT_ULP_SYM_TUN_HDR_VALID_NO = 0,
486         BNXT_ULP_SYM_TUN_HDR_VALID_YES = 1,
487         BNXT_ULP_SYM_WH_PLUS_EXT_ACT_REC = 0,
488         BNXT_ULP_SYM_WH_PLUS_EXT_EM_MAX_KEY_SIZE = 448,
489         BNXT_ULP_SYM_WH_PLUS_INT_ACT_REC = 1,
490         BNXT_ULP_SYM_WH_PLUS_LOOPBACK_PORT = 4,
491         BNXT_ULP_SYM_WH_PLUS_MC_ACT_REC = 1,
492         BNXT_ULP_SYM_WH_PLUS_UC_ACT_REC = 0,
493         BNXT_ULP_SYM_YES = 1
494 };
495
496 enum bnxt_ulp_wh_plus {
497         BNXT_ULP_WH_PLUS_EXT_EM_MAX_KEY_SIZE = 448,
498         BNXT_ULP_WH_PLUS_LOOPBACK_PORT = 4
499 };
500
501 enum bnxt_ulp_act_prop_sz {
502         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ = 4,
503         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ = 4,
504         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ = 4,
505         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE = 4,
506         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM = 4,
507         BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE = 4,
508         BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM = 4,
509         BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM = 4,
510         BNXT_ULP_ACT_PROP_SZ_PORT_ID = 4,
511         BNXT_ULP_ACT_PROP_SZ_VNIC = 4,
512         BNXT_ULP_ACT_PROP_SZ_VPORT = 4,
513         BNXT_ULP_ACT_PROP_SZ_MARK = 4,
514         BNXT_ULP_ACT_PROP_SZ_COUNT = 4,
515         BNXT_ULP_ACT_PROP_SZ_METER = 4,
516         BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC = 8,
517         BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST = 8,
518         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_VLAN = 4,
519         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_PCP = 4,
520         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_VID = 4,
521         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC = 4,
522         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST = 4,
523         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC = 16,
524         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST = 16,
525         BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC = 4,
526         BNXT_ULP_ACT_PROP_SZ_SET_TP_DST = 4,
527         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0 = 4,
528         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1 = 4,
529         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2 = 4,
530         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3 = 4,
531         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4 = 4,
532         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5 = 4,
533         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6 = 4,
534         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7 = 4,
535         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC = 6,
536         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC = 6,
537         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG = 8,
538         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP = 32,
539         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
540         BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
541         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
542         BNXT_ULP_ACT_PROP_SZ_LAST = 4
543 };
544
545 enum bnxt_ulp_act_prop_idx {
546         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ = 0,
547         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ = 4,
548         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ = 8,
549         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE = 12,
550         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM = 16,
551         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE = 20,
552         BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM = 24,
553         BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM = 28,
554         BNXT_ULP_ACT_PROP_IDX_PORT_ID = 32,
555         BNXT_ULP_ACT_PROP_IDX_VNIC = 36,
556         BNXT_ULP_ACT_PROP_IDX_VPORT = 40,
557         BNXT_ULP_ACT_PROP_IDX_MARK = 44,
558         BNXT_ULP_ACT_PROP_IDX_COUNT = 48,
559         BNXT_ULP_ACT_PROP_IDX_METER = 52,
560         BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC = 56,
561         BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST = 64,
562         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_VLAN = 72,
563         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_PCP = 76,
564         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_VID = 80,
565         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC = 84,
566         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST = 88,
567         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC = 92,
568         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST = 108,
569         BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC = 124,
570         BNXT_ULP_ACT_PROP_IDX_SET_TP_DST = 128,
571         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0 = 132,
572         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1 = 136,
573         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2 = 140,
574         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3 = 144,
575         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4 = 148,
576         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5 = 152,
577         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6 = 156,
578         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7 = 160,
579         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC = 164,
580         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC = 170,
581         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG = 176,
582         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP = 184,
583         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 216,
584         BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 232,
585         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 236,
586         BNXT_ULP_ACT_PROP_IDX_LAST = 268
587 };
588
589 enum bnxt_ulp_class_hid {
590         BNXT_ULP_CLASS_HID_0080 = 0x0080,
591         BNXT_ULP_CLASS_HID_0000 = 0x0000,
592         BNXT_ULP_CLASS_HID_0087 = 0x0087
593 };
594
595 enum bnxt_ulp_act_hid {
596         BNXT_ULP_ACT_HID_00a1 = 0x00a1,
597         BNXT_ULP_ACT_HID_0029 = 0x0029,
598         BNXT_ULP_ACT_HID_0040 = 0x0040
599 };
600
601 enum bnxt_ulp_df_tpl {
602         BNXT_ULP_DF_TPL_PORT_TO_VS = 1,
603         BNXT_ULP_DF_TPL_VS_TO_PORT = 2
604 };
605 #endif